Introduction to UNIX What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of hardware resources directory and file system loading / execution / suspension of programs History (Brief) 1969 First UNIX at Bell Labs The MULTICS Kernighan, Ritchie, Thompson 1970’s Bell Labs makes UNIX freeware Berkeley UNIX (BSD) Bill Joy vi editor, C Shell 1980’s System V release 4 TCP/IP Sun Microsystems Solaris Microsoft Xenix, SCO MIT X-Windows 1990’s GNU, LINUX Stallman, Torvalds Why Use UNIX? multi-tasking / multi-user lots of software networking capability graphical (with command line) easy to program portable (PCs, mainframes, super-computers) continued free! (LINUX, FreeBSD, GNU) popular profitable 1996 Sales: US$34.5 Billion, up 12% not tied to one company active community Your Account Each user has their own space called their account. Type your login ID and password to enter your account. Only if the login ID and password match will you be let in. Login to your Account login: ad You type your ID and RETURN. Password: You type your password and RETURN. It does not appear. $ The UNIX prompt (or similar). You can now enter commands. Logout from your Account logout or ^D or exit Press CONTROL and D together On-line Help man Manual pages Spacebar to go on; ^C to stop man gnuchess man man apropos topic apropos game apropos help Lists commands related to topic UNIX Books The Unix Programming Environment, Brian W. Kernighan and Rob Pike. Prentice Hall, Inc., 1984. Sumitabha Das, "Unix : Concepts and Applications" A Student’s Guide to UNIX, Harley Hahn, McGraw-Hill, 1993 A Practical Guide to the UNIX System, Mark G. Sobell, Benjamin-Cummings, 3rd Edition, 1995 Hardware Kernel Compilers The Shell The UNIX user interface is called the shell. The shell does 4 jobs repeatedly: display prompt read command the shell process command execute command Typing Commands Try these: date cal 3 2005 who ls -a man cal clear Changing your Password The command is: passwd It will ask you for the new password twice. Date Commands date Gives time and date cal cal 1997 cal 3 cal 7 1962 Calendar cal 9 1752 You and the System uptime hostname whoami who Machine’s ‘up’ time Name of the machine Your name Calculators expr e Simple arithmetic expr 3 + 5 + 7 bc Programmable Calculator Some General Purpose Commands date cal who ls man clear uptime locate more passwd echo banner tty uname hostname tput quota spell whoami apropos whatis which ispell cat sort pwd Redirection, pipes , processes Output can be redirected to a file with‘>‘: ls > dir.txt cal 2004 > year2004 Output can be appended to a file with ‘>>‘ cal 2004 > years cal 2005 >> years Pipes : sending the output of one program to the input of the other ls | sort who | sort Processes : Running two commands sequentially locate mj > xxx; date locate usr > xxx & The UNIX File System The File Ordinary Files Directory Files Device Files The Parent Child Relationship A simplified UNIX directory/file system: / etc ... bin date . . . cal usr1 faculty mj dev ... tmp ... Some System Directories / root directory /bin commands /etc system data files (e.g. /etc/passwd) /dev files representing I/O devices Pathnames A pathname is a sequence of directory names (separated by /’s) which identifies the location of a directory. There are two sorts of pathnames absolute pathnames relative pathname Absolute Pathnames The sequence of directory names between the top of the tree (the root) and the directory of interest. For example: /bin /etc/terminfo /export/user/home/ad /export/user/home/s3910120/proj1 Relative Pathnames The sequence of directory names below the directory where you are now to the directory of interest. If you are interested in the directory proj1: proj1 s3910120 if you are in s3910120/proj1 if you are in home if you are in user home/s3910120/proj1 Commands and Pathnames Commands often use pathnames. For example: /usr/games/fortune cat /etc/passwd List the password file Moving between Directories s3910120’s home directory: s3910120 hobby.c proj1 proj2 ... ... If you are in directory s3910120 how do you move to directory proj1? cd proj1 You are now in proj1. This is called the current working directory. pwd Move back to directory s3910120 (the parent directory): cd .. Print name of current working directory When in proj1, move to proj2 with one command: cd ../proj2 ../proj2 is a relative pathname Special Directory Names / . directory .. The root directory The current working The parent directory (of your current directory) Examples cd / cd ~ cd cd ../.. Change to root directory Change to home directory (Special case; means cd ~) Go up two levels. Investigate the System Use cd cat file List file cd /etc cat passwd ls ls ls /etc Directory listing List current dir. List /etc Making / Deleting / Renaming Directories Usually, you can only create directories (or delete or rename them) in your home directory or directories below it. mkdir rmdir mv Make a directory Delete a directory Rename a directory Permissions ls –l /etc/passwd -rw-r--r-- root 2365 Jul 28 16:19 /etc/passwd read, write, execute (r w x) rw- r-- r-- directory 1 root owner chmod -w, +w …. group everyone Commands to work with files cat > filename less head tail cp mv rm wc grep spell ispell Communicating with People Information on Others users Who else is logged on? who Information on current users ps What are people doing? ps -au w w -sh What are people doing? A shorter report Examine password info: more /etc/passwd grep s38 /etc/passwd Fingering People finger finger -l finger user finger ad Info. on current users Longer information Information on user (need not be logged in) finger @machine-name User info. for that machine finger @catsix finger @ratree.psu.ac.th ping machine-name ping catsix Is machine alive (on)? (^C to stop) Your Finger Information chfn finger also prints the contents of the .plan and .project files in your home Change your finger entry directory. List ‘.’ files with: ls -a Talking talk user Talk to user (on any machine) talk ad talk bill-gates@ratree.psu.ac.th Get out by typing ^C write user user Send a message to on this machine write ad mesg n mesg y Switch off talk / write acceptance. Switch on Sending E-mail Send mail : mail Add Subject: Shoe Problem What colour are my shoes? I cannot see them at the moment because of my desk. - Jim ^D The vi Editor Two modes Insert i Command <ESC> Append a Replace character r, Replace word R ….. Deleting character x, Deleting line dd Exit Goto command mode press :wq …… Filters The UNIX programs that read some input, perform a simple transformation on it and write some output. grep, egrep, fgrep tr, dd, sort Sed, awk – programmable filters grep grep options pattern format filename(s) Some option -c Counting number of occurrences -n Line numbers along with lines grep Mamata –e mamata database grep [Mm]amata database grep : Regular Expressions Character sets Immediately preceeding character [mM] , [aeiou] , [a-zA-Z0-9] G*, [gG]* Matching a single character 2… A four character pattern starting with 2 .* A number of characters or none grep : RE c ^ Any non-special character c matches Turn off any special meaning of character c Beginning of line $ End of line . Any single character […] Any one of character in …; ranges like a-z are legal [^…] Any single character not in …; ranges are legal Zero or more occurrences of r RE r1 followed by RE r2 \c Specifying pattern boundaries ^r pattern beginning with expression r ^[^r] pattern not beginning with expression r r$ pattern ending with expression r r* r1r2 egrep : Regular Expressions r+ : one or more occurrences of r r? : zero or more occurrences of r r1|r2 : r1 or r2 (r) : nested r fgrep Searches for multiple patterns Does not accept regular expression Multiple patterns are separated by new line character. The disadvantage of grep family is that none of them has a separate facility to identify fields. sort -f : eliminates distinction between uppercase and lowercase letters. -n : numeric comparison - r : largest to smallest +m : comparison skips first m fields +0 : beginning of the line -u : discard duplicates comm File comparison command Gives three columns of the output Lines that occur only in file 1 Lines that occur only in file 2 Lines that occur in both One or more columns can be suppressed Comm –12 f1 f2 tr Transliteration of character in the input tr a-z A-N Mostly used for character conversion Assignment 1. Try all the UNIX commands. Store the output in a file appropriately using redirection operators. 2. Read a word from the terminal and check if the spelling is correct. Suggest few alternatives. 3. Create a file using Vi. Store few names in the file. Search all the names containing the letter M or m. 4. Create another file using cat command 5. Compare both the files to find the differences 6. Use calculator commands to compute 5 arithmetic expressions.