Transcript Document
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 • File system has places • Processes have life October 2002 Bent Thomsen - FIT 1-2 2 Unix Structure Programs Kernel System Calls Hardware October 2002 Bent Thomsen - FIT 1-2 3 Interacting with Unix • Sometimes through a GUI interface October 2002 Bent Thomsen - FIT 1-2 4 OpenLook on Sun October 2002 Bent Thomsen - FIT 1-2 5 Common Desktop Environment October 2002 Bent Thomsen - FIT 1-2 6 MacOS X October 2002 Bent Thomsen - FIT 1-2 7 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 October 2002 Bent Thomsen - FIT 1-2 8 Telnet October 2002 Bent Thomsen - FIT 1-2 9 SSH Secure Shell October 2002 Bent Thomsen - FIT 1-2 10 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]> October 2002 Bent Thomsen - FIT 1-2 11 Example of login October 2002 Bent Thomsen - FIT 1-2 12 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. # ! ( ] … October 2002 Bent Thomsen - FIT 1-2 13 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 October 2002 Bent Thomsen - FIT 1-2 14 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 % October 2002 Bent Thomsen - FIT 1-2 15 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> October 2002 Bent Thomsen - FIT 1-2 16 Two Basic Commands • The most useful commands you’ll ever learn: – man – help (short for “manual”) • They help you find information about other commands – man <cmd> retrieves detailed information about <cmd> – help lists useful commands October 2002 Bent Thomsen - FIT 1-2 17 Who am I? • Commands that tell you who you are: – whoami – id displays your username 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> – login October 2002 “switch user” to <username> login as a different user Bent Thomsen - FIT 1-2 18 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 October 2002 Bent Thomsen - FIT 1-2 19 The File System October 2002 Bent Thomsen - FIT 1-2 20 Directories (cont’d) • Handy directories to know ~ Your home directory .. The parent directory . The current directory • Other important directories /bin /tmp October 2002 Bent Thomsen - FIT 1-2 21 • ls Simple commands – 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 October 2002 Bent Thomsen - FIT 1-2 22 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 October 2002 Bent Thomsen - FIT 1-2 23 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 October 2002 Bent Thomsen - FIT 1-2 24 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! October 2002 Bent Thomsen - FIT 1-2 25 File Permissions • Every file has three access levels: – user – group – other (the user owner of the file) (the group owner of the file) (everyone else) • At each level, there are three access types: – read – write – execute October 2002 (looking at the contents) (altering the contents) (executing the contents) Bent Thomsen - FIT 1-2 26 What You Can Do With Permissions Permission File Directory r (read) Read a file List files in … w (write) Write a file x (execute) Execute a file (eg shell script) Create a file in … Rename a file in … Delete a file in … Read a file in … Write to a file in … Execute a file/shell script in … October 2002 Bent Thomsen - FIT 1-2 27 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 foobar chmod g=u,+t temp/ chmod u=rwx,g=rwxs,o= shared/ October 2002 Bent Thomsen - FIT 1-2 28 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 … October 2002 Bent Thomsen - FIT 1-2 29 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 October 2002 Bent Thomsen - FIT 1-2 30 Background Processes • Listing jobs: – jobs – ps – %<job#> lists background “jobs” and job #’s lists processes and their process id (“pid”) 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: – In the background: October 2002 fg [<pid>] bg [<pid>] Bent Thomsen - FIT 1-2 31 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 KILL HUP STOP October 2002 the default, “terminate”, kills things nicely will kill anything, but not nicely “hangup”, used to reload configurations stops (suspends) a running process Bent Thomsen - FIT 1-2 32 Redirecting input and output • Simple! <program> < <FILE> <program> > <FILE> • Example sort < my_grades.txt ls > dirlist Note a file called dirlist will be created if it doesn’t exist Dirlist will be overwritten. >> appends October 2002 Bent Thomsen - FIT 1-2 33 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. October 2002 Bent Thomsen - FIT 1-2 34 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 October 2002 Bent Thomsen - FIT 1-2 35 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) October 2002 Bent Thomsen - FIT 1-2 36 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> October 2002 Bent Thomsen - FIT 1-2 37 Exiting • Logout – leave the system • Exit – leave the shell • ^C interrupt • ^D can log user off – often disabled October 2002 Bent Thomsen - FIT 1-2 38 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! October 2002 Bent Thomsen - FIT 1-2 39