Upload
barbra
View
38
Download
0
Embed Size (px)
DESCRIPTION
Introduction to Unix. Bent Thomsen Institut for Datalogi Aalborg Universitet. Unix 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 - PowerPoint PPT Presentation
Citation preview
Introduction to Unix
Bent Thomsen
Institut for Datalogi
Aalborg Universitet
September 2003 Bent Thomsen - FIT 1-2 2
Unix 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
September 2003 Bent Thomsen - FIT 1-2 3
Unix Structure
Hardware
KernelSystem Calls
Programs
September 2003 Bent Thomsen - FIT 1-2 4
Interacting with Unix
• Sometimes through a GUI interface
September 2003 Bent Thomsen - FIT 1-2 5
OpenLook on Sun
September 2003 Bent Thomsen - FIT 1-2 6
Common Desktop Environment
September 2003 Bent Thomsen - FIT 1-2 7
MacOS X
September 2003 Bent Thomsen - FIT 1-2 8
Interacting 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
September 2003 Bent Thomsen - FIT 1-2 9
Telnet
September 2003 Bent Thomsen - FIT 1-2 10
SSH Secure Shell
September 2003 Bent Thomsen - FIT 1-2 11
Getting started - login
• The login is the user’s 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 % $ [machine]>
September 2003 Bent Thomsen - FIT 1-2 12
Example of login
September 2003 Bent Thomsen - FIT 1-2 13
Password - Do
• Make sure nobody is looking over your shoulder when you type your password
• Change your password often
• Choose a password you can remember
• Use eight characters or more, some numeric, some not letters, i.e. # ! ( ] …
September 2003 Bent Thomsen - FIT 1-2 14
Password – Don’t
• Use a word (or words) in any language• Use a proper name• Use information in your wallet• Use information commonly known about you• Use control characters• Write your password anywhere• EVER give your password to anybody
September 2003 Bent Thomsen - FIT 1-2 15
Passwords
Your password is your account security:
• Change your initial password immediately
• Use the passwd command to change your password
% passwd -where '%' is the prompt Changing password for bt Old password: -type in your old password New password: -type in your new password Retype new password: -and again, to make sure %
September 2003 Bent Thomsen - FIT 1-2 16
The 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
[prompt]> <command> <flags> <args>
September 2003 Bent Thomsen - FIT 1-2 17
Two Basic Commands
• The most useful commands you’ll ever learn:– man (short for “manual”)– help
• They help you find information about other commands– man <cmd> retrieves detailed information about <cmd>– help lists useful commands
September 2003 Bent Thomsen - FIT 1-2 18
Who 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 [<name>] displays info for <name>– id [<username>] displays info for <username>
• Commands that change who you are:– su <username> “switch user” to <username> – login login as a different user
September 2003 Bent Thomsen - FIT 1-2 19
Files 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 you’re 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
September 2003 Bent Thomsen - FIT 1-2 20
The File System
September 2003 Bent Thomsen - FIT 1-2 21
Directories (cont’d)
• Handy directories to know~ Your home directory
.. The parent directory
. The current directory
• Other important directories/bin
/tmp
September 2003 Bent Thomsen - FIT 1-2 22
Simple commands• ls– LiSts the contents of specified files or directories (or
the current directory if no files are specified)– Syntax: ls [<file> … ]– Example: ls backups
• pwd– Print Working Directory
September 2003 Bent Thomsen - FIT 1-2 23
More commands• cd
– Change Directory (or your home directory if unspecified)
– Syntax: cd <directory>– Examples:
•cd backups/unix-tutorial•cd ../class-notes
• mkdir– MaKe DIRectory – Syntax: mkdir <directories>– Example: mkdir backups class-notes
September 2003 Bent Thomsen - FIT 1-2 24
More commands• rm
– ReMove– Syntax: rm [<options>] <files>– Example: rm class-notes.txt– Example: rm –ir backups
• rmdir– ReMove DIRectory, which must be empty– Syntax: rmdir <directories>– Example: rmdir backups class-notes
September 2003 Bent Thomsen - FIT 1-2 25
Files (cont’d)• cp
– CoPies a file, preserving the original– Syntax: cp <sources> <destination>– Example: cp tutorial.txt tutorial.txt.bak
• mv– MoVes or renames a file, destroying the original– Syntax: mv <sources> <destination>– 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!
September 2003 Bent Thomsen - FIT 1-2 26
File 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)
September 2003 Bent Thomsen - FIT 1-2 27
What 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 …
September 2003 Bent Thomsen - FIT 1-2 28
Changing Permissions• The “change mode” command:
chmod <level><op><permissions>[,…] <filename>
<level> string of: u, g, o, a (user, group, other, all)<op> one of +, -, = (gets, loses, equals)<permissions> 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 u+rwx,go-w foobarchmod g=u,+t temp/chmod u=rwx,g=rwxs,o= shared/
September 2003 Bent Thomsen - FIT 1-2 29
Process 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 …
September 2003 Bent Thomsen - FIT 1-2 30
Three 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
September 2003 Bent Thomsen - FIT 1-2 31
Background Processes• Listing jobs:
– jobs lists background “jobs” and job #’s– ps lists processes and their process id (“pid”)– %<job#> 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 > ls-lR.out &
• Resuming a stopped job– In the foreground: fg [<pid>]– In the background: bg [<pid>]
September 2003 Bent Thomsen - FIT 1-2 32
Killing Processes• The “kill” command:
kill [-<signal>] <pid>Send <signal> to process <pid>
• The “killall” command:killall [-<signal>] <command>Send <signal> to all processes that start with <command>
• Useful signals (kill –l for the complete list):TERM the default, “terminate”, kills things nicelyKILL will kill anything, but not nicelyHUP “hangup”, used to reload configurationsSTOP stops (suspends) a running process
September 2003 Bent Thomsen - FIT 1-2 33
Redirecting input and output
• Simple!<program> < <FILE>
<program> > <FILE>• Examplesort < my_grades.txtls > dirlistNote a file called dirlist will be created if it doesn’t existDirlist will be overwritten. >> appends
September 2003 Bent Thomsen - FIT 1-2 34
Piping• Piping is connecting programs together by using the
output of one program as the input to the next.• Syntax:
<program1> | <program2> | … | <programN>• 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.
September 2003 Bent Thomsen - FIT 1-2 35
Shell Shortcuts• Tab completion
– Type part of a file/directory name, hit <tab>, and the shell will finish as much of the name as it can
– Works if you’re running tcsh or bash
• Command history– Don’t 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
September 2003 Bent Thomsen - FIT 1-2 36
Editing 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 (Dante’s email program)
September 2003 Bent Thomsen - FIT 1-2 37
Printing
• Printing:– Use lpr to print– Check the print queue with lpq– lprm to remove print jobs– For the above commands, you’ll need to specify the
printer with –P<printer name>
September 2003 Bent Thomsen - FIT 1-2 38
Exiting
• Logout – leave the system• Exit – leave the shell
• ^C interrupt
• ^D can log user off – often disabled
September 2003 Bent Thomsen - FIT 1-2 39
Remember• In Unix, you’re expected to know what you’re
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!
September 2003 Bent Thomsen - FIT 1-2 40
Opgaver og kursusmateriale
http://www.cs.auc.dk/~bt/FITE03/index.htm