57
Introduction to UNIX

Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Embed Size (px)

Citation preview

Page 1: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Introduction to UNIX

Page 2: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 3: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 4: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 5: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

free! (LINUX, FreeBSD, GNU) popular profitable

1996 Sales: US$34.5 Billion, up 12% not tied to one company active community

Page 6: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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.

Page 7: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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.

Page 8: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Logout from your Account

logout

or

^D Press CONTROL and D together

orexit

Page 9: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

On-line Help

man Manual pages Spacebar to go on; ^C to

stopman gnuchess

man man

apropos topic Lists commands related to topic

apropos game

apropos help

Page 10: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 11: 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

Kernel

Compilers

Inte

rne

t To

ols

Unix

Comm

ands

Databas

e Package

s

Other A

pplicatio

n/

System Softw

are

Shell

Shell

Shell

Shel

lUser

Use

r Use r

User

Kernel-Shell Relationship

Page 12: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

The Shell

The UNIX user interface is called the shell. The shell does 4 jobs repeatedly:

displayprompt

executecommand

processcommand

readcommand the shell

Page 13: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Typing Commands

Try these:date

cal 3 2005

who

ls -a

man cal

clear

Page 14: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Changing your Password

The command is:passwd

It will ask you for the new password twice.

Page 15: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Date Commands

date Gives time and date

cal Calendarcal 1997

cal 3

cal 7 1962

cal 9 1752

Page 16: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

You and the System

uptime Machine’s ‘up’ time hostname Name of the machine

whoami Your name who

Page 17: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Calculators

expr e Simple arithmeticexpr 3 + 5 + 7

bc Programmable Calculator

Page 18: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Some General Purpose CommandsSome General Purpose Commands

date date locatelocatecal cal moremorewhowho passwdpasswdls ls echoechomanman bannerbannerclearclear tty tty uptimeuptime uname uname

hostnamehostname tput tput

quotaquota spell spell

whoamiwhoami ispell ispell aproposapropos catcatwhatiswhatis sortsortwhichwhich pwdpwd

Page 19: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Redirection, pipes , processes Output can be redirected to a file with‘>‘:

ls > dir.txtcal 2004 > year2004

Output can be appended to a file with ‘>>‘cal 2004 > yearscal 2005 >> years

Pipes : sending the output of one program to the input of the otherls | sort

who | sort

Processes : Running two commands sequentially

locate mj > xxx; date

locate usr > xxx &

Page 20: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

The UNIX File System

Page 21: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

The File

Ordinary Files

Directory Files

Device Files

Page 22: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

The Parent Child Relationship

A simplified UNIX directory/file system:

/

etc bin usr1

faculty

dev tmp

date cal. . .. . . . . .. . .

mj

Page 23: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Some System Directories

/ root directory

/bin commands

/etc system data files(e.g. /etc/passwd)

/dev files representing I/O devices

Page 24: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 25: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 26: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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 if you are in s3910120s3910120/proj1 if you are in homehome/s3910120/proj1 if you are in user

Page 27: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Commands and Pathnames

Commands often use pathnames.

For example:/usr/games/fortune

cat /etc/passwd List the password file

Page 28: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Moving between Directories

s3910120’s home directory:

s3910120

hobby.c proj1

. . .

proj2

. . .

Page 29: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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.

Page 30: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

pwd Print name of current working directory

Move back to directory s3910120 (the parent directory):cd ..

Page 31: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

When in proj1, move to proj2 with one command:cd ../proj2

../proj2 is a relative pathname

Page 32: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Special Directory Names

/ The root directory . The current working

directory .. The parent directory

(of your current directory)

Page 33: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Examples

cd / Change to root directory cd ~ Change to home directory cd (Special case; means cd ~)

cd ../.. Go up two levels.

Page 34: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Investigate the System

Use cd cat file List file

cd /etc

cat passwd

ls Directory listingls List current dir.

ls /etc List /etc

Page 35: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Making / Deleting / Renaming Directories

Usually, you can only create directories (or delete or rename them) in your home directory or directories below it.

mkdir Make a directory

rmdir Delete a directory

mv Rename a directory

Page 36: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Permissions

ls –l /etc/passwd-rw-r--r-- 1 root root 2365 Jul 28 16:19 /etc/passwd

read, write, execute (r w x) - rw- r-- r-- directory owner group everyone

chmod -w, +w ….

Page 37: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Commands to work with files

cat > filename less head tail cp mv rm wc grep spell ispell

Page 38: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Communicating with People

Page 39: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Information on Others

users Who else is logged on?

who Information on current users

ps What are people doing?ps -au

Page 40: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

w What are people doing?w -sh A shorter report

Examine password info:more /etc/passwd

grep s38 /etc/passwd

Page 41: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Fingering People

finger Info. on current usersfinger -l Longer information

finger user Information on user (need not be logged

in)finger ad

Page 42: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

finger @machine-name User info. for that machine

finger @catsix

finger @ratree.psu.ac.th

ping machine-name Is machine alive (on)?

ping catsix (^C to stop)

Page 43: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Your Finger Information

chfn Change your finger entry

finger also prints the contents of the .plan and .project files in your home directory. List ‘.’ files with:ls -a

Page 44: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Talking

talk user Talk to user (on any machine)

talk ad

talk [email protected]

Get out by typing ^C

Page 45: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

write user Send a message to user

on this machinewrite ad

mesg n Switch off talk / write acceptance.

mesg y Switch on

Page 46: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

Sending E-mail

Send mail :

mail Add Subject: Shoe ProblemWhat colour are my shoes? I cannot see them at the moment because of my desk.- Jim^D

Page 47: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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……

Page 48: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 49: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 50: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

grep : Regular Expressions

Character sets [mM] , [aeiou] , [a-zA-Z0-9]

Immediately preceeding character G*, [gG]*

Matching a single character 2… A four character pattern starting with 2 .* A number of characters or none

Page 51: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

grep : RE

Specifying pattern boundaries ^r pattern beginning

with expression r

^[^r] pattern not beginning with expression r

r$ pattern ending with expression r

c Any non-special character c matches

\c 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

r* Zero or more occurrences of r

r1r2 RE r1 followed by RE r2

Page 52: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 53: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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.

Page 54: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 55: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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

Page 56: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

tr

Transliteration of character in the input tr a-z A-N

Mostly used for character conversion

Page 57: Introduction to UNIX. What is UNIX? An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities: management of

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 command5. Compare both the files to find the differences6. Use calculator commands to compute 5

arithmetic expressions.