Title: Introduction to Unix
1Introduction to Unix
- Bent Thomsen
- Institut for Datalogi
- Aalborg Universitet
2Unix Philosophy
- Designed by programmers for programmers
- Toolbox approach
- Flexibility and freedom
- Networked designed for server use
- Multi-user / Multitasking
- Conciseness
- Everything is a file or a process
- File system has places
- Processes have life
3Unix Structure
4Interacting with Unix
- Sometimes through a GUI interface
5OpenLook on Sun
6Common Desktop Environment
7MacOS X
8Interacting with Unix
- But most likely through a shell
- Xterm, telnet, Secure Shell
- A shell is the command line interpreter
(like the DOS or command prompt in
Windows) - A shell is just another program
- There are several shells (sh, csh, tcsh, bash )
- A program or command
- Interacts with the kernel
- May be any of
- Built-in shell command
- Interpreted script
- Compiled object code file
9Telnet
10SSH Secure Shell
11Getting started - login
- The login is the users unique name
- Password is changeable
- Only known to user, not to system staff
- Except initial issued password
- Unix is case sensitive
- Login and password prompt
- System messages you have new mail
- The command prompt machinegt
12Example of login
13The command prompt
- Commands are the way to do things in Unix
- Commands are typed at the prompt
- Commands, as everything else, are case sensitive
in Unix - A command consists of a name, options (or flags)
and sometimes arguments
promptgt ltcommandgt ltflagsgt ltargsgt
14Two Basic Commands
- The most useful commands youll ever learn
- man (short for manual)
- help
- They help you find information about other
commands - man ltcmdgt retrieves detailed information about
ltcmdgt - help lists useful commands
15Who am I?
- Commands that tell you who you are
- whoami displays your username
- id displays your username and groups
- Commands that tell you who others are
- finger ltnamegt displays info for ltnamegt
- id ltusernamegt displays info for ltusernamegt
- Commands that change who you are
- su ltusernamegt switch user to ltusernamegt
- login login as a different user
16Files and Directories
- In Unix, files are grouped together in other
files called directories, which are analogous to
folders in Windows - Directory paths are separated by a forward slash
/ - Example /home/bt/FIT/docs
- The hierarchical structure of directories (the
directory tree) begins at a special directory
called the root, or / - Absolute paths start at /
- Example /home/bt/FIT/docs
- Relative paths start in the current directory
- Example FIT/docs (if youre currently in
/home/bt) - Your home directory is where your personal files
are located, and where you start when you log in. - Example /home/bt
17The File System
18Directories (contd)
- Handy directories to know
- Your home directory
- .. The parent directory
- . The current directory
- Other important directories
- /bin
- /tmp
19Simple commands
- ls
- LiSts the contents of specified files or
directories (or the current directory if no files
are specified) - Syntax ls ltfilegt
- Example ls backups
- pwd
- Print Working Directory
20More commands
- cd
- Change Directory (or your home directory if
unspecified) - Syntax cd ltdirectorygt
- Examples
- cd backups/unix-tutorial
- cd ../class-notes
- mkdir
- MaKe DIRectory
- Syntax mkdir ltdirectoriesgt
- Example mkdir backups class-notes
21More commands
- rm
- ReMove
- Syntax rm ltoptionsgt ltfilesgt
- Example rm class-notes.txt
- Example rm ir backups
- rmdir
- ReMove DIRectory, which must be empty
- Syntax rmdir ltdirectoriesgt
- Example rmdir backups class-notes
22Files (contd)
- cp
- CoPies a file, preserving the original
- Syntax cp ltsourcesgt ltdestinationgt
- Example cp tutorial.txt tutorial.txt.bak
- mv
- MoVes or renames a file, destroying the original
- Syntax mv ltsourcesgt ltdestinationgt
- Examples
- mv tutorial.txt tutorial.txt.bak
- mv tutorial.txt tutorial-slides.ppt backups/
Note Both of these commands will over-write
existing files without warning you!
23File Permissions
- Every file has three access levels
- user (the user owner of the file)
- group (the group owner of the file)
- other (everyone else)
- At each level, there are three access types
- read (looking at the contents)
- write (altering the contents)
- execute (executing the contents)
24What You Can Do With Permissions
Permission File Directory
r (read) Read a file List files in
w (write) Write a file Create a file in Rename a file in Delete a file in
x (execute) Execute a file (eg shell script) Read a file in Write to a file in Execute a file/shell script in
25Changing Permissions
- The change mode command
- chmod ltlevelgtltopgtltpermissionsgt, ltfilenamegt
- ltlevelgt string of u, g, o, a (user, group,
other, all) - ltopgt one of , -, (gets, loses, equals)
- ltpermissionsgt string of r, w, x, s, t, u, g,
o (read, write, execute, set-id, text, same
as user, same as group, same as other), - Examples
- chmod urwx,go-w foobar
- chmod gu,t temp/
- chmod urwx,grwxs,o shared/
26Process Management
- What can you do with it?
- Start programs in the background
- Run more than one program per terminal
- Kill bad and/or crashing programs
- Suspend programs mid-execution
- List all jobs running in a shell
- Move foreground jobs to the background
- More
27Three States of a Process
- Foreground
- Attached to keyboard
- Outputs to the screen
- Shell waits until the process ends
- Background, running
- Not attached to keyboard
- Might output to the screen
- Shell immediately gives you another prompt
- Background, suspended
- Paused mid-execution
- Can be resumed in background or foreground
28Background Processes
- Listing jobs
- jobs lists background jobs and job s
- ps lists processes and their process id (pid)
- ltjobgt expands to the process id of the job
- Stopping foreground jobs
- Press Z (Ctrl-Z) in the terminal window
- Starting a process in the background
- Append a character to the command line
- Examples ls lR gt ls-lR.out
- Resuming a stopped job
- In the foreground fg ltpidgt
- In the background bg ltpidgt
29Killing Processes
- The kill command
- kill -ltsignalgt ltpidgt
- Send ltsignalgt to process ltpidgt
- The killall command
- killall -ltsignalgt ltcommandgt
- Send ltsignalgt to all processes that start with
ltcommandgt - Useful signals (kill l for the complete list)
- TERM the default, terminate, kills things
nicely - KILL will kill anything, but not nicely
- HUP hangup, used to reload configurations
- STOP stops (suspends) a running process
30Redirecting input and output
- Simple!ltprogramgt lt ltFILEgt
- ltprogramgt gt ltFILEgt
- Examplesort lt my_grades.txtls gt dirlist
Note a file called dirlist will be created if it
doesnt exist Dirlist will be overwritten. gtgt
appends
31Piping
- Piping is connecting programs together by using
the output of one program as the input to the
next. - Syntaxltprogram1gt ltprogram2gt ltprogramNgt
- A simple example (view a sorted file-listing a
page at a time)ls sort less - By combining Unix utilities in a pipeline, you
can build tools on-the-fly as you need them.
32Shell Shortcuts
- Tab completion
- Type part of a file/directory name, hit lttabgt,
and the shell will finish as much of the name as
it can - Works if youre running tcsh or bash
- Command history
- Dont re-type previous commands use the
up-arrow to access them - Wildcards
- Special character(s) which can be expanded to
match other file/directory names - Zero or more characters
- ? Zero or one character
- Examples
- ls .txt
- rm may-?-notes.txt
33Editing Text
- Which text editor is the best is a holy war.
Pick one and get comfortable with it. - Three text editors you should be aware of
- vi A lighter editor, used in programming
- emacs A heavily-featured editor commonly used
in programming - pico Comes with pine (Dantes email program)
34Printing
- Printing
- Use lpr to print
- Check the print queue with lpq
- lprm to remove print jobs
- For the above commands, youll need to specify
the printer with Pltprinter namegt
35Exiting
- Logout leave the system
- Exit leave the shell
- C interrupt
- D can log user off often disabled
36Remember
- In Unix, youre expected to know what youre
doing. - Many commands will print a message only if
something went wrong. - Most often there is no undo button
- Make a backup copy if you are unsure
- Some commands have interactive options
- E.g. rm i
- Unix can be hard to learn, but it is loads of fun
to use when you know what you are doing!