Vous êtes sur la page 1sur 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 hardware resources


directory and file system
loading / execution / suspension of
programs

History (Brief)

1969

First UNIX at Bell Labs


The MULTICS
Kernighan, Ritchie,
Thompson

1970s

Bell Labs makes UNIX


freeware
Berkeley UNIX (BSD)
Bill Joy vi editor, C
Shell

1980s

System V release 4
TCP/IP
Sun Microsystems
Solaris
Microsoft Xenix, SCO
MIT X-Windows

1990s

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 Students Guide to UNIX, Harley Hahn,
McGraw-Hill, 1993
A Practical Guide to the UNIX System, Mark
G. Sobell, Benjamin-Cummings,
3rd Edition, 1995

s
ba
ta
s
Da
ge
e cka
Pa
l

Int
t T erne
oo
ls

S
h
ell

Us
e

Sh
el

Hardware

Kernel
Compilers

e
Us
r

l
el
h
S

er
s
U

e
Us
r

d
an
x
ni m
U m
Co

n/
o
ti e
a
lic war
p
p oft
A
er m S
h
Ot ste
Sy

ell
h
S

Kernel-Shell Relationship

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

Calendar

cal 1997
cal 3
cal 7 1962
cal 9 1752

You and the System

uptime

hostname

Machines up time
Name of the machine

whoami

Your name

who

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

rootdirectory

/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:

if you are in s3910120


s3910120/proj1
if you are in home
home/s3910120/proj1
if you are in user
proj1

Commands and Pathnames

Commands often use pathnames.

For example:
/usr/games/fortune
cat /etc/passwd

List the password file

Moving between Directories

s3910120s 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.

Print name of current


working directory

pwd

Move back to directory s3910120 (the


parent directory):
cd ..

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

Usecd

cat file

List file

cd /etc
cat passwd

ls
ls
ls /etc

Directory listing
Listcurrentdir.
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

alive (on)?
ping catsix (^C tostop)

Is machine

Your Finger Information


Change your finger entry

chfn

finger also prints the contents of the


.plan and .project files in your home

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

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.
2.
3.

4.
5.
6.

Try all the UNIX commands. Store the output in


a file appropriately using redirection operators.
Read a word from the terminal and check if the
spelling is correct. Suggest few alternatives.
Create a file using Vi. Store few names in the
file. Search all the names containing the letter
M or m.
Create another file using cat command
Compare both the files to find the differences
Use calculator commands to compute 5
arithmetic expressions.