You are on page 1of 108

Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

I. Tæng quan hÖ ®iÒu hµnh UNIX.....................................................................4


1. HÖ ®iÒu hµnh Unix.....................................................................................4
2. C¸c ®Æc ®iÓm c¬ b¶n.................................................................................6
II. LÖnh vµ tiÖn Ých c¬ b¶n.................................................................................7
1. C¸c lÖnh khëi t¹o...........................................................................................8
2. C¸c lÖnh hiÓn thÞ.........................................................................................8
3. §Þnh híng vµo ra...........................................................................................8
4. Desktop:.........................................................................................................8
5. C¸c lÖnh thao th môc vµ t¸c file....................................................................9
6. In Ên............................................................................................................10
7. Th tÝn.........................................................................................................10
8. Qu¶n lý tiÕn tr×nh.......................................................................................10
9. KiÓm so¸t quyÒn h¹n vµ b¶o mËt...............................................................10
10. Lu tr÷ vµ håi phôc d÷ liÖu..........................................................................10
11. C¸c thao t¸c trªn m¹ng...................................................................................10
III. Th©m nhËp hÖ thèng - C¸c lÖnh c¨n b¶n.......................................................11
1. B¾t ®Çu vµ kÕt thóc phiªn lµm viÖc-X¸c lËp m«i trêng hÖ thèng...........11
2. C¸c lÖnh hiÓn thÞ.......................................................................................12
3. §Þnh híng vµo ra vµ ®êng èng:..................................................................13
4. Desktop:.......................................................................................................14
5. C¸c lÖnh thao t¸c trªn th môc, file................................................................18
6. In Ên............................................................................................................25
7. Th tÝn ®iÖn tö............................................................................................26
8. Qu¶n lý tiÕn tr×nh.......................................................................................28
9. C¸c lÖnh liªn quan b¶o mËt vµ quyÒn h¹n..................................................29
a) Kh¸i niÖm:...................................................................................................29
b) C¸c lÖnh......................................................................................................31
10. Lu tr÷ vµ håi phôc d÷ liÖu..........................................................................33
11. C¸c thao t¸c trªn m¹ng...................................................................................36
IV. LËp tr×nh Shell...............................................................................................38

1
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

1. C¸c ®Æc tÝnh c¬ b¶n.................................................................................38


2. LËp tr×nh shell............................................................................................41
a) LÖnh ®iÒu kiÖn.........................................................................................42
b) LÖnh lÆp....................................................................................................45
c) Shell Functions............................................................................................45
d) LÖnh trap....................................................................................................46
e) Thùc hiÖn lÖnh ®iÒu kiÖn víi cÊu tróc AND(&&) vµ OR (||)..................46
V. Starting Up and Shutting Down.......................................................................47
1. Booting the System......................................................................................47
2. Shutting Down the System..........................................................................54
VI. Managing processes.........................................................................................54
1. Processes.....................................................................................................54
2. Process scheduling.......................................................................................57
3. Process priorities..........................................................................................59
VII. Security........................................................................................................59
1. Security datafiles.........................................................................................59
2. Group and User administration....................................................................63
a) Group administration...................................................................................63
b) User administration......................................................................................63
3. System access permissions..........................................................................67
4. Acounting....................................................................................................67
VIII. File System and Disk Administration..........................................................69
1. CÊu tróc th môc trªn Unix...........................................................................69
2. Creating file systems....................................................................................70
3. Mounting and unmounting file systems.......................................................71
4. Managing disk use.......................................................................................74
5. Checking file system integrity.....................................................................75
6. Backup and restore......................................................................................77
IX. Printer administration......................................................................................78
X. Network administration...................................................................................79

2
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

1. UUCP (Unix to Unix copy).........................................................................79


2. TCP/IP and Neworks...................................................................................82
a) TCP/IP.........................................................................................................82
b) PPP..............................................................................................................87
c) DNS.............................................................................................................88
d) NIS..............................................................................................................99
3. NFS (Network File System).......................................................................101
4. Mail...........................................................................................................103
5. UNIX client...............................................................................................104

3
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

I. Tæng quan hÖ ®iÒu hµnh UNIX

1. HÖ ®iÒu hµnh Unix

UNIX lµ mét hÖ ®iÒu hµnh phæ biÕn, tríc ®©y chóng ®îc sö dông trong c¸c
minicomputer vµ c¸c workstation trong c¸c c«ng së nghiªn cøu khoa häc. Ngµy nay
UNIX ®· trë thµnh hÖ ®iÒu hµnh ®îc dïng cho c¶ m¸y tÝnh c¸ nh©n vµ phôc vô
c«ng viÖc kinh doanh nhê kh¶ n¨ng më cña nã.

UNIX gièng nh c¸c hÖ ®iÒu hµnh kh¸c nã lµ líp n»m gi÷a phÇn cøng vµ øng
dông. Nã cã chøc n¨ng qu¶n lý phÇn cøng vµ qu¶n lý c¸c øng dông thùc thi. §iÒu
kh¸c nhau c¬ b¶n gi÷a UNIX vµ bÊt kú hÖ ®iÒu hµnh kh¸c lµ sù thùc thi bªn trong
vµ giao diÖn.

HÖ ®iÒu hµnh UNIX thùc sù lµ mét hÖ ®iÒu hµnh. Nã bao gåm c¸c thµnh phÇn
tríc ®©y (PhÇn c¬ b¶n vèn cã cña hÖ ®iÒu hµnh Unix) vµ c¸c thµnh phÇn míi bæ
sung, nã lµ líp n»m gi÷a phÇn cøng vµ c¸c øng dông.

CÊu tróc c¬ b¶n cña hÖ ®iÒu hµnh Unix nh sau:

User

Shell

Kernel
Hardware

4
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Kernel

PhÇn qu¶n lý phÇn cøng vµ c¸c øng dông thùc thi gäi lµ kernel. Trong qu¶n lý c¸c
thiÕt bÞ phÇn cøng UNIX xem mçi thiÕt bÞ nµy nh mét file (®îc gäi lµ device
file). §iÒu nµy cho phÐp viÖc truy nhËp c¸c thiÕt bÞ gièng nh viÖc ®äc vµ ghi
trªn file. ViÖc qu¶n lý quyÒn truy nhËp trªn c¸c thiÕt bÞ th«ng qua hÖ thèng kiÓm
so¸t b¶o mËt quyÒn h¹n. C¸c process ®ang thùc thi ®îc UNIX ph©n chi tµi nguyªn
bao gåm CPU vµ c¸c truy nhËp tíi phÇn cøng.

Khi khëi ®éng m¸y tÝnh th× mét ch¬ng tr×nh unix ®îc n¹p vµo trong bé nhí
chÝnh, vµ nã ho¹t ®éng cho ®Õn khi shutdown hoÆc khi t¾t m¸y. Ch¬ng tr×nh
nµy ®îc gäi lµ kernel, thùc hiÖn chøc n¨ng møc thÊp vµ chøc n¨ng møc hÖ thèng.
Kernel chÞu tr¸ch nhiÖm th«ng dÞch vµ göi c¸c chØ thÞ tíi bé vi xö lý m¸y tÝnh.
Kernel còng chÞu tr¸ch nhiÖm vÒ c¸c tiÕn tr×nh vµ cung cÊp c¸c ®Çu vµo vµ ra
cho c¸c tiÕn tr×nh. Kernel lµ tr¸i tim cña hÖ ®iÒu hµnh UNIX.

Khi kernel ®îc n¹p vµo trong bé nhí lóc ®ã nã ®· s½n sµng nhËn c¸c yªu cÇu tõ
ngêi sö dông. §Çu tiªn ngêi sö dông ph¶i login vµ ®a ra yªu cÇu. ViÖc login lµ ®Ó
kernel biÕt ai ®· vµo hÖ thèng vµ c¸ch truyÒn th«ng víi chóng. §Ó lµm ®iÒu nµy
kernel gäi ch¹y hai ch¬ng tr×nh ®Æc biÖt lµ getty vµ login. §Çu tiªn kernel gäi
ch¹y getty. Getty hiÓn thÞ dÊu nh¾c vµ yªu cÇu ngêi sö dông nhËp vµo.

Khi nhËn ®îc th«ng tin ®Çu vµo getty gäi ch¬ng tr×nh login. Ch¬ng tr×nh login
thiÕt lËp ®Þnh danh cho user vµ x¸c ®Þnh quyÒn cña user login. Ch¬ng tr×nh
login kiÓm tra mËt khÈu trong file mËt khÈu. NÕu mËt khÈu kh«ng ®óng cæng
vµo sÏ kh«ng ®îc thiÕt lËp vµ bÞ tr¶ l¹i ®iÒu khiÓn cho getty. NÕu user nhËp
®óng mËt khÈu ch¬ng tr×nh login göi ®iÒu khiÓn tíi ch¬ng tr×nh mµ cã tªn n»m
trong password file. Th«ng thêng ch¬ng tr×nh nµy lµ shell.

Shell

ViÖc thao t¸c trùc tiÕp tíi kernel lµ rÊt phøc t¹p vµ ®ßi hái kü thuËt cao §Ó tr¸nh
sù phøc t¹p cho ngêi sö dông vµ ®Ó b¶o vÖ kernel tõ nh÷ng sai sãt cña ngêi sö
dông shell ®· ®îc x©y dùng thµnh líp bao quanh kernel. Ngêi sö dông göi yªu cÇu
tíi shell, shell biªn dÞch chóng vµ sau ®ã göi tíi kernel.

5
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Chøc n¨ng cña shell

Thêng víi UNIX cã ba lo¹i shell ®îc dïng phæ biÕn. C¶ ba ®Òu nh»m mét môc
®Ých cung cÊp c¸c chøc n¨ng sau:

 Th«ng dÞch lÖnh

 Khëi t¹o ch¬ng tr×nh

 §Þnh híng vµo ra

 KÕt nèi ®êng èng

 Thao t¸c trªn file

 Duy tr× c¸c biÕn

 §iÒu khiÓn m«i trêng

 LËp tr×nh shell

HiÖn nay trªn hÖ ®iÒu hµnh Unix ngêi ta ®ang sö dông chñ yÕu ba lo¹i shell sau:
Bourne shell, Korn shell, C shell. B¶ng sau so s¸nh gi÷a 3 lo¹i shell (Theo tµi liÖu
UNIX UNLEASHED - Sams Development Team - SAMS Publishibng)

1 tèt nhÊt, 2 trung b×nh, 3 yÕu.


Shell Learning Editing Shortcuts Portability Experience

Bourne 1 3 3 1 3
C 2 2 1 3 2
Korn 3 1 2 2 1
User

Gåm c¸c tiÖn tÝch, c¸c øng dông giao tiÕp víi ngêi sö dông.

2. C¸c ®Æc ®iÓm c¬ b¶n

HÖ ®iÒu hµnh UNIX cã mét sè ®Æc ®iÓm sau:

 §a ch¬ng

6
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 NhiÒu ngêi sö dông

 B¶o mËt

 §éc lËp phÇn cøng

 HÖ më

 Dïng chung thiÕt bÞ

 Tæ chøc tËp tin ph©n cÊp

B¶ng so s¸nh gi÷a UNIX, NetWare vµ Windows NT (Theo tµi liÖu Upgrading and
Repairing Networks –QUE)
Network Goals UNIX NetWare Windows NT
Interoperability Excellent Good Fair
Transparency Good Good Fair
Security Good Good Good
Efficiency Excellent Good Fair
Reliability Excellent Good Good
Accessibility Good Excellent Fair
Cost Depends Fair Fair
Scalability Excellent Good Fair
Third-party utilities available Excellent Good Fair
Directory services Excellent Good Fair
Flexibility Excellent Good Fair
Performance Excellent Good Fair
Print support Good Good Fair
Years of experience >25 >10 <10

II. LÖnh vµ tiÖn Ých c¬ b¶n

C¸c lÖnh vµ tiÖn Ých cña Unix rÊt ®a d¹ng.

Mét lÖnh UNIX cã d¹ng: $lÖnh [c¸c chän lùa] [c¸c ®èi sè] lÖnh thêng lµ ch÷ nhá.
Unix ph©n biÖt ch÷ lín, nhá víi ch÷ lín.

VÝ dô: $ls -c /dev

Víi ngêi sö dông hÖ thèng, ta cã thÓ chia lÖnh thµnh c¸c nhãm sau:

1. C¸c lÖnh khëi t¹o

login Thùc hiÖn login vµo mét ngêi sö dông nµo ®ã

7
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

su ChuyÓn sang ngêi sö dông tõ mét ngêi sö dông nµo ®ã

uname Xem mét sè th«ng tin vÒ hÖ thèng.

who HiÖn lªn ngêi ®ang th©m nhËp hÖ thèng

who am i xem ai ®ang lµm viÖc t¹i terminal

exit Tho¸t khái hÖ thèng

env Xem th«ng tin tÊt c¶ c¸c biÕn m«i trêng.

man Gäi tr×nh trî gióp

2. C¸c lÖnh hiÓn thÞ

echo HiÓn thÞ dßng ký tù hay biÕn lªn mµn h×nh

setcolor §Æt mµu nÒn vµ ch÷ cña mµn h×nh

3. §Þnh híng vµo ra

cmd > File ChuyÓn néi dung hiÓn thÞ ra file

cmd < file LÊy ®Çu vµo tõ file

cmd>>file Néi dung hiÓn thÞ ®îc thªm vµo file

cmd1 | cmd2 §Çu ra cña lÖnh cmd1 thµnh ®Çu vµo cña lÖnh cmd2

4. Desktop:

bc Dïng ®Ó tÝnh to¸n c¸c biÓu thøc sè häc

cal HiÖn lÞch

date HiÓn thÞ vµ ®Æt ngµy

mesg CÊm/ cho phÐp hiÓn thÞ th«ng b¸o trªn mµn h×nh (bëi write/ hello)

spell KiÓm tra lçi chÝnh t¶

vi So¹n th¶o v¨n b¶n

write/ hello Cho phÐp göi dßng th«ng b¸o ®Õn nh÷ng ngêi ®ang sö dông trong

8
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

hÖ thèng

wall Göi th«ng b¸o ®Õn mµn h×nh ngêi sö dông hÖ thèng

5. C¸c lÖnh thao th môc vµ t¸c file

cd Thay ®æi th môc

cp Sao chÐp mét hay nhiÒu tËp tin

find T×m vÞ trÝ cña tËp tin

mkdir T¹o th môc

rmdir Xo¸ th môc

mv ChuyÓn/ ®æi tªn mét tËp tin

pwd HiÖn vÞ trÝ th môc hiÖn thêi

ls HiÖn tªn file vµ thuéc tÝnh cña nã

ln T¹o liªn kÕt file (link)

sort S¾p xÕp thø tù tËp tin hiÓn thÞ

cat Xem néi dung cña file

tail Xem néi dung file t¹i cuèi cña file

more HiÖn néi dung tËp tin tr×nh bµy díi d¹ng nhiÒu trang

grep T×m vÞ trÝ cña chuçi ký tù

wc §Õm sè tõ trong tËp tin

compress NÐn file.

uncompress Më nÐn.

6. In Ên

cancel Huû bá viÖc In

lp In tµi liÖu ra m¸y in

9
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

lpstat HiÖn tr¹ng th¸i hµng chê in

7. Th tÝn

mail Göi - nhËn th tÝn ®iÖn tö

mailx

8. Qu¶n lý tiÕn tr×nh

kill Hñy bá mét qu¸ tr×nh ®ang ho¹t ®éng

ps HiÖn c¸c tiÕn tr×nh ®ang ho¹t ®éng vµ tr¹ng th¸i cña c¸c tiÕn tr×nh

sleep Ngng ho¹t ®éng cña tiÕn tr×nh trong mét kho¶ng thêi gian

9. KiÓm so¸t quyÒn h¹n vµ b¶o mËt

passwd thay ®æi password hoÆc c¸c tham sè ®èi víi ngêi sö dông

chgrp Thay ®æi quyÒn chñ së h÷u file hoÆc th môc

chmod Thay ®æi quyÒn h¹n trªn file hoÆc th môc

chown Thay ®æi ngêi së h÷u tËp tin hay th môc

10. Lu tr÷ vµ håi phôc d÷ liÖu

cpio Lu tr÷ vµ håi phôc d÷ liÖu ra c¸c thiÕt bÞ lu tr÷

tar Lu tr÷ d÷ liÖu ra tape hoÆc c¸c file tar

11. C¸c thao t¸c trªn m¹ng

ping KiÓm tra sù tham gia cña c¸c nót trªn m¹ng

netstat KiÓm tra tr¹ng th¸i cña m¹ng hiÖn thêi

ftp Thùc hiÖn dÞch vô truyÒn nhËn file

telnet Thùc hiÓn kÕt nèi víi mét hÖ thèng

Uutry KÕt nèi UUCP

10
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

rcp Sao chÐp file ë xa

III.Th©m nhËp hÖ thèng - C¸c lÖnh c¨n b¶n

1. B¾t ®Çu vµ kÕt thóc phiªn lµm viÖc-X¸c lËp m«i trêng hÖ thèng

Khi b¾t ®Çu lµm viÖc trªn hÖ thèng b¹n ph¶i login. ViÖc login b¸o cho hÖ thèng
biÕt b¹n lµ ai vµ c¸c chñ quyÒn lµm viÖc cña b¹n, khi kÕt thóc phiªn lµm viÖc
ph¶i logout. Khi ®ã kh«ng cã mét ai kh¸c cã thÓ truy xuÊt tËp tin cña b¹n nÕu
kh«ng ®îc phÐp. Trong mét hÖ thèng cã nhiÒu ngêi sö dông, mçi ngêi cã mét tªn
vµ mét mËt khÈu duy nhÊt. Quy ®Þnh tªn cña ngêi sö dông kh«ng ®îc nhá h¬n 2
ký tù nÕu lín h¬n 8 ký tù th× Unix chØ lÊy 8 ký tù ®Çu.

LÖnh env: HiÖn c¸c th«ng tin vÒ biÕn m«i trêng.

LÖnh su: ChuyÓn sang ngêi sö dông tõ mét ngêi sö dông nµo ®ã.

su <user>

VÝ dô: §ang ë ngêi sö dông anh muèn t¹m chuyÓn sang ngêi sö dông root

$su root

HÖ thèng sÏ yªu cÇu nhËp mËt khÈu cña ngêi sö dông root

su - <user> - c <command arg>

ChuyÓn sang user vµ gäi ch¹y lÖnh command

LÖnh uname: Xem mét sè th«ng tin hÖ thèng hiÖn thêi.

uname <option>

-a HiÖn tÊt c¶ c¸c th«ng tin.

-A HiÖn c¸c th«ng tin liªn quan ®Õn license.

-m HiÖn tªn phÇn cøng cña hÖ thèng

-r HiÖn lªn version hÖ ®iÒu hµnh.

-s HiÖn tªn hÖ thèng

11
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

LÖnh who: HiÖn mét sè th«ng tin sö dông hÖ thèng.

who <option>

-r ChØ ra hÖ thèng ®ang ch¹y t¹i level nµo.

-n HiÖn th«ng tin user ®ang login vµo hÖ thèng

VÝ du: $ who

juucp tty00 Sep 28 11:13

pjh slan05 Sep 28 12:08

LÖnh who am i: Xem ai ®ang lµm viÖc t¹i terminal

LÖnh exit: Tho¸t khái shell

LÖnh man: Gäi tr×nh trî gióp

man <command>

VÝ dô: Muèn xem trî gióp lÖnh cp gâ $man cp

2. C¸c lÖnh hiÓn thÞ

LÖnh echo: HiÓn thÞ dßng ký tù hay trÞ cña biÕn lªn mµn h×nh.

echo [-n] [arg]

-n In ra chuçi kü tù mµ kh«ng t¹o dßng míi

C¸c ký tù qui ®Þnh kh¸c ®îc quy ®Þnh gièng nh qui ®Þnh trong lÖnh printf trong
C

(\c In dßng kh«ng t¹o dßng míi, \t tab, \n in dßng vµ t¹o dßng míi ...)

VÝ dô: $echo ‘Hien len man hinh’

$echo $PATH

LÖnh setcolor: §Æt mµu nÒn vµ ch÷ cña mµn h×nh.

setcolor <option>

-b <color> §Æt mµu nÒn.

12
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

-f <color> §Æt mµu ch÷.

3. §Þnh híng vµo ra vµ ®êng èng:

§Þnh híng vµo ra

C¸c ch¬ng tr×nh nhËn d÷ liÖu nhËp vµ t¹o xuÊt ®Òu cã c¸c kªnh liªn l¹c ®Ó
chuyÓn c¸c th«ng tin ®ã. §«i khi c«ng viÖc nµy ®îc thùc hiÖn têng minh bëi ch-
¬ng tr×nh "më" mét tËp tin cô thÓ.

Trong UNIX c¸c thiÕt bÞ ®îc xö lý nh tËp tin -> c¸c thao t¸c vµo ra dÔ dµng cã
thÓ ®æi híng vµo ra.

UNIX cung cÊp mét sè ph¬ng tiÖn gióp cho c¸c thao t¸c ®Þnh híng vµo ra:

cmd > File ChuyÓn néi dung hiÓn thÞ ra file

cmd < file LÊy ®Çu vµo tõ file

cmd>>file Néi dung hiÓn thÞ ®îc thªm vµo file

VÝ dô: $cal > cde

HiÖn néi dung lÞch ra file abc

C¸c ®æi thao t¸c ®æi híng vµo ra cã thÓ kÕt hîp víi nhau trong mét lÖnh.

VÝ dô: cat <file1 > file2

§êng èng

cmd1 | cmd2 §Çu ra cña lÖnh cmd1 thµnh ®Çu vµo cña lÖnh cmd2

§Æc ®iÓm ®êng èng cña UNIX nèi kÕt 1 lÖnh nµy víi 1 lÖnh kh¸c. §Æc biÖt h¬n
nã t¹o xuÊt chuÈn cña 1 lÖnh thµnh nhËp chuÈn cña 1 lÖnh kh¸c. Ký hiÖu ®êng
èng (|) ®îc sö dông ®Ó thiÕt lËp ®êng èng.

VÝ dô: $ls | sort

NhËn xuÊt cña ls vµ göi nã ®Õn lÖnh sort ®Ó s¾p thø tù.

Tæ hîp c¸c tËp tin víi nhËp chuÈn

Trong Unix c¸c lÖnh ®êng èng cã thÓ kÕt hîp víi ®æi híng.

13
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

VÝ dô: wc baocao* | sort -n > rep-count kÕt qu¶ sÏ ®a ra tËp tin rep-count.

C¸c ký kiÖu vµo ra chuÈn trong lÖnh (0: nhËp chuÈn, 1: xuÊt chuÈn, 2: sai
chuÈn)

VÝ dô:

spell baocao > baocaodung 2> baocaosai &

Trong lÖnh trªn c¸c tõ sai sÏ ®îc ®a ra file baocaosai.

C¸c lÖnh Desktop

4. Desktop:

LÖnh bc: Dïng ®Ó tÝnh to¸n c¸c biÓu thøc sè häc

VÝ dô:

$ bc

x=5

10*x

50

^d

LÖnh cal: HiÖn lÞch díi d¹ng sau:

$ cal

February 1994

S M Tu W Th F S

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28

14
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

LÖnh date: HiÓn thÞ ngµy giê theo khu«n d¹ng mong muèn vµ cho phÐp thay
®æi ngµy hÖ thèng.

VÝ dô:

$date

Sat Sep 28 1:45:58 EDT 1998

$date +%D

09/28/98

LÖnh mesg: Cho phÐp hoÆc cÊm hiÓn thÞ th«ng b¸o trªn mµn h×nh (bëi write/
hello)

mesg [n] [y]

n CÊn kh«ng cho hiÓn thÞ.

y Cho phÐp hiÓn thÞ.

LÖnh spell: KiÓm tra lçi chÝnh t¶ xem cã lçi hay kh«ng nÕu cã th× hiÖn c¸c lçi
sai

LÖnh write/ hello:Cho phÐp göi dßng th«ng b¸o ®Õn nh÷ng ngêi ®ang sö dông
trong hÖ thèng vµ thùc hiÖn trao ®æi th«ng tin trùc tiÕp qua mµn h×nh terminal

write <user>

Hello <user>

VÝ dô:

$write username

< C©u th«ng b¸o cÇn gëi >

^d

LÖnh wall: Göi th«ng b¸o ®Õn tÊt c¶ mµn h×nh ngêi sö dông hÖ thèng terminal.

VÝ dô:

$wall

15
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Thong bao

^d

LÖnh vi: So¹n th¶o v¨n b¶n d¹ng ®¬n gi¶n trªn Unix

§Ó thùc hiÖn so¹n th¶o v¨n b¶n d¹ng text ®¬n gi¶n, trong Unix hç trî ch¬ng tr×nh
so¹n th¶o vi. Trong so¹n th¶o ph©n ra hai chÕ ®é lµ chÕ ®é lÖnh vµ chÕ ®é so¹n
th¶o

ChÕ ®é lÖnh: cho phÐp chÌn, xo¸, thay thÕ ...

ChÕ ®é so¹n th¶o: cho phÐp so¹n th¶o v¨n b¶n.

Esc

Command Text mode


mode

a, A, i, I, o, O

§Ó vµo tr×nh so¹n th¶o vi ta ®¸nh: vi <tªn file>

Khëi ®Çu vi ®Æt ë chÕ ®é lÖnh. §Ó vµo chÕ ®é so¹n th¶o ®¸nh (a, A, i, I, o, O)
tho¸t khái chÕ ®é nµy ®¸nh ESC, tho¸t khái vi nhÊn: x

Mét sè tuú chän cña vi

vi <file> B¾t ®Çu so¹n th¶o t¹i dßng 1

vi +n <file> B¾t ®Çu ë dßng n

vi +/pattern B¾t ®Çu ë pattern

vi -r tËp tin Phôc håi tËp tin sau khi hÖ thèng treo

Mét sè lÖnh trong command mode cña lÖnh vi


0 ChuyÓn con trá tíi ®Çu dßng
$ ChuyÓn con trá tíi cuèi dßng.

16
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

/pattern T×m x©u v¨n b¶n b¾t ®Çu tõ dßng kÕ tiÕp.


?pattern T×m x©u v¨n b¶n tõ dßng tríc ®ã vÒ ®Çu.
a Thªm text vµo sau ký tù hiÖn thêi.
^b Back up one screen of text.
B Back up one space-delimited word.
b Back up one word.
Backspace Move left one character.
^d ChuyÓn xuèng díi nöa trang mµn h×nh
D Xo¸ ®Õn cuèi dßng
d dw = Xo¸ 1 tõ, dd = Xo¸ mét dßng
Esc ChuyÓn tõ insert mode sang command mode
^f ChuyÓn xuèng mét trang mµn h×nh
G ChuyÓn con trá tíi dßng cuèi cïng cña file
nG ChuyÓn con trá tíi dßng thø n
h ChuyÓn sang tr¸i mét ký tù.
i ChÌn text (chuyÓn sang insert mode) sau ký tù hiÖn thêi.
j ChuyÓn con trá xuèng mét dßng.
k ChuyÓn con trá lªn mét dßng.
l ChuyÓn con trá sang ph¶i mét ký tù.
n LÆp l¹i t×m kiÕm.
O Thªm mét dßng míi trªn dßng hiÖn thêi.
o Thªm mét dßng míi díi dßng hiÖn thêi.
Return B¾t ®Çu mét dßng míi
^u ChuyÓn lªn nöa trang mµn h×nh.
U Undo—Thay thÕ l¹i dßng hiÖn thêi nÕu cã thay ®æi.
u Undo thay ®æi cuèi cïng trªn file ®ang so¹n th¶o.
W Move forward one space-delimited word.
w Di chuyÓn tiªp mét tõ.
x Xo¸ mét ký tù.
:e file So¹n th¶o file míi mµ kh«ng tho¸t khái vi.

17
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

:n ChuyÓn tíi file tiÕp trong danh s¸ch file dang so¹n th¶o.
:q Tho¸t khái lÖnh vi vµ quay trë l¹i dÊu nh¾c cña UNIX.
:q! Tho¸t khái lÖnh vi vµ quay trë l¹i hÖ thèng kh«ng ghi bÊt cø thay
®æi nµo.
:r file §äc néi dung file chØ ®Þnh vµ ®a nã vµo trong bé ®Öm hiÖn thêi
cña lÖnh vi.
:w file Ghi néi dung trong bé ®Öm ra file chØ ®Þnh.
:w Ghi bé ®Öm ra ®Üa.

5. C¸c lÖnh thao t¸c trªn th môc, file

C¸c thao t¸c trªn th môc

LÖnh cd: Sö dông lÖnh ®Ó thay ®æi th môc lµm viÖc hiÖn hµnh.

cd [directory]

VÝ dô: ChuyÓn ®Õn th môc /usr/include: $cd /usr/include

ChuyÓn trë l¹i th môc "home": $cd

ChuyÓn ®Õn mét th môc con cña th môc hiÖn hµnh: $cd ccs

ChuyÓn ®Õn th môc cha: $cd..

LÖnh ls: Sö dông lÖnh ls ®Ó tr×nh bµy néi dung cña th môc ls [option] [directory]

option:

-l HiÖn chi tiÕt th«ng tin mét file

-c HiÖn danh s¸ch c¸c tËp tin theo thø tù

-a HiÖn lªn c¸c file bao gåm c¶ file .<tªn file> (vd: .profile)

-F HiÖn ph©n biÖt gi÷a directory (/), executable files (*) víi c¸c file th«ng th-
êng.

-u Sö dông víi –l hiÖn thay v× hiÖn last access time sÏ hiÖn last modification
time.

-s Sö dông víi –l hiÖn file size díi d¹ng blocks thay cho d¹ng bytes.

18
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

-t Sö dông víi –u s¾p xÕp ®Çu ra theo time thay cho tªn.

-r §¶o ngîc tr×nh tù s¾p xÕp

-x Cho phÐp hiÓn thÞ d¹ng nhiÌu cét

VÝ dô: $ls -F

bin/ chmod*

etv/ temp

$ls -l

drwx------ 2 sshah admin 512 May 12 13:08 public_html

LÖnh mkdir: Sö dông mkdir ®Ó t¹o th môc

mkdir [-p] [directory]

-p T¹o c¸c th môc gi¸n tiÕp nÕu tªn th môc gi¸n tiÕp trong ®êng dÉn lµ kh«ng
tån t¹i sù t¹o.

VÝ dô: t¹o c¸c th môc gi¸n tiÕp:

$mkdir -p /usr/tam2/duc

th môc tam2 kh«ng tån t¹i do ®ã t¹o c¶ th môc tam2 vµ duc.

LÖnh pwd: Sö dông lÖnh pwd hiÖn toµn bé ®êng dÉn cña th môc hiÖn hµnh

$pwd

/usr/tam1/dung

LÖnh rmdir: Sö dông rmdir ®Ó xo¸ th môc

rmdir [-ps] <directory>

-p §ßi hái chÊp nhËn c¸c th môc bÞ xo¸.

-s Kh«ng hiÖn th«ng b¸o.

VÝ dô: xo¸ 1 th môc rçng:

$rmdir dung

19
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

C¸c thao t¸c file


File System

File system lµ file ®îc lu trªn UNIX. Mçi file system lu trong th môc trong hÖ
thèng c©y thc môc UNIX. Møc ®Ønh cña c©y th môc lµ th môc gèc (root
directory) b¾t ®Çu b»ng /. tiÕp sau lµ hÖ thèng c¸c th môc con gi¸ trÞ dµi nhÊt cã
thÓ cña mét th môc lµ 1,024 ký tù.

Th«ng thêng Ýt quan t©m ®Õn møc thÊp cña mét file lu trªn hÖ thèng UNIX nhng
®Ó hiÓu kü ta cÇn quan t©m ®Õn hai kh¸i niÖm inodes vµ superblock. Mét khi
®· hiÓu nã sÏ gióp b¹n thuËn lîi trong viÖc qu¶n trÞ hÖ thèng file.
inodes
Inode duy tr× th«ng tin vÒ mçi file vµ phô thuéc vµo kiÓu file, Inode cã thÓ cã
chøa h¬n 40 phÇn th«ng tin. Tuy nhiªn hÇu nh chØ cã t¸c dông ®èi víi kernel vµ
kh«ng liªn quan ®Õn ngêi sö dông. PhÇn liªn quan chñ yÕu ®Õn ngêi sö dông lµ:

mode: §¸nh dÊu quyÒn truy nhËp vµ kiÓu file.

link count: Sè liªn kÕt cã chøa inode nµy.

user ID : ID cña ngêi chñ së h÷u file.

group ID: ID Group cña file.

size Number: KÝch thøc file.

access time: Thêi ®iÎm truy nhËp gÇn nhÊt.

mod time: Thêi ®iÓm söa ®æi gÇn nhÊt.

inode time: Thêi ®iÓm mµ cÊu tróc inode thay ®æi gÇn nhÊt.

block list: Danh s¸ch sè block ®Üa mµ cã chøa segment ®Çu cña file.
Superblocks

Lµ th«ng tin ®Æc biÖt quan träng lu trªn dÜa. Nã cã chøa th«ng tin ®Þnh h×nh
cña ®Üa (sè head, cylinders ...), phÇn ®Çu cña danh s¸ch inode, vµ danh s¸ch
block tù do. Bëi v× th«ng tin nµy lµ quan träng cho nªn hÖ thèng tù ®éng gi÷a mét
b¶n sao trªn ®Üa tr¸nh viÖc rñi ro. Nã chØ liªn quan ®Õn khi mµ file system bÞ

20
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

háng nÆng.

C¸c kiÓu File

Cã 8 kiÓu file lµ: Normal Files, Directories, Hard Links, Symbolic links, Sockets,
Named Pipes, Character Devices, Block Devices.

Normal Files: Lµ lo¹i file sö dông th«ng thwngf nhÊt, chóng cã thÓ lµ text hoÆc
binary file tuy nhiªn cÊu tróc bªn trong kh«ng liªn quan ®Õn quan ®iÓm qu¶n trÞ
hÖ thèng. §Æc tÝnh cña file ®îc x¸c ®Þnh bëi inode trong file system mµ m« t¶
nã. LÖnh ls -l chØ ra Normal Files nh sau:

-rw------- 1 sshah admin 42 May 12 13:09 hello

Directories: Lµ lo¹i files ®Æc biÖt mµ cã chøa c¸c file kh¸c. ChØ cã mét ¸nh x¹ tõ
inode tíi disk blocks, cã thÓ cã nhiÒu ¸nh x¹ tíi mét tõ mét môc cña th môc tíi
inode. Khi dïng lÖnh ls –l mét Directorie hiÖn nh sau:

drwx------ 2 sshah admin 512 May 12 13:08 public_html

Hard Links: Hard link lµ mét directory entry ngo¹i trõ viÖc thay v× trá tíi file duy
nhÊt nã trë tíi file ®· tån t¹i. §iÒu nµy t¹o ra cã hai file gièng hÖt nhau khi liÖt kª
danh s¸ch file. dïng lÖnh ls -l:

-rw------- 1 sshah admin 42 May 12 13:04 hello

sau khi thùc hiÖn Hard link dïng lÖnh ls –l sÏ hiÓn thÞ nh sau:

-rw------- 2 sshah admin 42 May 12 13:04 goodbye

-rw------- 2 sshah admin 42 May 12 13:04 hello

Symbolic Links: Symbolic link kh¸c víi hard link lµ nã kh«ng trá tíi mét inode kh¸c
nhng trá tíi mét filename kh¸c. §iÒu nµy cho phÐp symbolic links thùc hiÖn liªn
kÕt c¸c file systems mét c¸ch thuËn lîi sö dông lÖnh ln -s ta thÊy file www hiÖn
nh sau:

drwx------ 2 sshah admin 512 May 12 13:08 public_html

lrwx------ 1 sshah admin 11 May 12 13:08 www -> public_html

Sockets: Sockets dïng cho UNIX liªn kÕt m¹ng víi m¸y kh¸c. §iÒu nµy ®îc sö dông

21
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

nhê network ports. Dïng lÖnh ls -l socket file hiÖn nh sau:

srwxrwxrwx 1 root admin 0 May 10 14:38 X0

Named Pipes: Gièng nh socket named pipe cho phÐp ch¬ng tr×nh liªn l¹c víi nhau
qua file system. B¹n cã thÓ sö dông lÖnh mknod ®Ó t¹o named Pipe. Dïng lÖnh ls
-l named pipe hiÖn nh sau:

prw------- 1 sshah admin 0 May 12 22:02 mypipe

Character Devices: Lµ kiÓu file ®Æc biÖt dïng ®Ó liªn l¹c víi c¸c system Device
driver. Dïng lÖnh ls -l character device hiÖn nh sau:

crw-rw-rw- 1 root wheel 21, 4 May 12 13:40 ptyp4

Block Devices: Block devices hÇu nh chia sÎ c¸c ®Æc tÝnh víi c¸c character
devices trong th môc /dev, ®îc sö dông ®Ó liªn l¹c víi c¸c device drivers. §iÓm
kh¸c cña block devices lµ kh¶ n¨ng truyÒn mét khèi lîng lín d÷ liÖu t¹i mét thêi
®iÓm. Dïng lÖnh ls –l hiÖn nh sau:

brw------- 2 root staff 16, 2 Jul 29 1992 fd0c

UNIX tæ chøc hÖ thèng tËp tin bao gåm chØ mét th môc gèc (/) mµ tõ ®ã c¸c th
môc con cña nã ®îc g¾n vµo mét c¸ch trùc tiÕp hay gi¸n tiÕp. Cã mét vµi th môc
con chuÈn /bin, /usr, /etc, v.v... Mçi th môc nµy l¹i chøa c¸c tËp tin hay th môc con.

Ta cã thÓ sö dông ®êng dÉn ®Çy ®ñ ®Ó x¸c ®Þnh mét tËp tin, vÝ dô:
/usr/NVA/chuong1. B¹n còng cã thÓ sö dông chØ tªn tËp tin nÕu tËp tin ®îc chøa
trong th môc hiÖn hµnh. Thêng khi login, th môc hiÖn hµnh sÏ ®îc ®Æt ®Õn lµ
th môc "home". §©y lµ th môc ®îc thiÕt lËp bëi ngêi qu¶n trÞ hÖ thèng dµnh cho
ngêi sö dông.

Tªn tËp tin trong UNIX cã thÓ dµi 256 ký tù, ngo¹i trõ c¸c ký tù ®Æc biÖt sau: ! " '
; / $ < > ( ) [ ]. { }. Ngoµi ra ta còng cã thÓ sö dông c¸c ký tù sau:

C¸c ký hiÖu ®¹i diÖn:

DÊu (*) ®¹i diÖn cho mét, nhiÒu hoÆc kh«ng ký tù nµo.

DÊu (?) ®¹i diÖn cho mét ký tù ®¬n

22
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

[...] ®¹i diÖn cho mét d·y ký tù cã thø tù trong b¶ng Alphabet. VÝ dô: liÖt kª tÊt c¶
c¸c th môc b¾tt ®Çu b»ng ch÷ c, d, e: lc [cde]*

LÖnh file: NhËn biÕt d¹ng file. Th«ng thêng lÖnh file ph©n tÝch néi dung cña 1
file vµ hiÓn thÞ tÝnh chÊt cña th«ng tin chøa trong file:

VÝ dô: $ file /etc/passwd => /etc/hosts: ascii text

LÖnh cat: Xem néi dung 1 tËp tin vµ nèi kÕt c¸c tËp tin cat [option] [files]

LÖnh more, pg: Dïng lÖnh more hoÆc pg ®Ó hiÖn néi dung file trªn tõng trang
mµn h×nh:

VÝ dô: more thu

LÖnh mv: §æi tªn tËp tin.

mv <option> <old><new>

-i NÕu file ®· cã th× lÖnh sÏ hái cã ghi ®Ì lªn file hay kh«ng.

-f Thùc hiÖn lÖnh mµ kh«ng hái g×.

VÝ dô: Thay ®æi tªn cña tËp tin ë th môc hiÖn hµnh:

$mv a.out test

LÖnh ln: Sö dông lÖnh ln ®Ó g¸n thªm 1 tªn míi cho 1 tËp tin

Có ph¸p: ln [-s] <tªn> <file, directory>

ln Kh«ng tham sè t¹o hard link.

ln -s T¹o symbolic link.

LÖnh rm: Xo¸ tËp tin rm tËp tin.

rm <option> <files>

-f Xo¸ c¸c tËp tin mµ kh«ng hái, thËm chÝ chñ quyÒn ghi lµ kh«ng cho phÐp

-r Cho phÐp xo¸ c¶ th môc bao gåm c¶ file vµ th môc.

-i: Tríc khi xo¸ tËp tin sÏ hái x¸c nhËn viÖc xo¸ tËp tin

VÝ dô: Xo¸ tËp tin thu:

23
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

$rm thu

LÖnh cp: Sao chÐp tËp tin.

cp <option> <sou> <des>

-i NÕu file trªn ®Ých ®· cã th× sÏ ®îc hái cã ghi ®Ì hay kh«ng

-r Copy c¶ th môc

VÝ dô: cp /etc/passwd /usr/dung/passwdold

LÖnh find: T×m kiÕm 1 tËp tin hoÆc mét sè tËp tin tho¶ m·n ®iÒu kiÖn nµo ®ã

find <path> <expression>

-atime <n> §óng nÕu file bÞ truy nhËp n ngµy tríc ®©y.

-mtime <n> §óng nÕu file bÞ thay ®æi n ngµy tríc ®©y.

-user <un> §óng nÕu chñ cña files lµ un. NÕu gi¸ trÞ lµ sè nã sÏ so s¸nh víi
userID.

-group <gn> §óng nÕu files thuéc th¸nh viªn cña nhãm gn. NÕu gn lµ sè th× nã sÏ
so s¸nh

víi groupID.

-perm <on> T×m files cã quyÒn truy nhËp files ®óng víi gi¸ trÞ on.

-links <n> T×m files cã n links.

-type <x> T×m file cã kiÓu x.

-newer <fn> T×m file bÞ thay ®æi gÇn h¬n so víi fn.

-local ChØ t×m t¹i local.

-size <n> [c] T×m file cã kÝch thíc n blocks (c chØ ra character –byte)

-print HiÖn ®Çy ®ñ ®êng dÉn cña files.

-depth Lu«n ®óng (cho phÐp t×m tÊt c¶ c¸c files trªn directory).

-name <pt> T×m files tho¶ m·n mÉu t×m pt.

24
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

VÝ dô: T×m tËp tin thu:

$find . -name thu -print

/usr/tam/thu

LÖnh grep: T×m kiÕm chuçi v¨n b¶n bªn trong tËp tin

grep <option> <Chuçi cÇn t×m> <Files>

Sö dông lÖnh grep ®Ó t×m kiÕm mét chuçi v¨n b¶n bªn trong c¸c tËp tin ®îc chØ
®Þnh. NÕu chuçi v¨n b¶n dµi h¬n 1 ký tù th× ph¶i ®Ó trong hai dÊu nh¸y.

-c In ra tæng sè dßng cã chøa mÉu cÇn t×m.

-h Bá tªn file kh«ng hiÖn lªn t¹i dßng cã chøa mÉu t×m thÊy.

-i Bá qua ph©n biÖt ch÷ ho¸ vµ ch÷ thêng.

-n HiÖn lªn dßng chøa mÉu t×m thÊy vµ tríc ®ã lµ sè cña dßng trong file.

-v In tÊt c¶ c¸c dßng cã chøa mÉu t×m kiÕm.

DÊu * ®¹i diÖn cho mét hoÆc bÊt kú ký tù nµo.

[character ] §¹i diÖn bëi mét m¶ng c¸c ký tù.

VÝ dô: T×m chuçi ký tù "mail" trong tËp tin thu: $grep ‘ngan hang’ thu

LÖnh tail: HiÖn c¸c dßng cuèi cña files

tail [-f] <file>

-f HiÖn 10 dßng cuèi vµ mçi dßng ®îc thªm vµo tõ khi gäi ch¹y lÖnh tail cho
®Õn khi

kÕt thóc nã.

LÖnh compress: Thùc hiÖn viÖc nÐn d÷ liÖu. File t¹o ra tù ®éng cã ®u«i .Z

compress [ -cfv ] file(s)

-c Writes to stdout instead of changing the file.

-f Cho phÐp nÐn c¶ file ®· ®îc nÐn.

25
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

-v HiÓn thÞ phÇn tr¨m gi¶m mçi lÇn nÐn.

LÖnh uncompress: Thùc hiÖn viÖc cëi nÐn file d÷ liÖu.

uncompress [ -cv ] [ file(s) ]

6. In Ên

LÖnh lp: Thùc hiÖn viÖc in file m¸y in.

lp <option> <files>

-c Khi lÖnh ®îc gäi lËp tøc t¹o b¶n sao cña file vµ thùc hiÖn in trªn b¶n
sao nµy.

-d <des> §Ých cÇn in tíi.

-n <num> Sè b¶n in.

-o nobaner Kh«ng in phÇn trang tiªu ®Ò ®Çu tiªn.

cpi=<n> Sè character ®îc in trªn 1 inch (10/12 ...)

-q <pri> Møc ®é u tiªn in (0 cao nhÊt ->39 thÊp nhÊt>

VÝ dô: $lp -d epson thu.txt

LÖnh lpstat: HiÖn tr¹ng th¸i hµng chê in cña m¸y in

lpstat <option>

-a HiÖn danh s¸ch c¸c printer.

-d HiÖn m¸y in ngÇm ®Þnh.

-o <pr>[-l] HiÖn tr¹ng th¸i yªu cÇu ®Çu ra cña m¸y in pr. NÕu cã -l hiÖn chi
tiÕt tr¹ng th¸i.

-p <pr> HiÖn tr¹ng th¸i m¸y in.

-t HiÖn tÊt c¶ th«ng tin vÒ tr¹ng th¸i.

-v <pr> HiÖn tªn m¸y in vµ tªn ®êng dÉn tíi thiÕt bÞ t¬ng øng.

26
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

LÖnh cancel: Huû bá viÖc In Ên

cancel <request id> <printer>

7. Th tÝn ®iÖn tö

Trong Unix hç trî ch¬ng tr×nh mail vµ mailx cho phÐp ngêi sö dông thùc hiÖn
viÖc göi vµ nh©n mail theo chuÈn SMTP

LÖnh mail:

Th ®iÖn tö cung cÊp c¸c kh¶ n¨ng c¬ b¶n ®Ó göi vµ nhËn th«ng b¸o. Mail sÏ hiÓn
thÞ th«ng b¸o theo thø tù vµo tríc ra sau.Sau khi hiÓn thÞ mçi th«ng b¸o mail sÏ
hiÖn lªn dÊu ? ®Ó chê lÖnh cña ngêi sö dông.

Gåm mét sè lÖnh sau:

+ HiÖn message tiÕp theo

- HiÖn mesage tríc ®ã

d Xo¸ message hiÖn thêi.

h HiÖn header cña message.

m <user> Göi message tíi user.

p HiÖn l¹i néi dung message.

s <file> Ghi message ra tËp tin hoÆc mbox

w<file> Ghi message ra file nhng kh«ng ghi phÇn header.

q Tho¸t khái mail

x Tho¸t khái mail mµ kh«ng thay ®æi th«ng b¸o

! lÖnh Thùc hiÖn lÖnh Unix

Göi th : §a vµo lÖnh mail víi ®Þa chØ cña ngêi sö dông.

VÝ dô: $mail dung@sysdomain

<th«ng b¸o>

27
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

ctrl-d

NhËn th: Khi login vµo hÖ thèng nÕu cã th hÖ thèng sÏ th«ng b¸o " You have
mail" khi ®ã cã thÓ ®¸nh $mail ®Ó thùc hiÖn c¸c thao t¸c trªn message.

LÖnh mailx

Mailx bao gåm c¸c lÖnh ®Ó chuyÓn vµ nhËn th.: mailx <option> <user>

option -e so¹n message

-v so¹n message b»ng lÖnh vi

-r <file> ®äc file vµo message

!<lÖnh> Cho phÐp thùc hiÖn c¸c lÖnh shell.

= HiÖn sè cña message

delete d Xo¸ message hiÖn thêi

dp Xo¸ message vµ chuyÓn ®Õn message kÕ tiÕp

edit e So¹n th¶o message.

exit Tho¸t khái mailx vµ kh«ng lu l¹i thay ®æi.

headers h HiÖn header cña message chØ ®Þnh.

mail <user> m Göi message tíi ngêi chØ ®Þnh

next n HiÖn message tiÕp theo

print p HiÖn message lªn mµn h×nh.

quit q Tho¸t khái mailx vµ hoµn thµnh c¸c thao t¸c ®· thùc
hiÖn.

reply r Tr¶ lêi mail tíi ngêi göi vµ c¸c ngêi nhËn.

Reply R ChØ tr¶ lêi mail tíi ngêi göi.

save <file> s Ghi message tíi file chØ ®Þnh.

Save S Ghi message sau khi göi nã.

28
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

undelete u Bá xo¸ bëi lÖnh delete.

visual v Dïng lÖnh vi ®Ó so¹n th¶o message.

write <file> w Ghi message mµ kh«ng ghi header.

8. Qu¶n lý tiÕn tr×nh

HÖ thèng Unix dïng c¸c tiÕn tr×nh (process) nh lµ ph¬ng tiÖn ®Ó qu¶n lý c¸c ch-
¬ng tr×nh ®ang thùc hiÖn. Mçi lÖnh mµ ngêi dïng gäi thùc hiÖn ®Òu gäi lµ mét
tiÕn tr×nh. Mçi tiÕn tr×nh ®ang ho¹t ®éng ®Òu bao hµm mét sè th«ng tin liªn
quan ®Æc biÖt cã mét gi¸ trÞ ID ®Ó nhËn d¹ng. Ngoµi ra cßn c¸c th«ng tin kh¸c
nh TTY, thêi gian, lÖnh ...

TiÕn tr×nh t¹o ra mét tiÕn tr×nh kh¸c ®îc gäi lµ tiÕn tr×nh cha. C¸c tiÕn tr×nh con
nhËn biÕt tiÕn tr×nh cha cña nã qua ID cña qu¸ tr×nh cha.

LÖnh kill: Hñy bá mét qu¸ tr×nh ®ang ho¹t ®éng.

kill <signal> PID

-0 KÕt thóc tÊt c¶ c¸c tiÕn tr×nh trong process group.

-9 KÕt thóc tiÕn tr×nh kh«ng ®iÒu kiÖn.(Unconditional kill signal)

-15 KÕt thóc tiÕn tr×nh- ngÇm ®Þnh (software termination signal)

LÖnh ps: HiÖn c¸c tiÕn tr×nh ®ang ho¹t ®éng vµ tr¹ng th¸i cña c¸c tiÕn tr×nh bao
gåm c¸c trêng thÓ hiÖn c¸c th«ng tin sau:

ps <option>

-e HiÖn th«ng tin vÒ tÊt c¶ c¸c process ®ang ho¹t ®éng.

-d In th«ng tin vÒ tÊt c¶ c¸c tiÕn tr×nh trõ phÇn leader

-a In tÊt c¶ th«ng tin vÒ process trõ c¸c process kh«ng t¬ng øng víi terminal.

-f In ®Çy ®ñ tÊt c¶ c¸c th«ng tin.

LÖnh sleep: Ngng ho¹t ®éng cña tiÕn tr×nh trong mét kho¶ng thêi gian.

sleep <time>

29
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Thêi gian ®îc tÝnh b»ng gi©y 1-65536.

LÖnh wait: Cho phÐp chê c¸c tiÕn tr×nh ch¹y chÕ ®é background kÕt thóc. Th-
êng dïng trong c¸c script ®Ó ®ång bé t¬ng t¸c.

VÝ dô:

cmd1 > file1&

cmd2>file2&

wait

sort file1 file2

9. C¸c lÖnh liªn quan b¶o mËt vµ quyÒn h¹n

a) Kh¸i niÖm:

Khi ngêi sö dông ®îc t¹o th× c¸c th«ng tin sau yªu cÇu ®îc ®îc ®a vµo:

Tªn ngêi sö dông

MËt khÈu

Sè nhËn d¹ng (uid: user identify number)

Sè cña nhãm (gid: group identify number)

Chó thÝch

Th môc x©m nhËp (home directory)

Tªn ch¬ng tr×nh cho ch¹y lóc b¾t ®Çu lµm viÖc

C¸c th«ng tin nµy ®îc chøa trong file /etc/passwd

Nhãm ngêi sö dông: 1 nhãm ngêi sö dông lµ tËp hîp cña 1 sè ngêi sö dông cã thÓ
dïng chung c¸c file cña nhau, ®îc m« t¶ b»ng nh÷ng th«ng tin sau:

Tªn cña nhãm

MËt m· (cã thÓ cã hoÆc kh«ng cã)

Sè cña nhãm (gid)

30
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Danh s¸ch nh÷ng ngêi sö dông thuéc nhãm

C¸c th«ng tin nµy ®îc lu trong tËp tin /etc/group

Trong mét file ®îc t¹o trong ®ã cã c¸c th«ng tin sau:

-rwxr-xr-- 2 sshah admin 42 May 12 13:04 hello

Nhãm ®Çu -rwxr-xr—

DÊu g¹ch ®Çu tiªn thÓ hiÖn lo¹i file.

Nhãm tiÕp theo gåm 3 nhãm nhá rwxrwxrwx nhãm ®Çu thÓ hiÖn quyÒn h¹n cña
ngêi chñ së h÷u tËp tin, nhãm 2 thÓ hiÖn quyÒn h¹n cña nhãm cã quyÒn truy
nhËp, nhãm 3 lµ quyÒn h¹n cña c¸c ngêi sö dông kh¸c. Mçi nhãm gåm 3 gi¸ trÞ r
(®äc), w (ghi, thay ®æi), x (thùc hiÖn).

Permission Owner Group Other


Read (r) 4 4 4
Write (w) 2 2 2
Execute (x) 1 1 1
Total 7 7 7

TiÕp theo chØ ra sè liªn kÕt trªn file (2)

Ngêi chñ së h÷u cña file (sshah)

Nhãm ngêi sö dông cã quyÒn trªn file (admin)

KÝch thíc file (42)

Thêi gian (May 12 13:04)

Tªn file (Hello)

b) C¸c lÖnh

LÖnh chgrp: Thay ®æi nhãm truy xuÊt cña tËp tin. ChØ cã superuser hay ngêi së
h÷u míi ®îc quyÒn thay ®æi quyÒn së h÷u file.

chgrp <group> <files>

31
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

VÝ dô: $ls -a test

-rwx--x--x 1 bin bin 13023 Jun 21 94 test

$chgrp data test

$ls -a test

-rwx--x--x 1 bin data 13023 Jun 21 94 test

LÖnh chown: Thay ®æi ngêi së h÷u tËp tin. ChØ cã superuser hay ngêi së h÷u míi
®îc quyÒn thay ®æi.

chown <owner> <files>.

VÝ dô: $ls -a test

-rwx--x--x 1 bin data 13023 Jun 21 94 test

$chown dung test

$ls -a test

-rwx--x--x 1 dung data 13023 Jun 21 94 test

LÖnh umask: §Æt quyÒn truy xuÊt ngÇm ®Þnh ®èi víi 1 file hay th môc t¹o. Sau
khi ®Æt umask tÊt c¶ c¸c tËp tin vµ th môc t¹o sÏ nhËn quyÒn truy nhËp. (gi¸ trÞ
ngÇm ®Þnh lµ 022)

umask <mask>
0 read and write (and execute for directories)
1 read and write (not execute for directories)
2 read (and execute for directories)
3 read
4 write (and execute for directories)
5 write
6 execute
7 no permissions

VÝ dô:

$umask 177

32
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

$cat test

...

^d

$ls -l test

-rw------ 1 dung adm 1 Mar 11 10:11 test

LÖnh chmod: Thay ®æi quyÒn h¹n truy nhËp tËp tin

§Ó thùc hiÖn viÖc thay ®æi quyÒn h¹n trªn tËp tin th× ®ßi hái ngêi thùc hiÖn
lÖnh ph¶i lµ ngêi së h÷u hay superuser (root).

chmod <mode> <files>

VÝ dô:

$ls -l test

-rw------ 1 dung adm 1 Mar 11 10:11 test

$chmode 754 test

$ls -l test

-rwxr-xr-- .....

C¸c tham sè dïng víi lÖnh chmode <option> <files>

u: ngêi sö dông (user)

g: nhãm (group)

o: chung (other)

a: tÊt c¶ (all)

To¸n tö:

+: thªm quyÒn

-: bít quyÒn

=: g¸n gi¸ trÞ kh¸c

33
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

QuyÒn:

r: ®äc (reading)

w: ghi (writting)

x: thùc hiÖn (execution)

VÝ dô: $ls -l test

-rwxr-xr-- .....

$chmode g +w test

$ls -l test

-rwxrwxr-- ...... test

10. Lu tr÷ vµ håi phôc d÷ liÖu

C¸c tËp tin cña nh÷ng hÖ thèng th«ng tin ngµy cµng lín, sù cÇn thiÕt vµ møc ®é
quan träng cña c¸c tËp tin nµy v« cïng quan träng.

C¸c thiÕt bÞ phÇn cøng kh«ng thÓ ®¶m b¶o r»ng kh«ng bao giê cã sù cè nh háng
®Üa, háng thiÕt bÞ lu d÷ liÖu ... C¸c hÖ thèng phÇn mÒm còng kh«ng ph¶i lµ
ch¹y hoµn toµn kh«ng x¶y ra sù cè g×.

D÷ liÖu cña c¸c hÖ thèng th«ng tin xö lý nghiÖp vô tøc thêi ®ßi hái khi cã bÊt cø
sù cè nµo xuÊt hiÖn lµm háng d÷ liÖu cña hÖ thèng, th× ngay sau ®ã d÷ liÖu ph¶i
®îc kh«i phôc ngay.

Tïy theo c¸c nhµ cung cÊp phÇn mÒm vµ phÇn cøng kh¸c nhau mµ hÖ thèng lu
tr÷ cã nh÷ng chøc n¨ng vµ tiÖn Ých kh¸c nhau nhng ®Òu cã chung mét môc ®Ých
lµ lu d÷ liÖu.

Th«ng thêng nh÷ng hÖ ®iÒu hµnh lín hoÆc nhá ®Òu hç trî c¸c tiÖn Ých gióp cho
viÖc sao lu vµ håi phôc d÷ liÖu nh»m gi¶m tèi thiÓu c¸c ¶nh hëng ®Õn hÖ
thèngd÷ liÖu.

Trong c¸c lo¹i hÖ ®iÒu hµnh Unix kh¸c nhau cã thÓ cã c¸c c«ng cô vµ c¸c tiÖn
Ých gióp cho viÖc thùc hiÖn lu tr÷ tuy nhiªn c¸c lÖnh hÇu hÕt ®îc hç trî bëi c¸c

34
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

lo¹i hÖ ®iÒu hµnh Unix.

LÖnh tar: Lu tr÷ hoÆc håi phôc files tõ c¸c thiÕt bÞ lu tr÷.

tar <options> <tarfile name> <filenames to backup or restore>

Mét sè c¸c option hay dïng.

option =[key]<sub>

Key c T¹o lu tr÷ míi vµ thùc hiÖn b¾t ®Çu ghi tõ ®Çu.

r File lu tr÷ ®îc ghi vµo vih trÝ cuèi cña thiÕt bÞ lu tr÷.

t HiÖn danh s¸ch c¸c file lu tr÷.

u CËp nhËp thªm nÕu files cha cã, hoÆc ®· thay ®æi so víi lÇn sao
chÐp tríc.

x LÊy th«ng tin tõ thiÕt bÞ lu tr÷.

<sub> e Cho phÐp ghi trªn nhiÒu volume.

f Sö dông c¸c ®èi sè thay cho c¸c gi¸ trÞ ngÇm ®Þnh.

n ChØ thiÕt bÞ lu tr÷ kh«ng phaie lµ tape

v HiÓn thÞ tªn file sao lu hoÆc håi phôc

VÝ dô: tar cvf /dev/rmt/0hc /usr/local/datafiles

tar tvf /dev/rmt/0hc > tarlist.txt

cd /usr/contrib

tar xvf /dev/rmt/0hc

LÖnh cpio: Lu tr÷ vµ håi phôc d÷ liÖu ra c¸c thiÕt bÞ lu tr÷ chuÈn

cpio -o [acv] Ghi d÷ liÖu ra ®Çu ra thiÕt bÞ lu tr÷

-i [cdmnv] §äc d÷ liÖu tõ thiÕt bÞ lu tr÷.

c Ghi thªm phÇn header phßng trêng hîp dïng trªn c¸c m¸y kh¸c.

35
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

d Th môc sÏ ®îc t¹o nÕu cÇn.

m D÷ l¹i thêi gian thay ®æi tríc ®©y.

a Thay ®æi thêi gian truy nhËp.

u Sao chÐp kh«ng ®iÒu kiÖn.

v HiÖn danh s¸ch tªn file.

VÝ dô: ls | cpio -oc > /dev/rst0

cpio -icd < /dev/rst0

LÖnh dd: Sao lu vµ håi phôc d÷ liÖu theo ®óng tr¹ng th¸i trªn hÖ thèng file (block
copy)

dd [if= ][of= ]

if= §Çu vµo chuÈn.

of= §Çu ra chuÈn.

VÝ dô:

dd if=/dev/diskette0 of=/mnt/abc.xx

dd if=/mnt/abc.xx of=/dev/diskette0

11. C¸c thao t¸c trªn m¹ng

LÖnh ping: KiÓm tra sù tham gia cña c¸c nót trªn m¹ng

LÖnh netstat: KiÓm tra tr¹ng th¸i cña m¹ng hiÖn thêi cña hÖ thèng local. Nã
thÓ hiÖn c¸c th«ng tin vÒ giao diÖn m¹ng, th«ng tin routing table, th«ng tin vÒ
Protocol.

netstat <option>

-a HiÓn thÞ th«ng tin tÊt c¶ c¸c interface

-c TiÕp tôc hiÓn thÞ vµ tù update sau mét vµi gi©y.

-i ChØ hiÓn thÞ th«ng tin vÒ interface

36
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

-n HiÓn thÞ ®Þa chØ thay cho tªn.

-r HiÓn thÞ th«ng tin vÒ kernel routing table

-t ChØ hiÓn thÞ th«ng tin vÒ TCP socket

-u ChØ hiÓn thÞ th«ng tin vÒ UDP socket.

-x HiÓn thÞ th«ng tin vÒ socket

VÝ dô:

# netstat –r

Routing Table:

Destination Gateway Flags Ref Use Interface

—————————— —————————— —— —— ——— ————

localhost localhost UH 0 109761 lo0

rmtnet ws2 UG 0 20086

rmtppp ws2 UG 0 1096

subnet1 ws1 U 3 1955 le0

224.0.0.0 ws1 U 3 0 le0

default gateway UG 0 16100

LÖnh telnet: Thùc hiÖn kÕt nèi víi mét hÖ thèng cho phÐp trë thµnh terminal cña
hÖ thèng mµ nã kÕt nèi tíi.

telnet <dest>

LÖnh ftp: Thùc hiÖn dÞch vô truyÒn nhËn file.

ftp <dest>

Muèn debuge lÖnh ftp dïng thªm option -d (vÝ dô: ftp -d ftp.ha.com)

Mét sè lÖnh trong ftp:

ascii ChuyÓn sang ASCII transfer mode.

37
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

binary ChuyÓn sang binary transfer mode.

cd Thay ®æi th môc trªn ftp server.

close KÕt thóc kÕt nèi.

del Xo¸ file trªn ftp server

pwd HiÖn th môc hiÖn thêi trªn ftp server

get LÊy file tõ ftp server

help Trî gióp

lcd Thay ®æi th môc trªn client

mget LÊy mét sè file trªn ftp server

mput TruyÒn mét vµi file lªn ftp server

open Më kÕt nèi víi ftp a server

put TruyÒn file tíi ftp server

quit Tho¸t khái FTP.

LÖnh rlogin: Thùc hiÖn login tíi m¸y ë xa, cho phÐp truy nhËp tíi m¸y tÝnh trªn
m¹ng gièng nh lÖnh telnet.

rlogin <hosts name>

Trong trêng hîp nµy user ID trªn remote host ph¶i gièng íi user ID trªn local host.
vÝ dô nh nÕu testuser login vµo box1, rlogin dïng testuser login vµo box2.

Tuy nhiªn nÕu mu«n slogin vµo user ID kh¸c dïng option sau:

rlogin <hosts name> -l <user>

LÖnh rcp: Sao chÐp file ë xa

Tríc khi sö dông lÖnh rcp ngêi sö dông ®· ph¶i ®îc s½n sµng trªn remote machine.
Bëi v× rcp kh«ng sö dông authentication (kh«ng gièng nh rlogin).

rcp <option> <sour> <dest>

-r ChØ sö dông trong trêng hîp copy th môc.

38
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

<sour> <dest> ®îc viÕt theo quy ®Þnh

hostname:filepath
user@hostname:filepath
user@hostname.domain:filepath

VÝ dô: rcp ha@box1:/export/home/ha/abc.txt box2:/export/home/cc.m

IV. LËp tr×nh Shell

1. C¸c ®Æc tÝnh c¬ b¶n.

LÖnh ®¬n gi¶n

Lµ lÖnh ®îc gäi thùc hiÖn cã tÝnh chÊt ®¬n nh d¹ng sau:

command <option> <arg>

NhiÒu lÖnh trªn mét dßng

Th«ng thêng shell th«ng dÞch tõ ®Çu tiªn nh lµ lÖnh cßn c¸c phÇn sau trë thµnh
c¸c ®èi sè cña lÖnh. Cã 3 ký tù ®Æc biÖt mµ khi shell th«ng dÞch mµ gÆp ph¶i sÏ
hiÓu sau ®ã lµ cã mét lÖnh tiÕp theo cÇn thùc hiÖn ®ã lµ (;), (&), (|).

; §îi lÖnh tríc hoµn thµnh míi thùc hiÖn ®Õn lÖnh tiÕp sau (t¬ng ®¬ng víi
thùc

hiÖn c¸c lÖnh riªng rÏ).

VÝ dô: $ who -H; df -v; ps -e

& LÖnh sau kh«ng cÇn ph¶i ®îi lÖnh tríc kÕt thóc thùc hiÖn.

VÝ dô: $who -H & df -v & ps -e

| SÏ lÊy ®Çu ra cña lÖnh tríc thµnh ®Çu vµo cña lÖnh sau:

§Þnh híng vµo ra

Khi shell th«ng dÞch lÖnh mµ nh×n thÊy c¸c ký hiÖu ®æi híng vµo ra (<), (>). C¸c
®Þnh híng vµo ra nµy ®îc göi tíi subshell ®Ó ®iÒu khiÓn viÖc thùc hiÖn lÖnh.

39
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Dßng lÖnh dµi

Trong trêng hîp dßng lÖnh dµi muèn chia thµnh nhiÒu dßng th× kÕt thóc dßng
ph¶i ®Æt ký tù (\). Khi gÆp ký tù nµy shell kh«ng coi dßng míi lµ kÕt thóc cña
®Çu vµo.

VÝ dô: $ echo Now is the time for all good men \_

to come to the aid of the party.

BiÕn trong shell

Khi shell gÆp ký tù $ th× nã hiÓu tõ sau ®ã lµ tªn biÕn. Shell sÏ t×m biÕn ®· ®îc
®Þnh nghÜa vµ lÊy gi¸ trÞ cña nã. NÕu biÕn cha ®Þnh nghÜa th× mét null string
sÏ ®îc tr¶ l¹i.

§Ó ®Æt gi¸ trÞ cho biÕn chØ cÇn g¸n <tªn biÕn>=gi¸ trÞ

VÝ dô:

$ dir=ls

$ $dir f*

file1

file1a

Cã thÓ thùc hiÖn g¸n nhiÒu h¬n mét biÕn trªn mét dßng lÖnh. BiÕn sÏ ®îc g¸n tõ
ph¶i sang tr¸i.

VÝ dô: X=$Y Y=y

echo $X

NÕu muèn lÊy ®Çu ra hoÆc kÕt qu¶ thùc hiÖn mét lÖnh lµm ®èi sè cña mét
lÖnh kh¸c th× cã thÓ dïng dÊu (`) ®Ó bao lÊy lÖnh cÇn thùc hiÖn.

{ variable:-value} G¸n gi¸ trÞ ngÇm ®Þnh cho biÕn.

{ variable:+value} NÕu biÕn kh¸c null th× sÏ lÊy value.

40
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

${variable:?message} NÕu biÕn kh«ng ®Æt gi¸ trÞ th× message sÏ ®îc in ra
®Çu ra lçi

chuÈn.

VÝ dô:

$ echo Hello $UNA

Hello

$ echo Hello ${UNA:-there}

NÕu kh«ng g¸n trÞ cho UNA th× sÏ hiÖn

Hello there

NÕu g¸n UNA=John

SÏ hiÖn

Hello John

Khi shell gäi thùc hiÖn mét lÖnh tõ ®Çu tiªn ®îc hiÓu lµ lÖnh, c¸c th«ng tin sau sÏ
®îc hiÓu lµ c¸c ®èi sè cña lÖnh. §èi sè ®Çu tiªn ®îc g¸n tíi biÕn $1, ®èi sè thø hai
sÏ ®îc g¸n tíi biÕn $2 ... $9. VÞ trÝ biÕn $0 lu«n cã chøa lÖnh.

$# Chøa sè ®èi sè ®îc göi tíi lÖnh qua vÞ trÝ cña biÕn.

$$ Chøa process ID cña process hiÖn thêi.

$? Cã chøa tr¹ng th¸i cña lÖnh cuèi cïng. Mang gi¸ trÞ 0 nÕu lÖnh thùc hiÖn
thµnh c«ng,

kh¸c kh«ng nÕu cã lçi xuÊt hiÖn.

$* Cã chøa tÊt c¶ positional argument ®îc göi tíi ch¬ng tr×nh.

VÝ dô: cã mét script file nh sau:

# restoreany

cd $WORKDIR

cpio -i $* </dev/rmt0

41
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

$ restoreany file1 file2 file3

C¸c file file1 file2 file3 sÏ ®îc restore tõ thiÕt bÞ lu tr÷

LÖnh shift: Dïng ®Ó dÞch biÕn vÞ trÝ

VÝ dô:

$1 = -r $2 = file1 $3 = file2

shift

KÕt qu¶ lµ:

$1 = file1 $2 = file2

BiÕn m«i trêng

Lµ c¸c biÕn mµ shell hoÆc bÊt kú mét ch¬ng tr×nh nµo cã thÓ lÊy vµ truy nhËp
nã. Cã mét sè biÕn m«i trêng ngÇm ®Þnh trong shell nh HOME, MAIL, PATH,
PS1, PS2 ...

2. LËp tr×nh shell

Trong Shell c¸c biÕn th«ng thêng ®îc lu díi d¹ng character ®Ó thùc hiÖn c¸c tÝnh
to¸n to¸n häc phaØ dïng lÖnh expr.

expr <integer operator integer>

C¸c to¸n tö lµ (+), (-), (*), (/).

C¸c phÐp to¸n tr¶ vÒ phÇn nguyªn.

VÝ dô:

$ expr 5 + 7 / 3

Null command ®¹i diÖn bëi dÊu (:)

§Ó lÊy d÷ liÖu trùc tiÕp tõ ngêi sö dông dïng lÖnh read

$ read var1 var2 var3

42
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Hello my friend

$echo $var1 $var2 $var3

Hello my friend

a) LÖnh ®iÒu kiÖn

LÖnh true vµ false: True lu«n tr¶ gi¸ trÞ 0, false lu«n tr¶ gi¸ trÞ 1

LÖnh test: KiÓm tra ®iÒu kiÖn xem ®óng hay sai

test condition

Testing Character Data

str1 = str2 §óng nÕu str1 gièng hÖt str2 (vÒ ®é dµi vµ ký tù)

str1 != str2 §óng nÕu str1 kh¸c str2

-n str1 §óng nÕu chiÒu dµi str1 lín h¬n 0 (is not null)

-z str1 §óng nÕu str1 lµ null (chiÒu dµi =0)

str1 §óng nÕu str1 kh¸c null

Testing Numeric Data

int1 -eq int2 §óng nÕu int1 b»ng int2

int1 -ne int2 §óng nÕu int1 kh¸c int2

int1 -gt int2 §óng nÕu int1 lín h¬n int2

int1 -ge int2 §óng nÕu int1 lín h¬n hoÆc b»ng int2

int1 -lt int2 §óng nÕu int1 nhá h¬n int2

int1 -le int2 §óng nÕu int1 nhá h¬n hoÆc b»ng int2

Testing for Files

-r filenm §óng nÕu user cã quyÒn ®äc filenm

-w filenm §óng nÕu user cã quyÒn ghi trªn filenm

-x filenm §óng nÕu user cã quyÒn thùc hiÖn filenm

43
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

-f filenm §óng nÕu filenm lµ regular file

-d filenm §óng nÕu filenm lµ th môc

-c filenm §óng nÕu filenm lµ character special file

-b filenm §óng nÕu filenm lµ block special file

-s filenm §óng nÕu kÝch thíc filenm kh¸c 0

-t fnumb §óng nÕu fnumb (1 by default) lµ terminal device

Shorthand Method of Doing Tests

Bëi v× lÖnh test lµ mét trong nh÷ng lÖnh quan träng bËc nhÊt trong shell ®Ó cho
shell gÇn víi c¸c ng«n ng÷ lËp trinhf kh¸c ngêi ta ®· thay test b»ng bao ®ãng ([]).

VÝ dô:

$ int1=4

$ [ $int1 -gt 2 ]

$ echo $?

if-then
if command_1
then
command_2
command_3
fi

NÕu command_1 Thùc hiÖn thµnh c«ng th× command_2, command_3 míi ®îc
thùc hiÖn tiÕp theo.

if-then -else
if command_1

44
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

then
command_2
command_3
else
command_4
command_5
fi

if -then-elif
if command
then
command
elif command
then
command
elif command
then
command
fi
LÖnh case
case value in
pattern1)
command
command;;
pattern2)
command
command;;
...
patternn)
command;

45
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

esac
LÖnh case chØ thùc hiÖn mét lÖnh t¹i mét thêi ®iÓm nÕu gi¸ trÞ phï hîp víi
pattern, C¸c lÖnh tiÕp sau ®ã sÏ ®îc thùc hiÖn cho ®Õn khi gÆp (;;).

b) LÖnh lÆp

LÖnh while : Thùc hiÖn khi ®iÒu kiÖn cßn ®óng


while command
do
command
...
command
done
LÖnh until Thùc hiÖn cho ®Õn chi ®iÒu kiÖn ®óng
until command
do
command
...
command
done
LÖnh for: Thùc hiÖn lÇn lît øng c¸c gi¸ trÞ trong arg

for variable in arg1 arg2 ... argn

do

command

...

command

done

LÖnh break: Cho phÐp tho¸t khái vßng lÆp.

46
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

c) Shell Functions

funcname ()
{
command
... _
command;
}

d) LÖnh trap

Trong qu¸ tr×nh thùc hiÖn c¸c shell script cã thÓ t¹o ra nhiÒu c¸c file t¹m dïng
trong qu¸ tr×nh thao t¸c d÷ liÖu. Tuy nhiªn trong qu¸ tr×nh ch¹y kh«ng tr¸nh khái
c¸c sù cè, hoÆc c¸c thao t¸c tõ phÝa ngêi sö dông nh»m ngõng thùc hiÖn tiÕn
tr×nh gi÷a chõng. §Ó cã thÓ thùc hiÖn viÖc xo¸ c¸c file t¹m nµy hoÆc thùc hiÖn
c¸c thao t¸c nµo ®ã khi tiÕn tr×nh bÞ ngõng thùc hiÖn dïng lÖnh trap.

trap command_string signals

Signal Description

0 Shell exit

1 Hangup

2 Operator Interrupt

3 Quit

9 Kill

15 Software Termination (kill signal)

VÝ dô:

trap "rm $TEMPDIR/*$$; exit" 1 2 15

e) Thùc hiÖn lÖnh ®iÒu kiÖn víi cÊu tróc AND(&&) vµ OR (||)

Th«ng thêng ®Ó thùc hiÖn c¸c lÖnh theo ®iÒu kiÖn ta cã thÓ sö dông c¸c lÖnh
trong lËp tr×nh shell ®Ó thùc hiÖn. Tuy nhiªn Shell cung cÊp tæ hîp lÖnh thùc

47
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

hiÖn ®iÒu kiÖn lµ && vµ ||.

command1&&command2

Trong tæ hîp lÖnh nµy th× lÖnh ®Çu tiªn ®îc thùc hiÖn tríc nÕu qu¸ tr×nh thùc
hiÖn kÕt thóc hoµn thµnh (tr¶ gi¸ trÞ 0) th× lÖnh tiÕp sau ®ã míi ®îc thùc hiÖn.
Tæ hîp tr¶ gi¸ trÞ ®óng (0) khi c¸c lÖnh ®Òu tr¶ gi¸ trÞ ®óng (0)

command1||command2

Trong tæ hîp lÖnh nµy th× lÖnh ®Çu ®îc thùc hiÖn tríc vµ nÕu nã kÕt thóc cã lçi
(kh¸c 0) th× lÖnh tiÕp sau ®ã míi ®îc thùc hiÖn. Tæ hîp tr¶ gi¸ trÞ sai khi tÊt c¶
c¸c lÖnh ®Òu tr¶ gi¸ trÞ sai (kh¸c 0)

Debugging Shell Programs

§Ó lÇn bíc theo c¸c lÖnh trong chêng tr×nh shell dïng lÖnh.

sh -x <shell file>

LÖnh sÏ thùc hiÖn tõng lÖnh trong file vµ hiÖn nã lªn mµn h×nh.

V. Starting Up and Shutting Down

1. Booting the System

Tríc khi b¹n cã thÓ sö dông m¸y tÝnh cña b¹n, ph¶i khëi ®éng hÖ ®iÒu hµnh. Qu¸
tr×nh khëi ®éng hÖ ®iÒu hµnh ®îc gäi lµ booting. Khi hÖ thèng ®· ®îc khëi
®éng th× c¸c device, application, vµ service trªn m¸y tÝnh ®· s½n sµng cho viÖc
sö dông.

Bëi v× UNIX lµ mét hÖ ®iÒu hµnh ®a nhiÖm vµ ®a ngêi sö dông, nªn nhiÒu
tiÕn tr×nh ®îc gäi thùc hiÖn ngay ban ®Çu. §Çu tiªn UNIX ch¹y phÇn khëi ®éng
hÖ thèng ®Ó ®Æt ®ång hå, cÊu h×nh thiÕt bÞ vµ t¹o UNIX kernel míi (nÕu cÇn
thiÕt). Sau ®ã hÖ thèng b¾t ®Çu ch¹y c¸c tiÕn tr×nh t¬ng øng víi c¸c trang th¸i
khëi ®éng riªng biÖt ®îc ph©n ra trªn hÖ thèng.

Trong hÇu hÕt c¸c hÖ ®iÒu hµnh Unix viÖc khêi ®éng hÖ thèng thêng theo c¸c
tr×nh tù sau:

48
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 X¸c ®Þnh thiÕt bÞ boot.

 N¹p kernel tõ thiÕt bÞ boot.

 T×m vµ khëi ®éng c¸c thiÕt bÞ ngo¹i vi.

 Khëi t¹o c¸c t¸c vô hÖ thèng c¬ b¶n.

 Ch¹y c¸c script mµ c¸c ch¬ng tr×nh t¹o ra ®Ó cung cÊp c¸c dÞc vô.

 B¾t ®Çu c¸c øng dông kh¸c.

Th«ng thêng hÖ thèng ch¹y ngÇm ®Þnh lµ ë tr¹ng th¸i 3. Tr¹ng th¸i nµy s½n sµng
cho nhiÒu ngêi sö dông trong m«i trêng m¹ng (Bao gåm c¶ file sharing). §iÒu nµy
cã nghÜa lµ tÊt c¶ c¸c hÖ thèng file ®îc liªn kÕt (mounted) trªn hÖ thèng c¸c tiÕn
tr×nh nÒn (daemon) ®îc b¾t ®Çu cho phÐp ngêi sö dông login, vµ qu¸ tr×nh
®iÒu khiÓn vµo ra cña m¹ng còng ®îc b¾t ®Çu.

Ta cã thÓ thùc hiÖn c¸c møc ho¹t ®éng kh¸c nhau vµ c¸c møc truy nhËp kh¸c nhau
b»ng c¸c ®Æt tr¹ng th¸i boot hoÆc b»ng c¸c thay ®æi tr¹ng th¸i trong khi hÖ thèng
®ang ch¹y. Tr¹ng th¸i 3 lµ full network/multiuser, tr¹ng th¸i 1 vµ 2 lµ single-
user/limited access.

Khi ta khëi ®éng m¸y t×nh mµ cµi hÖ ®iÒu hµnh UNIX, PhÇn khëi ®éng ban
®Çu ®îc qu¶n lý bëi mét tiÕn tr×nh gäi lµ init. Init xö lý c¸c tiÕn tr×nh trong c¸ch
thøc trªn c¬ së tr¹ng th¸i ®Þnh nghÜa trong file /etc/inittab.

TiÕn tr×nh init khiÓm tra vµ khëi ®éng c¸c tiÕn tr×nh trong file /etc/inittab. C¸c
tiÕn tr×nh ®îc coi nh sysinit processe. Sysinit processes lµ c¸c tiÕn tr×nh ®¶m b¶o
cho hÖ thèng ho¹t ®éng mét c¸ch ®ïng ®¾n, chÝnh x¸c.

VÝ dô:/etc/inittab:

cr::sysinit:/sbin/ckroot >/dev/sysmsg 2>&1

ck::sysinit:/sbin/setclk >/dev/sysmsg 2>&1

mm::sysinit:/etc/conf/bin/idmodreg >/dev/sysmsg 2>&1

ldmd::sysinit:/etc/conf/bin/idmodload >/dev/sysmsg 2>&1

49
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

ap::sysinit:/sbin/autopush f /etc/ap/chan.ap

bchk::sysinit:/sbin/bcheckrc </dev/console >/dev/sysmsg 2>&1

bu::sysinit:/etc/conf/bin/idrebuild reboot </dev/console >/dev/sysmsg 2>&1

ia::sysinit:/sbin/creatiadb </dev/console >/dev/sysmsg 2>&1

Chi tiÕt c¸c lÖnh nh sau:

 ckroot — §äc c¸c tham sè cña mount cho root file system trong file
/etc/vfstab. C¸c tham sè bao gåm c¸c kiÓu file hÖ thèng, ®iÒu nµy lµ cÇn
thiÕt t¹o root file system s½n sµng cho hÖ thèng. Ckroot còng thùc hiÖn
viÖc kiÓm tra hÖ thèng file (víi lÖnh fsck) nÕu nh nã x¸c ®Þnh ®îc lµ cã
vÊn ®Ò trong hÖ thèng file. VÝ dô nh: NÕu ta t¾t m¸y mµ kh«ng thùc
hiÖn shutdown, hÖ thèng ®a ra th«ng b¸o kiÓm tra hÖ thèng khi nã thùc
hiÖn viÖc gi¶i quyÕt c¸c sù cè mµ nã t×m thÊy.

 setclk— §Æt ®ång hå cho hÖ thèng UNIX.

 idmodreg— N¹p danh s¸ch c¸c kernel modules trong file /etc/mod_register.

 idmodload—N¹p danh s¸ch c¸c kernel modules trong file /etc/loadmods.

 autopush—CÊu h×nh mét danh s¸ch c¸c modules ®îc tù ®éng ®Èy vµo c¸c
Streams device khi c¸c device ®îc më. Danh s¸ch c¸c modules trong file
/etc/ap/chan.ap ®îc ®Èy trªn ®Ønh cña console monitor device ®Ó cung
cÊp c¸c th«ng tin theo c¸c dßng víi kiÓu quy ®Þnh.

 bcheckrc—Khëi ®éng mét vµi t¸c vô bao gåm ®Æt tªn hÖ thèng
mounting /proc (processes) vµ /dev/fd (floppy disk) devices, thùc hiÖn kiÓm
tra vµ liªn kÕt c¸c thiÕt bÞ thªm vµo cã liªn quan ®Õn floppy disks.

 idrebuild—KiÓm tra xem kernel cã ph¶i rebuilt hay kh«ng nÕu cã th× ch¹y
lÖnh idbuild ®Ó t¹o l¹i nã. Kernel cÇn ph¶i ®îc t¹o l¹i mçi khi thªm vµo
thiÕt bÞ míi hoÆc khi thay®æi c¸c tham sè.

 creatiadb—ThiÕt lËp hÖ thèng b¶o mËt.

Khi mµ chøc n¨ng khëi ®éng hÖ thèng ®îc thiÕt lËp, init kiÓm tra c¸c môc khëi

50
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

®éng ngÇm ®Þnh trong inittab ®Ó x¸c ®Þnh møc ch¹y mµ hÖ thèng.

Kh¸i niÖm System States

Trong Unix ngêi qu¶n trÞ hÖ thèng cã thÓ thiÕt lËp hÖ thèng m¸y tÝnh lín trong
single-user mode, mµ kh«ng cã phÇn m¹ng hoÆc terminals login. Trong trêng hîp
nµy ngêi qu¶n trÞ cã thÓ kiÓm tra xem xÐt hÖ thèng tríc khi cã yªu cÇu kh¸c vÝ
dô nh cµi ®Æt l¹i hÖ thèng. HÖ thèng gåm c¸c level sau:

 0 - Lµ møc shutdown. Khi thay ®æi sang møc 0 th× tÊt c¶ c¸c tiÕn tr×nh
®Òu bÞ ngõng ho¹t ®éng.

 1 (s or S)—øng víi møc single-user. Cã 3 tr¹ng th¸i cã thÓ thay ®æi tíi
single-user lµ: 1, s, vµ S. Ta ®Æt hÖ thèng trong møc single-user nÕu ta
muèn kh«ng cho c¸c ngêi sö dông kh¸c truy nhËp hÖ thèng. §iÓm kh¸c gi÷a
møc 1, s, vµ S lµ: 1—TÊt c¶ c¸c hÖ thèng file vÉn ®îc mount, tÊt c¶ c¸c
kÕt nèi m¹ng bÞ ng¾t bá, tÊt c¶ c¸c tiÕn tr×nh terminal ®Òu bÞ ng¾t bá.
Møc s hoÆc S—§©y lµ møc b¾t ®Çu hÖ thèng NÕu kh«ng cã file
/etc/inittab. NÕu thay ®æi ®Õn tr¹ng th¸i nµy, terminal cña ngêi sö dông sÏ
lµ system console, c¸c terminal ®Òu bÞ ng¾t bá vµ c¸c hÖ thèng file vÉn
®îc mount. Khi hÖ thèng chuyÓn sang møc nµy chØ cã mét sè c¸c c¸c hÖ
thèng file ®îc mount vÝ dô: /, /var, /proc...

 2—Lµ møc nhiÒu ngêi sö dông. Møc nµy khëi ®éng tÊt c¶ c¸c script trong
th môc /etc/rc2.d, gåm nhiÒu tiÕn tr×nh cho phÐp nhiÒu ngêi sö dông. NÕu
muèn sö dông hÖ thèng víi hiÖu lùc m¹ng vµ m«i trêng nhiÒu ngêi sö dông
th× ph¶i ch¹y ë møc 2 (hoÆc 3).

 3—Lµ møc cho phÐp chia sÎ d÷ liÖu víi c¸c hÖ thèng ë xa. NÕu cµi ®Æt
NFS HÖ thèng tù ®éng th«ng b¸o vµ mount c¸ hÖ thèng file ë xa b»ng
NFS..

 6—Lµ møc khëi ®éng l¹i hÖ thèng. khi thay ®æi sang møc 6 hÖ thèng
shutdown vµ khëi ®éng l¹i.

 Ngoµi ra cßn mét sè møc khëi ®éng kh¸c tuú theo lo¹ hÖ ®iÒu hµnh Unix

51
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

mµ cã c¸c hç trî víi môc ®ivchs kh¸c nhau.

HÖ thèng cã thÓ ®Æt ë c¸c møc 1, s, S, 2, hoÆc 3 lµm møc ngÇm ®Þnh ®Ó ch¹y.
Th«ng thêng lµ møc 2 hoÆc 3 trªn c¸c hÖ thèng Unix. §Ó thay ®æi tr¹ng th¸i cña
hÖ thèng sö dông lÖnh init (hoÆc telinit).

Initialization Table (inittab)

File /etc/inittab cã chøa c¸c tiÕn tr×nh mµ ®îc khëi ®éng khi init thùc hiÖn khëi
®éng hÖ thèng hoÆc khi thay ®æi tr¹ng th¸i. Mét sè thµnh phÇn trong inittab lµ
ch¹y díi chÕ ®é nÒn mét sè kh¸c nh /etc/rc2, ®îc sö dông ®Ó thiÕt lËp c¸c tiÕn
tr×nh kh¸c cho møc ch¹y riªng.

Mçi mét thµnh phÇn trong file inittab bao gåm c¸c trêng sau:

idtag:runstate:action:process

 Idtag lµ mét thÎ nµo ®ã ( tõ 1–4 ký tù) x¸c ®Þnh mét môc. Runstate lµ tr¹ng
th¸i hÖ thèng mµ thµnh phÇn sÏ ch¹y trong nã. Ta cã thÓ cã mét vµi tr¹ng
th¸i hÖ thèng g¸n cho mét thµnh phÇn.

 Action lµ tõ kho¸ t¬ng øng víi mét trong c¸c : respawn (NÕu tiÕn tr×nh bÞ
mÊt th× tù b¾t ®Çu l¹i), wait (§îi tiÕn tr×nh kÕt thóc tríc khi thùc hiÖn
tiÕp thµnh phÇn bªn díi, once (Ch¹y mét tiÕn tr×nh, ®îi cho nã kÕt thóc vµ
kh«ng khëi t¹o l¹i), boot (Ch¹y tiÕn tr×nh lÇn ®Çu chuyÓn sang tr¹ng th¸i
nhiÒu ngêi sö dông vµ kh«ng ®îi tiÕn tr×nh kÕt thóc), bootwait (ch¹y tiÕn
tr×nh lÇn ®Çu, chuyÓn sang tr¹ng th¸i nhiÒu ngêi sö dông, ®îi cho tiÕn
tr×nh kÕt thóc, vµ sysinit (ch¹y tiÕn tr×nh khi hÖ thèng b¾t ®Çu).

 Process lµ lÖnh thùc sù ch¹y khi c¸c tiªu chuÈn tríc ®ã lµ runstate vµ action
®îc ®¸p øng.

VÝ dô:

co:12345:respawn:ttymon g v p "Console Login: " d \

[cc]/dev/console l console

Môc nµy lµ co, ch¹y ë møc 1, 2, 3, 4, vµ 5. NÕu tiÕn tr×nh bÞ mÊt ®i th× nã tù

52
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

®éng khëi ®éng l¹i. TiÕn tr×nh nµy ch¹y lÖnh ttymon(terminal monitor), mµ cho
phÐp ta thùc hiÖn viÖc login tõ system console.

Run State Directories (rc?.d)

C¸c øng dông mµ cÇn cã c¸c tiÕn tr×nh ch¹y chÕ ®é nÒn hoÆc yªu cÇu mét vµi
thµnh phÇn ®îc khëi ®éng khi hÖ thèng b¾t ®Çu ho¹t ®éng, th«ng thêng cã c¸c
script trong th môc x¸c ®Þnh tr¹ng th¸i ch¹y cña hÖ thèng. Gåm c¸c th môc sau:

 /etc/rc0.d—cã chøa c¸c quan hÖ script khëi ®éng ban ®Çu víi tr¹ng th¸i
shutdown (0) vµ reboot (5 vµ 6).

 /etc/rc1.d— cã chøa c¸c quan hÖ script khëi ®éng ban ®Çu víi tr¹ng th¸i
single-user (1, s, vµ S).

 /etc/rc2.d— cã chøa c¸c quan hÖ script khëi ®éng ban ®Çu víi tr¹ng th¸i
multiuser (2 vµ 3).

 /etc/rc3.d— cã chøa c¸c quan hÖ script khëi ®éng ban ®Çu víi tr¹ng th¸i file-
sharing (3).

 /etc/shutdown—T¬ng thÝch víi c¸c hÖ preSystem V, Release 3 gåm c¸c


script ®îc gäi ch¹y khi hÖ thèng shutdown. Th«ng thêng th môc nµy lµ rçng
ngo¹i trõ c¸c script mµ ta thªm vµo.

 /etc/rc.d—T¬ng thÝch víi c¸c hÖ preSystem V, Release 3 gåm c¸c script


ch¹y khi hÖ thèng khë ®éng. Th«ng thêng th môc nµy lµ rçng ngo¹i trõ c¸c
script mµ ta thªm vµo.

 /etc/init.d—Thùc hiÖn nh lµ n¬i chøa c¸c startup script. C¸c Script kh«ng
thùc sù ch¹y tõ th môc nµy, nhng nã liªn kÕt víi c¸c th môc rc?.d t¬ng øng.

Startup Scripts

Startup script lµ lÖnh ch¹y khi khëi ®éng hÖ thèng, shutdown hÖ thèng hoÆc khi
thay ®æi tr¹ng th¸i hÖ thèng. NÕu thùc hiÖn xem néi dung c¸c file nµy b»ng lÖnh
cat hoÆc pg ta sÏ nh×n thÊy hµng lo¹t c¸c lÖnh shell víi c¸c tuú chän start hoÆc
stop.

53
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Khi øng dông thªm vµo mét startup script. th× nã thªm script vµo th môc /etc/init.d.
sau ®ã thùc hiÖn link nã tíi mét hoÆc nhiÒu th môc víi tªn file b¾t ®Çu b»ng S
(for start) hoÆc K (for kill).

Ta h·y xem xÐt vÝ dô vÒ mouse manager:

Khi cµi ®Æt UnixWare, mét shell script cho viÖc khëi ®éng vµ kÕt thóc tiÕn
tr×nh qu¶n lý mouse trªn øng dông giao diÖn ®å ho¹ lµ file /etc/init.d/mse, ®îc link
thµnh hai file kh¸c lµ /etc/rc2.d/S02mse vµ /etc/rc0.d/K02mse.

C¸c lÖnh trong file script nh sau:

case "$1" in

'start')

/usr/lib/mousemgr &

;;

'stop')

pid='/usr/bin/ps e | /usr/bin/grep mousemgr |\

[cc]/usr/bin/sed e 's/^ *//' e 's/ .*//''

if [ "${pid}" != "" ]

then

/usr/bin/kill ${pid}

fi

;;

*)

echo "Usage: /etc/init.d/mse { start | stop }"

;;

esac

Khi khëi ®éng hÖ thèng tiÕn tr×nh init kiÓm tra file /etc/inittab t×m c¸c môc mµ

54
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

phï hîp víi tr¹ng th¸i ch¹y ngÇm ®Þnh, th«ng thêng lµ tr¹ng th¸i 3. Thùc hiÖn viÖc
t×m r2, ch¹y lÖnh trong /sbin/rc2 vµ kiÓm tra tÊt c¶ c¸c script trong th môc
/etc/rc2.d. Sau ®ã ch¹y c¸c file b¾t ®Çu b»ng K víi tuú chän stop vµ b¾t ®Çu
ch¹y c¸c script mµ b¾t ®Çu b»ng ch÷ S víi tuú chän start. Trong vÝ dô trªn th×
lÖnh ch¹y S02mse lµ: S02mse start. øng víi tuú chän start lµ lÖnh
/usr/lib/mousemgr ®îc thùc hiÖn vµ tiÕn tr×nh tiÕp tôc ch¹y cho ®Õn khi cã thay
®æi l¹i tr¹ng th¸i hÖ thèng.

Khi shutdown hÖ thèng tiÕn tr×nh init ch¹y tiÕn tr×nh tr¹ng th¸i 0, c¸ch thøc gièng
nh trªn. Nhng môc ch¹y lµ r0, ch¹y lÖnh /etc/rc0, thùc hiÖn kiÓm tra trong th
môc /etc/rc0.d. TÊt c¶ c¸c script b¾t ®Çu b»ng ch÷ K ®îc gäi thùc hiÖn víi tuú
chän stop. Víi script K02mse ®îc gäi ch¹y nh sau: K02mse stop. øng víi tuú chän
stop th× script ch¹y lÖnh x¸ ®Þnh ID cña tiÕn tr×nh mousemgr vµ huû bá nã, t¬ng
tù víi tiÕn tr×nh kh¸c vµ sau khi thùc hiÖn hoµn tÊt th× hÖ thèng cã thÓ
shutdown.

Thay ®æi tr¹ng th¸i víi init hoÆc telinit

Khi hÖ thèng ®ang ch¹y ta cã thÓ thay ®æi tr¹ng th¸i hoÆc møc ho¹t ®éng cña hÖ
thèng b»ng lÖnh init hoÆc telinit. NÕu ta ®ang shutdown hÖ thèng hoÆc chuyÓn
sang tr¹ng th¸i thÊp h¬n cã thÓ sö dông lÖnh shutdown.

LÖnh init cho phÐp thay ®æi tr¹ng th¸i mét c¸ch dÔ dµng b»ng c¸ch gâ lÖnh init
vµ theo sau lµ sè chØ tr¹ng th¸i vÝ dô: init 2

LÖnh telinit lµ link cña init. LÖnh telinit ®îc t¹o ra cho ngêi sö dông.

2. Shutting Down the System

Cã vµi c¸ch ®Ó shutdown hÖ thèng Unix: B»ng c¸ch sö dông lÖnh Shutdown,
reboot, b»ng lÖnh trong giao diÖn ®ã ho¹, b»ng c¸ch t¾t m¸y ...

Using the shutdown Command

LÖnh shutdown cã thÓ ®îc sö dông thay cho lÖnh init ®Ó chuyÓn tr¹ng th¸i sang
(0) vµ tr¹ng th¸i reboot (6). LÖnh cã thÓ lµ phøc t¹p trong m«i trêng nhiÒu ngêi sö
dông. NÕu dïng lÖnh init 0 hÖ thèng bÞ down ngay. NÕu muèn ngêi sö dông ph¶i

55
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

logout ra hÕt tríc khi hÖ thèng down cã thÓ dïng lÖnh:

# cd /

# shutdown y g60 i0

Tuú chän y cho phÐp bá qua c¸c c©u hái yªu cÇu g60 trong vßng 60 gi©y ngêi sö
dông ph¶i logout tríc khi hÖ thèng down. i0 g¸n víi tr¹ng th¸i lÖnh init 0.

Khi ch¹y lÖnh nµy th× tÊt c¶ ngêi sö dông trªn m¹ng sÏ ®îc th«ng b¸o ph¶i logout
hÖ thèng s¾p shutdown vµ dµnh kho¶ng thêi gian cho ngêi sö dông hoµn thµnh
c«ng viÖc cuèi cïng tríc khi hÖ thèng down.

VI. Managing processes

1. Processes

Sau khi hÖ thèng hoµn thµnh viÖc khëi ®éng hÖ thèng ta cã thÓ thùc hiÖn ch¹y
c¸c øng dông. Mét øng dông ®ang thùc thi gäi lµ mét process. C«ng viÖc cña hÖ
®iÒu hµnh lµ qu¶n lý thùc thi øng dông. Khi thùc thi mét ch¬ng tr×nh th× hÖ
®iÒu hµnh sÏ t¹o ra mét process míi. NhiÒu process cã thÓ cïng ®ång thêi tån t¹i,
nhng chØ mét process cã thÓ ®îc thùc hiÖn thùc sù trªn CPU t¹i mét thêi ®iÓm.
HÖ ®iÒu hµnh ph©n chia viÖc thùc thi c¸c process mét c¸c rÊt nhanh lµm cho c¸c
process nh ®ang thùc hiÖn ®ång thêi. Kh¸i niÖm nµy xem nh lµ sù ph©n chia thêi
gian xö lý hoÆc ®a nhiÖm.

Khi tho¸t khái ch¬ng tr×nh th× process sÏ kÕt thóc vµ hÖ ®iÒu hµnh sÏ gi¶i phãng
c¸c tµi nguyªn mµ ch¬ng tr×nh ®· sö dông.

HÇu hÕt c¸c ch¬ng tr×nh ®Òu thùc hiÖn mét vµi nhiÖm vô tõ lóc khëi ®Çu cho
®Õn lóc kÕt thóc cho nªn ®Ó thùc thi c¸c t¸c vô ch¬ng tr×nh yªu cÇu hÖ ®iÒu
hµnh cung cÊp c¸c tµi nguyªn cÇn thiÕt cho viÖc thùc thi.

Cã mét vµi lo¹i process cã trong c¸c hÖ ®iÒu hµnh Unix. Mçi lo¹i cã c¸c ®Æc
®iÓm riªng gåm: Interactive process lµ process ®îc khëi ®éng bëi shell nã cã thÓ
lµ foreground hoÆc background. Batch process lµ process mµ kh«ng t¬ng øng víi
terminal. Daemon process lµ process mµ ch¹y background khi ®îc yªu cÇu. Lo¹i

56
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

nµy thêng thùc hiÖn khi khëi ®éng hÖ thèng.

Mét sè lÖnh liªn quan ®Õn viÖc qu¶n lý tiÕn tr×nh:kill, ps

PhÇn tham sè cña lÖnh xem trong end user.

VÝ dô:

$ ps -f

UID PID PPID C STIME TTY TIME COMD

sartin 1400 1398 80 18:31:32 pts/5 0:01 -sh

sartin 1406 1400 25 18:34:33 pts/5 0:00 ps –f

LÖnh ps cho phÐp ngêi qu¶n trÞ xem xÐt c¸c th«ng tin vÒ hÖ th«ng b¸o gåm c¸c
th«ng sè sau:

F ChØ ra tr¹ng th¸i cña process vµ ®îc tÝnh to¸n bëi c¸c gi¸ trÞ hexadecimal
gåm:

00 Process ®· kÕt thóc.

01 Lµ system process lu«n tån t¹i trong memory

02 Process ®ang bÞ kiÓm so¸t bëi tiÕn tr×nh cha.

04 Process ®ang bÞ kiÓm so¸t bëi tiÕn tr×nh cha vµ nã ®· bÞ dõng.

08 Process kh«ng thÓ ®îc kÝch ho¹t bëi c¸c signal

10 Process ®ang trong bé nhí vµ bÞ lock ®ang ®îi event

20 Process kh«ng thÓ bÞ swapped

S Còng dïng chØ tr¹ng th¸i cña process:

O Process ®ang ch¹y trªn processor.

S Process ®ang sleeping, vµ ®ang ®îi I/O event ®Ó hoµn thµnh.

R Process ®ang s½n sµng ch¹y.

I Process kh«ng lµm g×.

57
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Z Process ®· bÞ kÕt thóc vµ tiÕn tr×nh cha kh«ng ®îi nhng nã vÉn
®ang trong process table (zombie process)

T Process ®· bÞ ngõng bëi tiÕn tr×nh cha.

X Process ®ang ®îi ®Ó lÊy thªm bé nhí.

UID User ID cña ngêi chñ process

PID Process ID number

PPID Parent process ID number

C Sö dông CPU theo thêi gian biÓu.

CLS Líp thêi gian biÓu, real-time, time sharing, hoÆc system

PRI Møc u tiªn Process (sè cµng lín ®é u tiªn cµng nhá).

NI Møc ®é u tiªn vÒ chiÕm dông thêi gian xö lý CPU. T¨ng gi¸ trÞ -> gi¶m ®é
u tiªn.

SZ Tæng virtual memory yªu cÇu bëi process.

Wchan §Þa chØ cña process trong process table.

TTY Terminal khëi ®éng process, hoÆc cha nã. (A ? chØ ra kh«ng cã terminal
tån t¹i.)

TIME Tæng thêi gian process sö dông CPU tõ khi process b¾t ®Çu.

COMD LÖnh t¹o ra process

2. Process scheduling

Th«ng thêng c¸c hÖ thèng lín hoÆc cÇn cung cÊp d÷ liÖu thêng xuyªn hÖ thèng
lu«n ®îc ch¹y 24/24. UNIX ®a ra mét sè lÖnh cho phÐp thùc hiÖn c¸c process theo
thêi gian ®Þnh s½n.

LÖnh at: LÖnh at ®îc sö dông ®Ó ®Ó ®Æt schedule cho mét lÖnh thùc hiÖn
trong thêi gian qui ®Þnh.

at time date < file

58
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

ViÖc ®Æt lÞch theo kho¶ng thêi gian nµo ®ã tuú theo ngêi ®Æt qui ®Þnh. Cã thÓ
lµ hh:mm, cã thÓ hh:mm(pm,am). Cã mét sè tõ vÒ thêi gian dïng lµm option lµ
noon, midnight, now, next. Cã thÓ ®Æt ngµy, th¸ng thùc hiÖn May 10 hoÆc day
of the week .

VÝ dô:

at 20:30 < reorg.data

at 8:30 pm < reorg/data

at 20:30 today < reorg.data

at 8:30 pm Friday < reorg.data

at 0900 Monday next week < reorg.data

Dïng lÖnh at -l ®Ó hiÖn danh s¸ch c¸c c¸c process ®îc schedule.

VÝ dô:

$ at -l

user = tparker job 827362.a at Wed Aug 31 06:00:00 EDT 1995

user = tparker job 829283.a at Wed Aug 31 09:30:00 EDT 1995

Dïng lÖnh at –r <job> ®Ó bá mét schedule.

VÝ dô:

at -r 2892732.a

LÖnh cron vµ crontab: cron lµ mét tiÖn Ých cho phÐp thùc hiÖn c¸c lÖnh t¹i mét
thêi ®iÓm chØ ®Þnh mµ kh«ng cÇn mét ai trùc tiÕp khëi ®éng nã. HÖ thèng
UNIX tù ®éng load cron nh lµ mét daemon khi nã khëi ®éng. Khi ho¹t ®éng cron
®äc thêi gian vµ c«ng viÖc mµ nã ®îc ®Þnh thùc hiÖn trong crontab file. ViÖc
thùc hiÖn c¸c t¸c vô ®Æt trong crontab file lµ lu«n lu«n ®îc thùc hiÖn nã chØ
ngõng thùc hiÖn khi kÕt thóc tiÖn Ých cron hoÆc khi thay ®æi th«ng tin trong
crontab file.

Trªn hÇu hÕt c¸c hÖ thèng viÖc truy nhËp vµ t¹o c¸c schedule chØ ®îc thùc hiÖn

59
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

bëi ngêi qu¶n trÞ hÖ thèng.

Ngµy nay mét sè hÖ ®iÒu hµnh UNIX cßn cho phÐp ngêi sö dông tù t¹o c¸c
crontab cña riªng hä.

§Ó t¹o crontab file sö dông lÖnh crontab víi tham sè -l. Nã sÏ t¹o ra mét crontab file
cho phÐp t¹o c¸c t¸c vô mong muèn.

$ crontab -l > new_crontab_file

$ vi new_crontab_file

[edit the file to update your crontab]

$ crontab new_crontab_file

Mét crontab file ®îc thÓ hiÖn díi khu«n d¹ng sau:

<minute> <hour> <day-of-month> <month-of-year> <day-of-week> <command>

Gi¸ trÞ chÊp nhËn cña c¸c trêng:

minute (0-59)

hour (0-23)

day of month (1-31)

month of year (1-12)

day of week (0-6, 0 is Sunday)

Command (rest of line)

VÝ dô

0 17 1 * 0 date | mail user

LÖnh sÏ ®îc thùc hiÖn vµo 5 p.m. vµo ngµy ®Çu th¸ng vµ 5 p.m. mçi ngµy chñ
nhËt.

C¸c file cron tab ®îc ®Æt trong th môc cron ®Ó thùc hiÖn. Th môc nµy cã thÓ ë
mét vÞ trÝ nµo ®ã tuú lo¹i UNIX th«ng thêng lµ /usr/spool/cron/ hoÆc

60
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

/var/spool/cron/.

3. Process priorities

VII. Security

ViÖc truy nhËp hÖn thèng th«ng thêng ®îc thùc hiÖn trùc tiÕp tù system console,
qua hÖ thèng m¹ng, qua modem connection. ViÖc truy nhËp hÖ thèng UNIX ®ßi
hái ngêi sö dông ph¶i ®îc t¹o trªn hÖ thèng víi mËt khÈu truy nhËp vµ quyÒn truy
nhËp t¬ng øng tíi tµi nguyªn hÖ thèng.

1. Security datafiles

§Ó x¸c ®Þnh quyÒn h¹n truy nhËp hÖ thèng, Víi c¸c hÖ thèng UNIX th«ng thêng
c¸c th«ng tin liªn quan ®Õn nhãm vµ ngêi sö dông truy nhËp hÖ thèng ®îc lu tr÷
trong c¸c file (security datafiles).

password File

File nµy dïng lu tr÷ th«ng tin vÒ ngêi sö dông hÖ thèng bao gåm c¸c trêng riªng rÏ
c¸ch nhau bëi dÊu (:), khu«n d¹ng file gåm c¸c dßng cã d¹ng nh sau. File ®îc ®Æt
trong th môc /etc:

username:pswd:uid:gid:uid comments:directory:shell

 Trêng username lµ tªn user thùc hiÖn khi login t¹i dÊu nh¾c Unix login:. Th«ng
thêng trêng nµy lµ gåm c¸c ký tù ch÷ thêng nhá h¬n hoÆc b»ng 8, tªn duy nhÊt,
kh«ng ®îc chøa dÊu (:, dÊu c¸ch, ký tù ®Æc biÖt). C¸ch tèt lµ dïng dÊu g¹ch d-
íi (_) cho dÊu nèi.

 Trêng pswd lµ phÇn mËt khÈu víi c¸c khu«n d¹ng kh¸c nhau. Nã cã thÓ mang
gi¸ trÞ rçng chØ ra r»ng kh«ng yªu cÇu mËt khÈu khi login. Gi¸ trÞ cã thÓ dµi
tíi 13 ký tù vµ ®îc m· ho¸. C¸c ký tù ®îc gâ vµo lµ c¸c ký tù n»m trong kho¶ng
{ . / 0-9 A-Z a-z } cßn c¸c gi¸ trÞ kh¸c lµ kh«ng ®îc chÊp nhËn. §èi víi mét sè
lo¹i cña hÖ ®iÒu hµnh UNIX th× cã thÓ ®îc më réng h¬n hoÆc ®îc liªn kÕt
víi mét file kh¸c (shadown).

61
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 Trêng uid lµ id cña user. Gi¸ trÞ nµy lµ duy nhÊt vµ cã gi¸ trÞ tõ 0- 65535. Mét
sè lo¹i hÖ ®iÒu hµnh cã khuyÕn nghÞ c¸ch dïng c¸c id trong ph¹m vi an toµn.
Chóng bao gåm:

0: The superuser

1-10: Daemons and pseudo users

11-99: System, reserved and "famous" users

100+: Normal users

60001: "nobody" (occasionally 32000 or 65534)

60002: "noaccess" (occasionally 32001)

 Trêng gid lµ id cña nhãm ngÇm ®Þnh mµ user thuéc vµo. Gi¸ trÞ nµy t¬ng øng
víi gi¸ trÞ cã trong /etc/group file.

 Trêng uid comments field lµ trêng ghi chó c¸c th«ng tin thªm vµo c¸c phÇn
th«ng tin cã thÓ c¸ch nhau b»ng dÊu (,) vÝ dô: Homer User,,,800-IAM-HOME.

 Trêng directory lµ th môc home hoÆc th môc lµm viÖc cña ngêi sö dông.

 Trêng shell lµ trêng chøa bé th«ng dÞch lÖnh hoÆc ch¬ng tr×nh ngêi sö dông
gäi tíi khi login. Th«ng thêng lµ mét trong ba shell sau: sh (Bourne), ksh (Korn),
csh. NÕu kh«ng lµ c¸c shell th× nã cã thÓ lµ mét ch¬ng tr×nh nµo ®ã

VÝ dô :
root:x:0:0:Superuser:/:
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sys:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico
lp:*:9:7::/var/spool/lp:/sbin/sh
nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico
hpdb:*:27:1:ALLBASE:/:/sbin/sh

62
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

nobody:*:-2:60001::/:
dave:x:100:10:Dave G,13,x3911,unlisted:/usr1/dave:/bin/tcsh
charlene:x:101:10:Charlene G,14,x1800,unlisted:/usr1/charlene:/bin/tcsh
john:x:102:60:John S,2,555-1234,x1400:/usr2/john:/bin/ksh
georgia:x:103:60:Georgia S,11,x143,x143:/usr2/georgia:/bin/csh

Shadow Password File

File /etc/passwd th«ng thêng ngêi sö dông cã thÓ xem ®îc. §Ó lu tr÷ mËt khÈu cña
ngêi sö dông ®· ®îc m· ho¸ vµ mét sè th«ng tin kh¸c, mét sè lo¹i UNIX sö dông file
/etc/shadow. Th«ng thêng mét file shadow cã d¹ng sau:

username:pswd:lastchg:min:max:warn:inactive:expire:flag

 Trêng username lµ tªn user lÊy tõ file /etc/passwd.

 Trêng pswd cã chøa 13 ký tù m· ho¸ cña password, null chØ ra kh«ng cã


password khi login.

 Trêng lastchg lµ ngµy mµ password thay ®æi cuèi.

 Trêng min lµ ngµy nhá nhÊt gi÷a ngµy thay ®æi password.

 Trêng max lµ sè ngµy lín nhÊt mµ password sÏ ®îc chÊp nhËn.

 Trêng warn cã chøa sè ngµy th«ng b¸o tríc khi password bÞ qu¸ h¹n.

 Trêng inactive lµ trêng sè ngµy mµ username vÉn cßn t¸c dông tríc khi kh«ng ®-
îc cho phÐp login.

 Trêng expire chØ sè ngµy x¸c ®Þnh mµ ngêi sö dông ®îc quyÒn login vµo hÖ
thèng.

 Trêng flag hiÖn kh«ng sö dông.

Group File

§©y lµ file liªn quan ®Õn quyÒn h¹n cña ngêi sö dông, cña nhãm trªn hÖ thèng file
trong hÖ ®iÒu hµnh Unix. CÊu tróc file nh sau:

group_name:password:group_id:list

63
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 Trêng group_name chøa tªn cña group.

 Trêng password lµ phÇn m· ho¸ cña mËt khÈu nhãm nÕu cã.

 Trêng group_id lµ gi¸ trÞ ID cña group.

 Trêng list lµ danh s¸ch c¸c ID cña ngêi sö dông thþc nhãm.

VÝ dô:
root::0:root
other::1:root,hpdb
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
mail::6:root
lp::7:root,lp
tty::10:
nuucp::11:nuucp
users::20:root,dave,charlene,john,georgia,operator,steve,judy,wayne,jamie
nogroup:*:-2:
systech::110:dave,disdb,diskf,disjs,dispm,diskj
dba::201:oracle,john,kathy,pete
Hosts.equiv: ChØ ra danh s¸ch c¸c host vµ c¸c user khi truy nhËp hÖ thèng víi c¸c
lÖnh rlogin, rcp, rsh khi truy nhËp kh«ng cÇn mËt khÈu.

CÊu tróc file nh sau:

host1

host2 user

+@group1

@group ®îc lu trong file netgroup

netgroup: Chøa c¸c group

64
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

netgroup name name ...

netgroup (hostname, user, domain)

.
.rhosts: T¬ng tù nh trªn

2. Group and User administration

a) Group administration

T¹o group

Xo¸ group

b) User administration

T¹o ngêi sö dông

Cã ba c¸ch ®Ó t¹o mät ngêi sö dông hÖ thèng lµ:

 So¹n file passwd, shadow vµ c¸c file t¬ng øng b»ng tay.

 Sö dïng lÖnh useradd.

 Sö dông c¸c tiÖn Ých Graphical User Interface (GUI) ®îc c¸c hÖ ®iÒu
hµnh UNIX hç trî.

Tríc khi t¹o mét ngêi sö dông ta cÇn ph¶i:

 Chän tªn ngêi sö dông. Tªn nµy ph¶i duy nhÊt trong hÖ thèng.

 G¸n user ID (gi¸ trÞ nµy cha ®îc sö dông tríc ®©y) vµ Group mµ user thuéc
vµo.

 Chän group mag user sö dông nã lµm primary group.

 Chän th môc home cña ngêi sö dông.

LÖnh Useradd : LÖnh t¹o ngêi sö dông.

useradd [ -c comment ] [ -d dir ] [ -e expire ] [ -f inactive ]

[ -g group ] [ -G group [, group...]] [ -m [ -k skel_dir ]]

65
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

[ - u uid [ -o]] [ -s shell ] login

 -c Ghi chó VÝ dô: -c "Temp user"

 -d Th môc home cña user.

 -e Ngµy qu¸ h¹n trêng nµy kh«ng yªu cÇu ph¶i cã. NÕu cã th× viÖc kiÓm
tra ngµy qu¸ h¹n sÏ cã hiÖu lùc. VÝ dô: -e "January 1, 1995" hoÆc -e 1/1/95

 -f ChØ ra sè ngµy kh«ng ho¹t ®éng tèi ®a tríc khi kh«ng ®îc chÊp nhËn.
NÕu kh«ng cã tuú chän nµy th× viÖc kiÓm tra bÞ bá qua.

 -g group—ChØ ra primary group ID cña user.

 -G group [, group ... ]—ChØ ra group mµ user thuéc vµo. (secondary


groups). Gi¸ trÞ cã thÓ lµ tªn hoÆc group ID

 -m [ -k skel_dir ]—NÕu kh«ng cã tham sè –k -> t¹o th môc home cho user
vµ copy c¸c file tõ /etc/skel. NÕu cã tham sè -k -> t¹o th môc home vµ copy
c¸c file tù skel_dir thay cho ë /etc/skel.

 -u uid [ -o]—DÆt user ID. NÕu cã -o th× user ID nµy lµ kh«ng duy nhÊt.
Tuy nhiªn UNIX kh«ng khuyÕn nghÞ dïng nhiÒu user chung mét ID.

 -s shell—ChØ login shell.

 login—ChØ tªn ngêi sö dông dïng ®Ó login vµo hÖ thèng.

Xo¸ ngêi sö dông

Tríc khi xo¸ mét ngêi sö dông ta cÇn quan t©m xem thùc sù muèn xo¸ ngêi sö dông
hay chØ cÇn t¹m thêi lµm mÊt hiÖu lùc cña ngêi sö dông. Xem xÐt c¸c lý do sau
tríc khi quyÕt ®Þnh.

 NÕu user cã kh¶ n¨ng sÏ ®îc quyÒn quay trë l¹i hÖ thèng, viÖc sö dông l¹i
d÷ liÖu sÏ khã vµ cßn tr¸nh viÖc sö dông ID ®· sö dông v× khi ®ã c¸c d÷
liÖu do ngêi bÞ lo¹i bá sÏ ®îc g¸n l¹i cho ngêi míi t¹o.

 CÇn thiÕt trong trêng hîp håi phôc c¸c file d÷ liÖu liªn quan ®Õn ngêi sö
dông ®· bÞ xo¸. NÕu d÷ liÖu håi phôc mµ cã cña user ®· bÞ xo¸ th× sau ®ã
ta khã x¸c ®Þnh d÷ liÖu nµy lµ cña ai -> viÖc sö dông l¹i sÏ rÊt khã kh¨n.

66
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

§Ó t¹m thêi kh«ng cho user th©m nhËp hÖ thèng dïng lÖnh passwd -l <user>

Muèn lo¹i bá hoµn toµn nh÷ng g× liªn quan ®Õn ngêi sö dông th× tríc hÕt cÇn:

 T×m c¸c file mµ ngêi sö dông lµ chñ vµ in dah s¸ch c¸c file nµy ra. (T×m
b»ng lÖnh find).

 Muèn sö dông l¹i c¸c file nµy h·y g¸n chñ së h÷u míi.

 Xo¸ toµn bé c¸c file cÇn ph¶i xo¸.

 Xo¸ user b»ng c¸c xo¸ c¸c th«ng tin liªn quan ®Õn user trong c¸c security
file, hoÆc dïng tiÖn Ých mµ hÖ ®iÒu hµnh UNIX cung cÊp hoÆc dïng
lÖnh userdel.

LÖnh userdel: LÖnh xo¸ ngêi sö dông.

userdel [-r] <username>

 username Tªn user cÇn xo¸.

 -r Xo¸ toµn bé th môc home cña user.

Thay ®æi th«ng tin ngêi sö dông.

§Ó thay ®æi th«ng tin liªn quan ®Õn ngêi sö dông dïng lÖnh.

usermod [-c uid comment] [-d dir [-m]] [-e expire] [-f inactive]

[-g gid] [-G gid[,gid]]

[-l new_username] [-s shell] [-u uid [-o]] username

new_username Lµ tªn user míi.

Psuedo Users

Trong mçi hÖ ®iÒu hµnh UNIX ®Òu cã chøa méy vµi psuedo user. C¸c user nµy
®îc hÖ thèng sö dông nh»m mét sè môc ®Ých nµo ®ã. C¸c thuéc tÝnh cña chóng
kh«ng nªn thay ®æi. Sau ®©y lµ mét sè c¸c psuedo user :

 daemon Used by system server processes

 bin Owns executable user command files

67
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 sys Owns system files

 adm Owns accounting files

 uucp Used by UUCP

 lp Used by lp or lpd subsystems

 nobody Used by NFS

ThiÕt lËp m«i trêng ngêi sö dông

Khi ngêi sö dông login vµo hÖ thèng mét sè file ®îc gäi thùc hiÖn ®Ó x¸c lËp m«i
trêng lµm viÖc cho ngêi sö dông.

/etc/profile File thiÕt lËp m«i trêng hÖ thèng ®îc gäi thùc hiªn ®èi víi tÊt c¶ ngêi
sö dông login vµo hÖ thèng.

C¸c file Èn trong th môc home cña ngêi sö dông.

 .login Dïng víi Csh thùc hiÑn sau qu¸ tr×nh lËp m«i trêng hÖ thèng.

 .profile Dïng Sh víi ksh Thùc hiÖn khi ngêi sö dông login sau qu¸ tr×nh thiÕt
lËp m«i trêng cña hÖ thèng.

 .rhosts Danh s¸ch Remote host/username mµ ®îc g¸n quyÒn khi sö dông
Rlogin, rexec, rsh, rcp, truy nhËp c¸c file vµ lÖnh kh«ng cÇn mËt khÈu.

 .mailrc Khëi ®éng file cho mail mµ cho phÐp ®Æt c¸c tuú chän hoÆc c¸c
aliases.

 .xinitrc File khêi ®éng cho X windowing.

 .xsession

 .xdefault

3. System access permissions

Xem tµi liÖu end user

68
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

4. Acounting

UNIX accounting system thu thËp th«ng tin vÒ viÖc sö dông tµi nguyªn m¸y tÝnh
cña c¸c nhãm hoÆc cña ngêi sö dông ®¬n lÎ. Ta cã thÓ sö dông th«ng tin nµy
gièng nh c¸c b¶ng kª víi ngêi sö dông tµi nguyªn hÖ thèng. C¸c Accounting report
cung cÊp c¸c th«ng tin gióp cho ngêi qu¶n trÞ hÖ thèng xem xÐt tµi nguyªn hÖ
thèng ®ang ®îc sö dông, qu¶n lý tµi nguyªn, ®Æt c¸c giíi h¹n vµ h¹n møc truy
nhËp tµi nguyªn ...

C¸c tiÖn Ých ®îc cung cÊp cã thÓ ®Æt ch¹y tù ®éng hoÆc thùc hiÖn banõg tay tõ
ngêi qu¶n trÞ hÖ thèng.

Khi hÖ ®iÒu hµnh UNIX ®îc khëi ®éng vµ hÖ thèng accounting ®îc khëi ®éng
ch¹y th× c¸c thao t¸c thèng kª b¾t ®Çu ho¹t ®éng. D÷ liÖu ®îc tËp hîp theo c¸c lo¹i
sau ®©y:

 Connect session statistics

 Process usage

 Disk space utilization

 Printer usage

Connect Session Statistics

Thèng kª thêi gian b¾t ®Çu thùc hiÖn kÕt nèi tíi hÖ thèng vµ thêi gian kÕt thóc
kÕt nèi víi hÖ thèng cña mét user nµo ®ã. C¸c th«ng tin nµy thêng ®îc ghi trong
file /var/adm/wtmp, gåm c¸c th«ng tin sau:

 Tªn ngêi sö dông

 Ngµy login/logout

 Thêi gian login/logout

 Terminal port

C¸c th«ng tin nµy cã thÓ ®îc sö dông ®Ó ®a ra c¸c lo¹i b¸o c¸o d¹ng sau:

 Ngµy vµ giê cña mçi lÇn kÕt nèi.

69
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 Tªn vµ ID cña ngêi sö dông thùc hiÖn kÕt nèi.

 Thêi gian kÕt nèi.

 §Þa chØ thiÕt bÞ kÕt nèi

Process Usage

System accounting hÇu nh thèng kª c¸c th«ng tin bëi c¸c tiÕn tr×nh ®¬n lÎ vÝ dô:

 Sö dông bé nhí.

 Sè User vµ group numbers ch¹y process

 Tªn cña lÖnh gäi thùc hiÖn.

 Thêi gian ch¹y vµ thêi gian processor sö dông bëi process

 T¹ng th¸i vµo ra.

 Sè d÷ liÖu ®îc truyÒn.

 Sè l¬ng blocks ®äc vµ ghi trªn ®Üa cña mçi process

C¸c th«ng tin ®îc lu trong accounting file /var/adm/pacct. File nµy ®îc truy nhËp
bëi c¸c lÖnh accounting. Sau khi tiÕn tr×nh kÕt thóc kernel ghi c¸c th«ng tin trªn
file /var/adm/pacct file. Th«ng tin gåm:

 Process cña user ID

 LÖnh thùc hiÖn khëi ®éng process

 Thêi gian thùc hiÖn.

System accounting cung cÊp lÖnh hiÓn thÞ, b¸o c¸o, tæng kÕt c¸c th«ng tin vÒ
tiÕn tr×nh.

Disk Space Utilization

System accounting cung cÊp kh¶ n¨ng cho ngêi qu¶n trÞ hÖ thèng ®Ó gi¸m s¸t
viÖc sö dông ®Üa cña ngêi sö dông. §Ó h¹n chÕ viÖc sö diông ®Üa ngêi sö dông
cã thÓ thùc hiÖn viÖc giíi h¹n viÖc sö dông. C¸c lÖnh nµy thùc c¸c chøc n¨ng sau:

 Sö dông ®Þa bëi c¸c filesystem

70
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 B¸o c¸o vÒ viÖc sö dông ®Üa cña ngêi sö dông.

 Tr¹ng th¸i ®Üa vµ sù sö dông ®Üa cña c¸c lÖnh system accounting.

Printer Usage

Printer usage data ®îc lu trong file /var/adm/qacct díi d¹ng ASCII. TiÕn tr×nh
qdaemon sÏ ghi d÷ liÖu d¹ng ASCII tíi file /var/adm/qacct sau khi c«ng viÖc in Ên
hoµn tÊt. C¸c b¶n ghi øng víi mçi printer queue cã chøa c¸c th«ng tin sau:

 Tªn vµ ID cña ngêi sö dông.

 Sè trang ®· in.

VIII. File System and Disk Administration

1. CÊu tróc th môc trªn Unix

 / - Th môc gèc trªn UNIX file system.

 /bin - Lµ symbol link tíi /usr/bin chøa c¸c lÖnh user trªn UNIX.

 /dev - Cã chøa c¸c file thiÕt bÞ nh printer, keyboard, harddisk ...

 /etc - Chøa c¸c file cÊu h×nh hÖ thèng vµ c¸c file liªn quan ®Õn qu¶ trÞ hÖ
thèng.

 /lib - Chøa th viÖn trªn UNIX.

 /sbin - Chøa lÖnh liªn quan ®Õn khëi t¹o hÖ thèng.

 /tftpboot - Chøa c¸c file phôc vô cho viÖc khëi ®éng tõ c¸c client.

 /usr - Chøa lÖnh vµ c¸c ch¬ng tr×nh øng dông hç trî bëi hÖ ®iÒu hµnh.

 /var - Cha c¸c th«ng tin cÊu h×nh c¸c øng dông, hµng ®îi ...

 /vmunix Kernal cña UNIX

 /opt Chøa c¸c ch¬ng tr×nh øng dông thêng tõ h·ng thø ba.

 /home Th môc home cña user.

 /lost+found Cha c¸c file ®îc recover bëi fsck.

71
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

2. Creating file systems

§Ó t¹o hÖ thèng file cÇn thùc hiÖn c¸c bíc nh sau:

 Chän quyÒn h¹n cña ®Üa.

 T¹o c¸c partition

 T¹o file system

Mçi lo¹i UNIX sÏ cã c¸c c«ng cô kh¸c nhau ®Ó t¹o c¸c file system. Th«ng thêng
dïng c¸c lÖnh fdisk, format, fdformat, c¸c lÖnh t¹o cÊu tróc block dïng mkfs hoÆc
newsfs. Mçi lo¹i hÖ ®iÒu hµnh UNIX sö dông ký hiÖu ®Þa diÖn cho hÖ thèng
file trong c¸c môc tuú chän øng víi c¸c lÖnh VÝ dô: Solaris sö dông ufs, Linux sö
dông ext2, IRIX sö dông efs vµ xfs.

Tuy nhiªn hÖ thèng file cña UNIX còng chØ lµ n¬i lu d÷ liÖu trªn ®Üa vµ nã còng
®îc lu díi d¹ng cÊu tróc ph©n cÊp vµ ®Æt trªn c¸c partition.

Víi hÖ ®iÒu hµnh UNIX c¸c thiÕt bÞ ®Òu ®îc thÓ hiÖn díi d¹ng c¸c file. C¸c file
thiÕt bÞ nµy thêng ®îc ®Æt trong th môc /dev. Víi mçi hÖ ®iÒu hµnh UNIX c¸c
file thiÕt bÞ nµy cã thÓ ®îc ký hiÖu kh¸c nhau hoÆc ®Æt møc th môc thÊp h¬n.
Th«ng thêng c¸c hÖ ®iÒu hµnh UNIX tù ®éng t¹o ®óng c¸c file thiÕt bÞ mµ nã hç
trî khi khëi ®éng hÖ thèng. NgÇm ®Þnh c¸c file nµy chØ ®îc truy nhËp bëi ngêi
qu¶n trÞ hÖ thèng (root).

Víi c¸c thiÕt bÞ lu tr÷ nh ®Üa cøng tuú theo tõng lo¹i hÖ ®iÒu hµnh va lo¹i ®Üa
cøng mµ cã c¸c ký hiÖu quy ®Þnh kh¸c nhau vÒ tªn file:

VÝ dô víi ®Üa IDE, EIDE trªn Linux thÓ hiÖn díi d¹ng file sau

/dev/hd[drive][partition]

Víi ®Üa ®Çu tiªn ký hiÖu lµ hd a cho primary disk vµ b cho slave, c cho primary
secondary disk vµ d cho slave secondary. TiÕp sau ®ã lµ gi¸ trÞ sè øng víi c¸c
partition trªn mçi ®Üa.

Víi ®Üa SCSI thay ký hiÖu tªn fil lµ /dev/sd thay cho /dev/hd cßn c¸c thµnh phÇn
kh¸c t¬ng tù.

72
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

T¹o partition: §Ó t¹o partition dïng lÖnh fdisk ®Ó t¹o partion. (vÝ dô víi Linux)

# fdisk /dev/hda

C¸c lÖnh trong fdisk

p HiÖn partition hiÖn thêi

n T¹o partition míi gåm extended vµ primary partition (1-4).

t T¹o swap partition

w Ghi l¹i c¸c thay ®æi võa t¹o.

T¹o File Systems: Sau khi ®· t¹o partition th× hÖ thèng file vÉn cha ®îc s½n sµng
cho viÖc sö dung. mµ cÇn ph¶i t¹o file system. §Ó t¹o hÖ thèng file trong Linux
dïng lÖnh mke2fs (trong sun solaris dïng lÖnh newfs), mkswap t¹o swap file
system.

VÝ dô

mke2fs /dev/hda1

mkswap /dev/hda2

3. Mounting and unmounting file systems

Mounting file systems

Nh ta ®· biªt hÖ thèng file cña UNIX ®îc lu tr÷ díi d¹ng c¸c c©y th môc nhng muèn
thùc hiÖn ®îc ®iÒu nµy th× nã ph¶i ®îc mount.

Tríc khi cã thÓ mount file hÖ thèng ta cÇn chän mét ®iÓm mount. §iÓm mount lµ
mét th môc trong hÖ thèng file n¬i mµ th môc gèc bao lªn nã. UNIX gi÷ ®iÓm
mount vµ cho phÐp truy nhËp ®Õn hÖ thèng file dùa trªn quyÒn h¹n cña ngêi sö
dông hiÖn thêi. §iÓm mount cã thÓ lµ mét vÞ trÝ nµo ®ã trªn c©y th môc. CÇn
chó ý r»ng mét hÖ thèng file chØ ®îc mount trªn mét mét th môc.

§Ó mount hÖ thèng file dïng lÖnh mount có ph¸p nh sau:.

mount <option> </dev/device> </directory to mount>

73
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 /dev/device lµ tªn cña device mµ ta muèn mount.

 /directory to mount lµ th môc mount mµ hÖ thèng file mount tíi

C¸c tham sè tuú chän cña option –o cã thÓ lµ:

 rw read/write

 ro read only

 bg background mount (NÕu mount bÞ lçi nã chuyÓn sang background


vµ tiÕp tôc cè g¾ng mount cho ®Õn khi hoµn thµnh).

VÝ dô: mount -o rw /dev/hda4 /usr

LÖnh mount kh«ng tham sè sÏ hiÖn lªn tÊt c¶ c¸c file systems ®ang ®îc mount

Chi tiÕt cña lÖnh xem tµi liÖu øng víi lo¹i hÖ ®iÒu hµnh UNIX.

Unmounting file systems

§Ó bá mount hÖ thèng file dïng lÖnh umount hoÆc umountall

LÖnh umount: Bá mount mét hÖ thèng file (®iÓm mount).

umount <mount point>

VÝ dô:

umount /usr

LÖnh umountall: Bá tÊt c¶ c¸c ®iÓm mount

Automount file systems

Automount lµ kh¶ n¨ng tù ®éng mount hÖ thèng file t¹i thêi ®iÓm khëi ®éng hÖ
®iÒu hµnh. Víi kh¶ n¨ng tù ®éng cho phÐp hÖ thèng s½n sµng khi qu¸ tr×nh khëi
®éng kÕt thóc. §Ó thùc hiÖn ®îc viÖc tù ®éng mount UNIX sö dông file ®Æc
biÖt lµ /etc/fstab (/etc/vfstab díi Solaris). File nµy chøa danh s¸ch tÊt c¶ c¸c
partition cÇn mount t¹i thêi ®iÓm khëi ®éng vµ th môc cÇn ®îc mount tíi víi c¸c
tuú chän kÌm theo theo d¹ng sau:

/dev/device /dir/to/mount ftype parameters fs_freq fs_passno

74
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 dev/device ChØ device sÏ ®îc mount.

 /dir/to/mount Lµ th môc ®îc mount tíi trªn c©y th môc.

 ftype Lµ kiÓu hÖ thèng file. VÝ dô díi Solaris lµ ufs, díi Linux lµ


ext2, nfs cho NFS , swap cho swap partitions, vµ proc cho /proc file system.

 parameters Lµ biÕn tuú chän khi mount øng víi –o option.

 fs_freq §îc sö dông bëi dump ®Ó x¸c ®Þnh hÖ thèng file cÇn ®îc
dump.

 fs_passno §îc sö dông bëi ch¬ng tr×nh fsck ®Ó x¸c ®Þnh tr×nh tù kiÓm
tra ®Üa t¹i thêi ®iÓm khëi ®éng.

C¸c dßng b¾t ®Çu b»ng dÊu # lµ c¸c dßng chó thÝch.

VÝ dô vÒ file fstab díi Linux systems:

# Sample /etc/fstab file for a Linux machine

# Local mounts

/dev/sda1 / ext2 defaults 1 1

/dev/sda2 /usr ext2 defaults 1 1

/dev/sda3 /usr/data ext2 defaults 1 1

/dev/cdrom /cdrom iso9660 ro 1 1

/dev/sda4 /dos msdos defaults 1 1

/dev/sdb1 /data ext2 defaults 1 1

Mét sè kiÓu hay dïng trong Linux

 ext2 KiÓu filesystem ®îc dïng chñ yÕu trªn Linux partition.

 iso9660 KiÓu ISO 9660 filesystem ®îc dïng víi CD-ROM disks.

75
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 sysv KiÓu Nh»m hç trî cho d¹ng UNIX System V filesystem.

 msdos KiÓu DOS partition mµ Linux cã thÓ truy nhËp.

 hpfs KiÓu High Performance filesystem bëi Linux.

4. Managing disk use

§Ó biÕt c¸c th«ng tin vÒ viÖc sö dông ®Üa UNIX dïng c¸c tiÖn Ých sau:

LÖnh df: Cho biÕt th«ng tin vÒ viÖc sö dông ®Üa, dung lîng ®· ®îc sö dông vµ
cha ®îc sö dông vµ theo tû lÖ phÇn tr¨m.

df <option>

C¸c tham sè thêng dïng:

 -a HiÓn thÞ tÊt c¶ c¸c partition bao gåm c¶ swap vµ /proc.

 -i, HiÓn thÞ th«ng tin inode thay cho block.

 -k HiÓn thÞ d¹ng KB.

 -t<type>HiÓn thÞ chØ nh÷ng filesystems cã kiÓu phï hîp víi type chØ
®Þnh.

VÝ dô: df –t

Filesystem 1024-blocks Used Available Capacity Mounted on

/dev/hda3 247871 212909 22161 91% /

/dev/hda6 50717 15507 32591 32% /var

/dev/hda7 481998 15 457087 0% /local

server1:/var/spool/mail

489702 222422 218310 50% /var/spool/mail

C¸c cét th«ng tin gåm:

 Filesystem ChØ file system

 1024-blocks ChØ sè block trong file system. (Tæng dung lîng.)

76
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 Used Sè block ®· sö dông.

 Available Sè block cha sö dông.

 Capacity PhÇn tr¨m lîng ®Üa ®ang sö dông hiÖn t¹i.

 Mounted on ChØ vÞ trÝ ®îc mount trªn c©y th môc.

LÖnh du: HiÓn thÞ tæng ®Üa sö dông trªn tõng th môc hoÆc tõng file.

du <option> <directory>

C¸c tham sè thêng dïng:

 -a HiÓn thÞ sè ®Õm trªn tæng c¸c file vµ c¸c th môc.

 -b HiÓn thÞ kÝch thíc d¹ng byte.

 -c HiÓn thÞ tæng côc bé.

 -k HiÓn thÞ kÝch thíc d¹ng KB.

 -l HiÓn thÞ kÝch thíc cña tÊt c¶ c¸c file.

 -s ChØ hiÖn sè tæng.

 -x Bá qua c¸c filesystem kh¸c mµ mount vµo trong th môc hiÖn thêi.

VÝ dô: du

409 ./doc

945 ./lib

68 ./man

60 ./m4

391 ./src

141 ./intl

873 ./po

3402 .

ChØ sè lîng block ®îc sö dông bëi mçi th môc.

77
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

5. Checking file system integrity

Trong qu¸ tr×nh ho¹t ®éng hÖ thèng kh«ng tr¸nh khái diÔn ra tr¹ng th¸i mét ai ®ã
®ét ngét ng¾t ®iÖn m¸y tÝnh, hÖ thèng cÊp ®iÖn cho m¸y bÞ mÊt, mét ai ®ã
nhÊn nót reset .... c¸c hiÖn tîng nµy sÏ dÉn ®Õn hiÖn tîng th«ng tin trªn hÖ thèng
vÉn cßn tån t¹i mµ cha ®îc ghi ra ®Üa. Khi x¶y ra c¸c lçi nµy th× ta cÇn ph¶i thùc
hiÖn viÖc kiÓm tra tÝnh toµn vÑn cña hÖ thèng ®iÒu nµy lµ cÇn thiÕt nÕu nh
cÊu tróc hÖ thèng lµ kh«ng cßn ®óng. §Ó thùc hiÖn viÖc kiÓm tra vµ söa ch÷a
c¸c lçi nµy dïng lÖnh fsck.

LÖnh fsck thù hiÖn theo nhiÒu giai ®o¹n. Mçi giai ®o¹n thùc hiÖn mét nhiÖm vô
riªng vµ c¸c giai ®o¹n sau ®Òu dùa vµo kÕt qu¶ thùc hiÖn ë giai ®o¹n tríc ®ã.

fsck thùc hiÖn duyÖt b¾t ®Çu tõ superblock liªn quan ®Õn c¸c vïng disk blocks,
pathnames, directory connectivity, link reference counts, vµ vïng trèng cña blocks
vµ inodes.

C¸c giai do¹n kiÓm tra cña lÖnh fsck:

Phase 1: KiÓm tra Block vµ Size giai ®o¹n nµy kiÓm tra danh s¸ch inode, t×m c¸c
inode bÞ v« hiÖu. Lçi nµy ®îc th«ng b¸o nh sau:

UNKNOWN FILE TYPE I=inode number (CLEAR)

PARTIALLY TRUNCATED INODE I=inode number (SALVAGE)

block BAD I=inode number

block DUP I=inode number

Phase 2: KiÓm tra ®êng dÉn, giai ®o¹n nµy xo¸ bá c¸c th môc tõ c¸c bad inodes ®-
îc t×m thÊy ë giai ®o¹n 1 vµ tiÕn hµnh kiÓm tra th môc víi c¸c con trá inode mµ
bÞ vît qu¸ ph¹m vi hoÆc con trá trá tíi bad inode. Lçi nµy ®îc th«ng b¸o nh sau:

ROOT INODE NOT DIRECTORY (FIX?)

I=OUT OF RANGE I=inode number NAME=file name (REMOVE?)

UNALLOCATED I=inode number OWNER=O MODE=M SIZE=S MTIME=T


TYPE=F

78
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

(REMOVE?)

BAD/DUP I=inode number OWNER=O MODE=M SIZE=S MTIME=T TYPE=F


(REMOVE?)

Phase 3: KiÓm tra kÕt nèi, giai ®o¹n nµy ph¸t hiÖn lçi ë c¸c th môc kh«ng tham
chiÕu, b»ng c¸ch t¹o th môc lost+found nÕu cÇn vµ chuyÓn c¸c phÇn kh«ng ®óng
vµo th môc lost+found.

Phase 4: KiÓm tra ®Õm tham chiÕu, giai ®o¹n nµy sö dông th«ng tin trong giai
®o¹n 2 vµ 3 ®Ó kiÓm tra c¸c file kh«ng tham chiÕu vµ ®Õm liªn kÕt kh«ng ®óng
trªn c¸c file, directory, hoÆc file ®Æc biÖt. Th«ng b¸o nh sau:

UNREF FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T


(RECONNECT?)

LINK COUNT FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T


COUNT=X

(ADJUST?)

LINK COUNT DIR I=inode number OWNER=O MODE=M SIZE=S MTIME=T


COUNT=X

(ADJUST?)

BAD/DUP FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T


(CLEAR)

Phase 5: KiÓm tra Cylinder Groups, giai ®o¹n nµy kiÓm tra c¸c block tù do block
vµ c¸c inode cha sö dông. Nã sÏ tù ®éng söa ®æi l¹i danh s¸ch c¸c inode tù do cho
®óng nÕu cÇn thiÕt, tuy nhiªn cã c¸c yªu cÇu ®ßi ngêi qu¶n trÞ ph¶i tr¶ lêi.

What Do I Do After fsck Finishes?

LÖnh fsck:

6. Backup and restore

Xem thªm phÇn end user

79
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

B¶n th©n trong hÖ ®iÒu hµnh UNIX hç trî nhiÒu c«ng cô hç trî viÖc lu tr÷ vµ håi
phôc trªn c¸c thiÕt bÞ vË lý kh¸c khau. Nã hç trî c¸c møc sao lu vµ håi phôc gióp
cho viÖc tèi u trong c«ng t¸c sao lu vµ ®¶m b¶o viÖc qu¶n trÞ dÔ dµng.

Ngoµi c¸c lÖnh tar, cpio, dd, tuú theo hÖ ®iÒu hµnh hç trî c¸c c«ng cô kh¸c phôc
vô cho c«ng t¸c sao lu vµ håi phôc d÷ liÖu.

IX. Printer administration

Unix hç trî m¸y in c¾m trùc tiÕp trªn cæng parallel, serial còng nh hç trî cho m¸y
in m¹ng. ViÖc cÊu h×nh m¸y in t¬ng ®èi ®¬n gi¶n nhê c¸c tiÖn Ých hç trî bëi c¸c
hÖ ®iÒu hµnh. Tuy nhiªn trªn mét sè lo¹i version cò viÖc cÊu h×nh l¹i ph¶i tù lµm
b»ng tay qua lÖnh (mknod) t¬ng ®èi phøc t¹p.

Th«ng thêng c¸c cæng parallel thêng t¬ng øng víi c¸c file /dev/lp0, /dev/lp1,
hoÆc /dev/lp2 phô thuéc vµo sè cæng mµ m¸y cã.

C¸c tiÖn Ých liªn quan ®Õn printer bao gåm

/etc/printcap Chøa cÊu h×nh m¸y in .

/usr/lib/lpd KiÓm so¸t vµ cung cÊp c¸c dÞch vô in

/usr/ucb/lpr Thùc hiÖn viÖc chuyÓn c¸c print job vµo printer queue.

/usr/ucb/lpq Ch¬ng tr×nh kiÓm tra hµng ®îi in.

/usr/ucb/lprm Thùc hiÖn xo¸ c¸c print job tõ print queue.

/etc/lpc Qu¶n trÞ print job vµ printer queue.

Ch¬ng tr×nh lpd thùc hiÖn viÖc kiÓm so¸t vµ cung cÊp c¸c dÞch dÞch vô in. C¸c
th«ng tin x¸c ®Þnh cÊu h×nh gåm tªn m¸y in, cæng in, lo¹i m¸y in ... C¸c th«ng tin
nµy cã thÓ ®îc thay ®æi bëi ngêi qu¶n trÞ.

lpd [-l] [port]

Víi tham sè -l ghi l¹i c¸c th«ng tin tíi log file mçi lÇn kiÓm so¸t c¸c request.

Khi lpd nhËn ®îc print request (gäi lµ print job) c¸c trang in ®îc ®a ®Õn mét vïng
gäi lµ spool( th«ng thêng lµ th môc /usr/spool/lp). Vµ mµn h×nh in ®îc gi¶i phãng

80
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

®Õ ngêi sö dông cã thÓ thùc hiÖn c¸c c«ng viÖc kh¸c. Sau ®ã lpd sÏ thùc hiÖn
viÖc göi d÷ liÖu tõ spool ra m¸y in t¬ng øng.

ViÖc qu¶n lý printer th«ng qua tiÖn Ých lµ lpc. Nã cho phÐp ngêi qu¶n trÞ thùc
hiÖn mét sè chøc n¨ng nh hiÓn thÞ th«ng tin tr¹ng th¸i m¸y in, cho phÐp hoÆc
kh«ng cho phÐp in, cho phÐp hoÆc kh«ng cho phÐp c¸c hµng chê in, lo¹i bá c¸c
print request, thay ®æi møc ®é u tiªn trªn hµng chê in. Ngoµi ra cßn tiÕn Ých lpq
vµ lprm cho phÐp thùc hiÖn qu¶n lý c¸c hµng ®îi in.

X. Network administration

1. UUCP (Unix to Unix copy)

UUCP lµ mét nhãm c¸c lÖnh vµ c¸c dÞch vô cung cÊp dÞch vô m¹ng ®¬n gi¶n cho
phÐp ngêi sö dông truyÒn d÷ liÖu trªn UNIX tõ mét m¸y nµy sang m¸y kh¸c qua
serial port (modem) th«ng thêng dïng ®Ó truyÒn file, e-mail, ch¹y c¸c lÖnh trªn
m¸y ë xa. HiÖn nay cã nhiÒu version cña UUCP trªn c¸c hÖ ®iÒu hµnh c¸c hÖ
®iÒu hµnh UNIX tuy nhiªn chóng vÉn tu©n thñ theo quy t¾c cÊu h×nh chung cña
UUCP.

C¸c thµnh phÇn cña UUCP: C¸c lÖnh trong UUCP chia lµm hai líp: lÖnh cña ngêi
sö dông vµ c¸c lÖnh qu¶n trÞ.

C¸c ch¬ng tr×nh ngêi sö dông lµ ®îc chøa trong /usr/bin

 uucico - C«ng cô nèi kÕt c¸c m¸y tÝnh xa cho phÐp truyÒn tËp tin hay thùc
hiÖn lÖnh.

 uucp - Sao chÐp mét tËp tin tõ mét m¸y ®Õn m¸y kh¸c, uucp t¹o tËp tin d÷
liÖu vµ tËp tin lµm viÖc, xÕp hµng c¸c c«ng viÖc ®Ó truyÒn vµ gäi
uucico daemon nèi kÕt víi m¸y tõ xa.

 uustat - HiÓn thÞ tr¹ng th¸i cña yªu cÇu truyÒn ( uucp,uuto,uux) nã còng
kiÓm so¸t hµng chê truyÒn.

C¸c lÖnh qu¶n trÞ

§a sè c¸c lÖnh qu¶n trÞ lµ ë trong /usr/lib/uucp c¸c tËp tin d÷ liÖu vµ shell script lµ

81
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

ë trong /etc/uucp.

 uucleanup - Xãa th môc spool nã thêng ®îc thùc hiªn tõ shell script ®îc gäi
lµ uudemon.cleanup mµ ®îc khëi ®éng bëi cron.

 Uutry -KiÓm tra kh¶ n¨ng gäi vµ gì rèi, nã kÐo theo uucico dÓ thiÕt lËp
th«ng tin gi÷a m¸y tÝnh côc bé vµ m¸y tÝnh tõ xa.

 uucheck - KiÓm tra sù tån t¹i cña c¸c th môc ch¬ng tr×nh vµ c¸c tËp tin
support cña uucp nã cã thÓ còng kiÓm tra tËp tin Permission ®Ó kiÓm tra
ng÷ ph¸p.

Deamons Cã ba deamon trong hÖ thèng uucp. C¸c deamon nµy diÒu khiÓn
truyÒn tËp tin vµ thùc hiÖn lÖnh. Chóng còng cã thÓ ®îc ch¹y tõ shell.

 uucico- Chän thiÕt bÞ sö dông ®Ó nèi kÕt, thiÕt lËp nèi kÕt ®Õn m¸y
tÝnh tõ xa, thùc hiÖn c¸c yªu cÇu login vµ kiÓm tra chñ quyÒn, truyÒn c¸c
tËp tin d÷ liÖu, thùc thi , ®a kÕt qu¶ vµo log vµ b¸o cho ngêi sö dông bëi
mail. Khi uucico gäi m¸y tõ xa nã liªn l¹c víi uucico cña m¸y tõ xa. uucico ®-
îc gäi bëi uucp, uuto,uux vµ uusched, uutry.

 uuxqt - Thùc hiÖn c¸c yªu cÇu thùc thi tõ xa, nã sÏ kiÓm tra th môc spool
®Ó t×m tËp tin thùc thi (X.file) ®· ®îc göi tõ m¸y tõ xa. Khi tËp tin X.file
®· t×m thÊy uuxqt më nã vµ nhËn mét danh s¸ch c¸c tËp tin d÷ liÖu ®îc yªu
cÇu thùc thi. Nã sÏ kiÓm tra chñ quyÒn truy xuÊt cña c¸ac t©p tin nµy. KÕ
®ã nã ®äc tËp tin permission ®Ó kiÓm tra chñ quyÒn thùc hiÖn lÖnh ®îc
yªu cÇu. uuxqt ®îc thùc hiÖn bëi uudemon.hour shell script.

 uusched -§Þnh thêi biÓu c¸c hµng chß trong th môc spool. Tríc khi khëi
®éng uucico, uusched s¾p thø tù ngÉu nhiªn c¸c m¸y tÝnh tõ xa sÏ ®îc gäi.
uusched ®îc khëi ®éng ë thêi gian boot bëi /etc/rc nã sÏ ®îc thùc hiÖn bëi
uudemon.hour.

Khëi ®éng uucp : uucp sÏ khëi ®éng víi c¸c lÖnh trong shell script mµ quÐt vßng
c¸c m¸y tõ xa, ®Þnh thêi biÓu truyÒn vµ xo¸ c¸c log cò.

$su uucp

82
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

$crontab < /usr/lib/uudemon.crontab

C¸c file cÊu h×nh /usr/lib/uucp

Systems, Devices, Permissions, Dialers, Dialcodes

Devices Chøa c¸c th«ng tin liªn hÖ vÞ trÝ, tèc ®é cña bé gäi tù ®éng(ACU),
®êng tù ®éng vµ thiÕt bÞ m¹ng.

Format Type Line Line2 Class Dialer-Token Pairs

VÝ dô ACU cua0 - 1200 Hayes \D

Type ACU Sö dông víi modem

Direct Sö dông víi ®êng d©y trùc tiÕp

Line Tªn thiÕt bÞ vÝ dô modem /dev/cua0

Class Tèc ®é

Dialer-token pairs t¬ng øng víi lo¹i modem trong tËp tin Dialers

Dialers X¸c ®Þnh c¸ch trao ®æi ban ®Çu tríc khi truyÒn d÷ liÖu nh.VÝ dô :

Hayes =,-, "" \dA\pTE1V1X1Q0S2=255S12=255S50=2\r\c OK\r \EATDT\T\r\c


CONNECT

ý nghÜa cña c¸c kÝ tù escape

\p ngng (1/4 gi©y)

\d trÓ (2 gi©y)

\D ChØ sè ®iÖn tho¹i kh«ng biÕn ®æi bëi tËp tin Dialcodes

\T ChØ sè ®iÖn tho¹i biÕn ®æi bëi tËp tin Dialcodes

\K Thªm vµo mét BREAK

\E HiÖn thi kiÓm tra

\e CÊm hiÓn thi kiÓm tra

\r §Çu dßng

83
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

\c Kh«ng xuèng dßng

\n Xuèng dßng

Systems Chøa c¸c th«ng tin cÇn thiÕt bëi uucico ®Ó thiÕt lËp nèi kÕt víi m¸y
tõ xa. Mæi phÇn tö cña tËp tin thÓ hiÖn mét m¸y tÝnh cã thÓ ®îc gäi. VÝ dô :

Format System-Name Time Type Class Phone Login

VÝ dô eagle Any ACU 1200 555678


in:nuucp ord:okasa

System-Name -Tªn cña m¸y tõ xa.

Time - Thêi gian m¸y tõ xa cã thÓ bÞ gäi.

VÝ dô: Wk1700-0800 mäi ngµy trong tuÇn tõ 17h-8h

Login - Chøa c¸c th«ng tin login.

Dialcodes: Chøa c¸c m· ®iÖn tho¹i viÕt gän. Khu«n d¹ng nh sau:

viÕt t¾t sè

HN 014

Permissions X¸c ®Þnh chñ quyÒn login, truy xuÊt tËp tin vµ thùc hiÖn lÖnh cña
m¸y tõ xa. Mæi phÇn tö cña tËp tin lµ mét dßng cã d¹ng tªn=gi¸ trÞ. Cã thÒ cã c¸c
chñ quyÒn sau :

LOGNAME= X¸c ®Þnh c¸c m¸y cã thÓ log vµo.

MACHINE= X¸c ®Þnh c¸c m¸y tõ xa mµ m¸y côc bé cã thÓ log.

REQUEST= yes/no cÊm hay cho phÐp m¸y tõ xa nhËn c¸c tËp tin tõ m¸y côc bé.

SENDFILES=yes/no cÊm hay cho phÐp m¸y tõ xa göi c¸c tËp tin ®Õn m¸y côc bé.

READ/WRITE= X¸c ®Þnh c¸c th môc ®îc phÐp ®äc hay ghi.

VÝ dô:

READ=/var/spool/uucppublic

WRITE=/var/spool/uucppublic

84
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

NOREAD/NOWRITE X¸c ®Þnh c¸c th môc cÊm ®äc hay ghi.

COMMANDS X¸c ®Þnh c¸c lÖnh mµ m¸y tõ xa cã thÓ thùc hiÖn.

2. TCP/IP and Neworks

a) TCP/IP

TCP/IP lµ giao thøc m¹ng chuÈn ®îc hç trî trong UNIX .

Th«ng thêng khi cµi ®Æt hÖ thèng bao giê còng ®îc yªu cÇu x¸c ®Þnh c¸c th«ng
tin liªn quan ®Õn hÖ thèng nh host name, domain (nÕu host n»m trong domain),
®Þa chØ IP. Tuy nhiªn cã thÓ cÊu h×nh m¹ng sau khi cµi ®Æt b»ng c¸c tiÖn Ých.

§Æt tªn host: Cã thÓ dïng lÖnh hostname ®Ó ®Æt tªn cña host (ph¶i ngêi cã thÈm
quyÒn). Cã thÓ ®Æt tªn d¹ng tªn vïng nÕu nã n»m trong domain.

VÝ dô: hostname jac.domain

CÊu h×nh loopback driver: §Ó thiÕt lËp cÊu h×nh TCP/IP m¹ng dïng lÖnh
ipconfig

ifconfig <interface> <IP_address> netmask <mask> broadcast <address>

 interface - X¸c ®Þnh kiÓu network interface card. (VÝ dô 3Com 3C5x9 nh
elx0).

 IP_address - §Þa chØ IP g¸n cho network interface. Cã thÓ sö dông b»ng
host name cung cÊp trong /etc/hosts víi ®Þa chØ IP t¬ng øng.

 netmask mask - Lµ subnetwork mask. Cã thÓ bá qua nÕu dïng gi¸ trÞ
default.

 broadcast address - Lµ ®Þa chØ broadcast cho network. NÕu kh«ng ®Æt sÏ
lÊy gi¸ trÞ ngÇm ®Þnh.

VÝ dô: §Ó thiÕt lËp the loopback driver:

ifconfig lo 127.0.0.1

Muèn ®a ®Þa chØ loopback vµo trong kernel routing tables dïng lÖnh:

85
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

route add 127.0.0.1 hoÆc route add localhost

CÊu h×nh Ethernet Interface:Muèn thùc hiÖn cÊu h×nh víi Ethernet driver th×
mét ph¶i yªu cÇu ®ßi hái ph¶i biÕt chÝnh x¸c Ethernet driver vµ cÊu h×nh dïng
ifconfig ®Ó kernel biÕt vÒ interface vµ sau ®ã thªm route tíi c¸c m¸y trªn m¹ng
nÕu nã g¾n víi m¹ng.

VÝ dô: Ethernet device lµ /dev/elx0

ifconfig elx0 192.168.70.2 netmask 255.255.255.0

§Ó thªm thµnh phÇn trªn vµo kernel routing table ®Ó kernel biÕt vÒ ®Þa chØ
m¹ng local machine vµ göi chÝnh x¸c d÷ liÖu tíi nã dïng lÖnh.

route add -net 192.168.70.0

TCP/IP Setup Files

Khi cµi ®Æt vµ cÊu h×nh TCP/IPcã mét sè file yªu cÇu lu gi÷ cÊu h×nh liªn quan
®Õn dÞch vô cña UNIX host.

/etc/hosts - Lµ file cã chøa ¸nh x¹ host names tíi IP address t¬ng øng.

VÝ dô:
# Internet host table
# IP address hostname aliases
127.0.0.1 localhost
201.190.2.1 jade

/etc/networks - Chøa c¸c network name ¸nh x¹ tíi ®Þa chØ m¹ng IP t¬ng øng.

VÝ dô:
# Name Network Number
testnetw 201.190.2
loopback-net 127

/etc/services - Chøa c¸c dÞch vô ë tÇng TCP/IP application nh FTP, TELNET,


RLOGIN ... øng víi nã lµ c¸c port number t¬ng øng.

VÝ dô:

86
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

# assigned numbers from rfc1060


#service port/transport
tcpmux 1/tcp
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
.

/etc/protocols - Chøa c¸c sè x¸c ®Þnh IP protocol service user. C¸c th«ng tin nµy
gióp IP viÖc x¸c ®Þnh routing data tíi user protocols.

/etc/ethers – T¹o bëi hÖ thèng trong qu¸ tr×nh cµi ®Æt TCP/IP. File nµy ¸nh x¹
®Þa chØ Ethernet tíi ®Þa chØ IP. C¸c th«ng tin nµy ph¶i cã khi muèn cung cÊp
c¸c dÞch vô RARP hoÆc BOOTPD

VÝ dô:
# ether_mac_addr. hostname comments
00:00:c0:9e:41:26 violin #strings dep't
02:60:8c:15:ad:18 bass

/etc/netmasks - Chøa netmask t¬ng øng víi ®Þa chØ network IP.
#Network subnet masks
#Unless your network is subnetted, do not bother to maintain this file
#Network subnet mask
134.54.0.0 255.255.255.0
167.12.0.0 255.255.192.0

/etc/hosts.equiv - X¸c lËp quyÒn truy nhËp cña c¸c m¸y vµ c¸c user ë xa khi dïng
c¸c tiÖn Ých vÝ dô: rlogin, rcp, rsh ...

~/.rhosts T¹o trong th môc home cña user x¸c ®Þnh quyÒn truy nhËp cña user x¸c
®Þnh.

87
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

C¸c tiÖn Ých vµ c¸c dÞch vô chñ yÕu cung cÊp trªn ICP/IP

Mét sè c¸c daemon cung cÊp c¸c dÞch vô trªn Unix ®îc ®iÒu khiÓn bëi inetd.

 ftpd - Cung cÊp c¸c dÞch vô truyÒn file trªn m¸y Unix qua TCP port 20.

 telnetd - Cung cÊp c¸c dÞch vô cho phÐp cung cÊp c¸c dÞch vô cho c¸c m¸y
kÕt nèi d¹ng terminal.

 rshd - Cho phÐp thùc hiÖn c¸c lÖnh shell tõ c¸c m¸y xa.

 logind- Cho phÐp thùc hiÖn login tõ xa.

 execd - Chon phÐp thùc hiÖn c¸c lÖnh tõ c¸c m¸y ë xa.

 comsat- KiÓm so¸t c¸c mail ®Õn cung cÊp c¸c th«ng tin cho c¸c processes
mµ yªu cÇu nã thùc hiÖn.

 talkd - Cho phÐp ngêi sö héi tho¹i víi nhau qua dïng keyboard vµ screen cña
terminal ë bÊt kú ®©u trªn m¹ng.

 uucpd- Cung cÊp dÞch vô truyÒn d÷ liÖu sö dông UUCP trªn m¹ng.

 tftpd-Cung cÊp dÞch vô tftp trªn m¹ng. Hç trî kh¶ n¨ng remote boot vµ
truyÒn file.

 fingerd- KiÓm so¸t user trªn m¹ng.

 rquotad- KiÓm so¸t viÖc sö dông ®Üa cña ngêi sö dông.

 walld-Cho phÐp thùc hiÖn viÖc göi c¸c message tíi mµn h×nh cña c¸c c¸c
user trªn hÖ thèng

 rstatd This daemon returns performance statistics about this system

 cmsd-Qu¶n lý calendar trªn server.

 routed - Thùc hiÖn viÖc kiÓm so¸t RIP.

 gated- Cho phÐp thùc hiÖn nhiÒu th«ng tin vÒ route bao gåm RIP, OSPF
(Open Shortest Path First), EGP (Exterior Gateway Protocol) ...

 nfsd- KiÓm so¸t vµ cung cÊp c¸c dÞch vô NFS trªn m¹ng.

88
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 biod-(Block Input/Output Daemon). Ch¹y trªn NFS client thùc hiÖn viÖc
kiÓm so¸t qu¸ tr×nh ®äc vµ ghi d÷ liÖu trªn NFS server.

 mountd - KiÓm so¸t, cung cÊp c¸c yªu cÇu mount tõ NFS client.

 lockd - §iÒu khiÓn viÖc lock file trªn m¹ng.

 rpcbind- Cung cÊp c¸c dÞch vô RPC (Remote Procedure Calls).

 sendmail- Thùc hiÖn kiÓm so¸t, trao ®æi mail gi÷a c¸c host ( qua SMTP).

 named daemon vµ c¸c database file cho phÐp UNIX cung cÊp c¸c dÞch vô
DNS server trªn UDP port 53.

 Ngoµi ra víi c¸c thµnh phÇn më réng sau nµy c¸c hÖ ®iÒu hµnh cßn cung
c¸c daemon hç trî cung cÊp c¸c dÞch vô më réng kh¸c nh c¸c dÞch vô X-
terminal, HTTP ...

C¸c tiÖn Ých (xem trªn End user)

b) PPP

PPP lµ giao thøc ®îc sö dông t¬ng ®èi phæ biÕn trong thùc hiÖn kÕt nèi truyÒn
th«ng gi÷a c¸c m¸y hoÆc gi÷a c¸c m¹ng qua c¸c serial line. Tuy nhiªn cÊu h×nh
PPP trªn UNIX th× tíng ®èi phøc t¹p. UNIX chia c¸c PPP ra lµm hai phÇn, mét lµ
møc High-Level Data Link Control (HLDC) protocol, thùc hiÖn viÖc göi c¸c PPP
datagram gi÷a hai m¸y, vµ PPP daemon gäi lµ pppd thùc hiÖn kiÓm so¸t c¸c
protocol trªn hÖ thèng HLDC vµ thiÕt lËp c¸c biÕn truyÒn th«ng.

Khi thùc hiÖn kÕt nèi th«ng qua PPP th× ngêi sö dông kh«ng bÞ yªu cÇu nhËp c¸c
dÊu nh¾c kÕt shell hoÆc login v× phÇn nµy sÏ do PPP ®kiÓm so¸t. §Ó thiÕt lËp
kÕt nèi PPP nhÊt thiÕt loopback driver ph¶i ®îc thiÕt lËp.

Trong UNIX ®Ó t¨ng cêng tÝnh an toµn cho hÖ thèng khi thùc hiÖn kÕt nèi PPP
gi÷a c¸c hÖ UNIX cÇn ph¶i cã user ®Æc biÖt ®Ó thùc hiÖn login vµo hÖ thèng
khi thùc hiÖn kÕt nèi. User nµy kh«ng sö dông c¸c shell b×nh thêng mµ sö dông
mét ch¬ng tr×nh ®Æc biÖt ®Ó khëi ®éng vµ cÊu h×nh PPP. Ngoµi ra PPP hç trî
PPP Authentication ®Ó x¸c ®Þnh c¸c kÕt nèi trªn hÖ thèng.

89
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

VÝ dô: trong Linux lµ pppscript ( trong hÖ Unix system V dïng file aspppls ...)

ppp:*:201:51:PPP account:/tmp:/etc/ppp/pppscript

Néi dung file pppscrip nµy nh sau:

#!/bin/sh

mesg n

stty -echo

exec pppd -detach silent modem crtscts

Tríc khi PPP ho¹t ®éng nã yªu cÇu ph¶i thiÕt lËp cuéc kÕt nèi tríc ®ã tíi m¸y ë xa
tríc khi nã thùc hiÖn kiÓm so¸t kÕt nèi. §iÒu nµy cã thÓ thùc hiÖn qua ch¬ng
tr×nh thùc hiÖn kÕt nèi (chat program). Th«ng thêng sö dông qua UUCP trong file
nµy chó ý ®Õn néi dung trong file Systems.

§Ó thùc hiÖn viÖc kiÓm so¸t kÕt nèi sö dung PPP th× nhÊt thiÕt ch¬ng tr×nh
pppd daemon ph¶i ®îc gäi ch¹y.

VÝ dô: NÕu m¸y sö dông COM1 ®Ó thùc hiÖn cho kÕt nèi PPP vµ kÕt nèi ë tèc
®é 38,400 baud cã thÓ sö dông lÖnh nh sau:

pppd /dev/cua1 38400 crtscts defaultroute

Trong hÖ ®iÒu hµnh UNIX system V thêng sö dông mét script tªn lµ asppp ®Ó
khëi ®éng pppd dùa trªn c¸c file cÊu h×nh ®· ®Æt.

c) DNS

Tríc ®©y trong UNIX ®Ó gi¶i quyÕt vÊn ®Ò ¸nh x¹ t¬ng øng tªn tíi ®Þa TCP/IP
sö dông /etc/hosts. Khi thùc hiÖn c¸c kÕt nèi TCP/IP sÏ thùc hiÖn kiÓm tra trong
/etc/hosts kiÓm tra tra tªn vµ ®äc ®Þa chØ cña m¸y kÕt nèi. NÕu tªn kh«ng cã
trong file nµy th× m¸y sÏ kh«ng thÓ thùc hiÖn kÕt nèi theo tªn. Víi ph¬ng ph¸p nµy
mµ khi cÇn kÕt nèi víi nhiÒu m¸y trªn hÖ thèng th× viÖc qu¶n lý nã sÏ trë lªn rÊt
phøc t¹p. DNS ra ®êi vµ ph¸t triÓn ®Ó gi¶i quyÕt c¸c vÊn ®Ò trªn ®ång thêi nã
cßn t¹o ra c¸c kh¶ n¨ng qu¶n trÞ tªn ph©n cÊp vµ cung cÊp c¸c dÞch vô tªn vïng.
Trªn DNS bao giê cïng gåm cã hai phÝa lµ ngêi cung cÊp c¸c dÞch vô (DNS

90
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

server) vµ ngêi sö dông c¸c dÞch vô (client).

Th«ng thêng mçi mét zone thêng cã hai master name ®Ó duy tr× ho¹t ®éng cña c¶
zone lµ primary master server vµ secondary master server (backup server).

DNS Client

DNS client thùc hiÖn viÖc kÕt nèi th«ng qua c¸c DNS query ®Ó thùc hiÖn lÊy ¸c
¸nh x¹ t¬ng øng tíi ®Þa chØ ®Ých cÇn kÕt nèi. DNS query cã thÓ cã nhiÒu lo¹i.
HÇu hÕt trong sè nµy lµ c¸c query hostname ®Õn IP address. C¸c query gi¶i quyÕt
vÊn ®Òn ¸nh x¹ IP address tíi hostname lµ PTR hay pointer queries.

Ngo¹i trõ viÖc cÊu h×nh ®Ó liªn kÕt víi name server. Client th«ng thêng kiÓm tra
trong /etc/hosts file ®Ó lÊy ®Þa chØ t¬ng øng víi name cña m¸y chØ ®Þnh.

§Ó cÊu h×nh DNS client (resolver) t¹o file /etc/resolv.conf. Sö dông file nµy ®Ó
x¸c ®Þnh c¸c domain name mµ nã thuéc vµo bao gåm ®Þa chØ IP cña primary,
secondary, hoÆc cache name server. CÊu tróc file /etc/resolv.conf gåm c¸c trêng

# keyword value

VÝ dô:

domain ham.com #Domain

nameserver 198.53.18.1 #Primary name server

nameserver 198.53.18.3 #Secondary name server

DNS server

§Ó cÊu h×nh name server bao gåm t¹o c¸c database vµ startup file. Sè lîng c¸c file
nµy phô théc vµo quy m« cña tæ chøc, cÊu tróc liªn m¹ng, vµ sè domain mµ nã ®îc
uû nhiÖm qu¶n trÞ.

§Ó khëi ®éng DNS server UNIX gäi ch¹y mét in.named daemon. Ch¬ng tr×nh nµy
sÏ ®äc c¸c file cÊu h×nh trªn database file vµ thùc hiÖn c¸c dÞch vô theo cÊu h×nh
®· ®Þnh.

C¸c DNS database vµ startup file:

91
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

named.hosts File nµy x¸c ®Þnh domain mµ name server lµ ngêi cung cÊp vµ duy
tr× c¸c ¸nh x¹ tõ tªn tíi ®Þa chØ IP.

named.rev Chøa th«ng tin vÒ ¸nh x¹ ngîc ®Þa chØ IP tíi tªn.

named.local Chøa th«ng tin ®Ó gi¶i quyÕt ®Þa chØ loopback (127.0.0.1) tíi
localhost.

named.ca File cã chøa tªn vµ ®Þa chØ cña c¸c root domain server.

named.boot File ®Çu tiªn mµ named (the DNS daemon) lóc khëi ®éng vµ sö
dông nã ®Ó x¸c ®Þnh database filename, vµ vÞ trÝ cña chóng trong file system
trªn hÖ thèng còng nh lµ m¸y ë xa.

DNS Resource Records (RR)

ChuÈn DNS RFC 1033 ®Þnh nghÜa nhiÒu lo¹i resource record (RR). Mçi lo¹i t¬ng
øng víi mét khÝa c¹nh cña c¬ së d÷ liÖu chung. VÝ dô kiÓu record dïng ®Ó ¸nh x¹
tªn tíi ®Þa chØ IP t¬ng øng (A), hoÆc ¸nh x¹ ®Þa chØ tíi tªn (PTR) hoÆc sö dông
®Ó duy tr× ¸nh x¹ gi÷a c¸c domain name server (NS)...

Th«ng thêng cÊu tróc mét RFC nh sau:

[name] [ttl] class type data

 name Tªn cña ®èi tîng resource sÏ ®îc m« t¶ bëi resource record. name cã
thÓ lµ tªn host hoÆc tªn cña domain.

 Ttl Lµ gi¸ trÞ Time-to-live.

 Class X¸c ®Þnh class cña DNS record.

 Type X¸c ®Þnh kiÓu RR record. Th«ng thêng ngêi ta sö dông c¸c kiÓu
SOA, NS, A, MX vµ PTR.

 Data D÷ liÖu thùc sù cña ®èi tîng name chØ ®Þnh.

CÊu h×nh primary name server

§Ó cÊu h×nh named ch¹y vµ cung cÊp dÞch vô nh primary name server cÇn ph¶i
t¹o vµ thay ®æi c¸c file d÷ liÖu sau:

92
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

 named.hosts

 named.rev

 named.local

 named.ca

 named.boot

named.hosts Lµ file duy tr× ¸nh x¹ hostname tíi ®Þa chØ IP cho tÊt c¶ c¸c trong
zone. Muèn thùc hiÖn truy nhËp theo DNS th× named.hosts ph¶i cã chøa tªn ¸nh x¹
tíi ®Þa chØ IP cña tÊt c¶ c¸c host trªn m¹ng. Thªm vµo ®ã nã cßn chøa c¸c th«ng
tin kh¸c nh mail exchangers (hoÆc mail routers), hoÆc lo¹i CPU ...
VÝ dô: file named.hosts mµ jade lµ primary server trong domain harmonics.com:
;
; Section 1: The SOA record
;
harmonics.com. IN SOA jade.harmonics.com. root.jade.harmonics.com. (
2 ; Serial
14400 ; Refresh (4 hours)
3600 ; Retry (1hr)
604800 ; Expire ( 4 weeks )
86400 ) ; minimum TTL (time-to-live)
;
; Section 2: The following are the name server for the harmonics domain. Notice
how the second
; entry does not specify the domain name for which cello is being the name server.
This implies that
; domain name is same as one specified in previous record.
;
harmonics.com. IN NS jade.harmonics.com.
IN NS cello.harmonics.com.
;

93
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

; Section 3: The following are the mail exchangers of the domain harmonics.com
;
harmonics.com. IN MX 1 flute.harmonics.com.
IN MX 2 bass.harmonics.com.
;
; Section 4: The following records map hosts' canonical names to their
corresponding
; IP addresses
;
localhost.harmonics.com. IN A 127.0.0.1
;
tenor.harmonics.com. IN A 100.0.0.3
soprano.harmonics.com. IN A 100.0.0.4
flute.harmonics.com. IN A 100.0.0.5
xrouter IN A 100.0.0.10
cello.harmonics.com. IN A 198.53.237.2
violin.harmonics.com. IN A 198.53.237.3
bass.harmonics.com. IN A 198.53.237.4
;
; Section 5: Multihomed hosts
;
jade.harmonics.com. IN A 198.53.237.1
IN A 100.0.0.2

 Section 1 Cã chøa SOA record lµ jade.harmonics.com lµ ngêi cung cÊp


DNS server cho domain harmonics.com. File named.hosts cã thÓ chØ cã
chøa SOA record, vµ nã ph¶i lµ record ®Çu tiªn trong file.

 Section 2 Gåm c¸c NS record lµ c¸c host jade vµ cello nh lµ tªn servers cña
domain harmonics.com. Chó ý r»ng c¸c record nµy kh«ng ®îc chØ ®Þnh hai
server ®Òu lµ primary mµ ph¶i cã secondary server.

 Section 3 Gåm hai MX records x¸c ®Þnh mail exchangers chÝnh vµ phô

94
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

cho domain harmonics.com.

 Section 4 Gåm tÊt c¶ c¸c A records mµ ¸nh x¹ host name tíi ®Þa chØ IP
addresses. Khi mµ client thùc hiÖn query th× name server sÏ tr¶ l¹i ®Þa chØ
IP cho host, named quÐt c¸c A records trong named.hosts phï hîp víi tªn mµ
client yªu cÇu vµ tr¶ l¹i ®Þa chØ IP t¬ng øng víi host name.

 Section 5 T¬ng øng víi jade lµ multihomed gåm hai A record. Khi mµ
named ®îc query cho ®Þa chØ IP cña jade, hoÆc bÊt kú multihomed,
named ®¬n gi¶n lµ tr¶ l¹i tÊt c¶ c¸c ®Þa chØ mµ nã t×m thÊy.

named.rev named sö dông named.rev ®Ó gi¶i quyªt c¸c kiÓu PTR query. Nã tr¶ l¹i
host name t¬ng øng víi query lÊy ®Þa chØ IP t¬ng øng víi host trong named.rev
file. Trong named.rev file bao gåm c¶ SOA record.

VÝ dô: file 100.rev


100.in-addr.arpa. IN SOA jade.harmonics.com. root.jade.harmonics.com (
1 ;serial
14400 ; Refresh (4 hours)
3600 ; retry ( 1 hour )
604800 ; expire ( 1 week )
86400 ) ; TTL = 1 day
;
; name servers
;
100.in-addr.arpa. IN NS jade.harmonics.com.
100.in-addr.arpa. IN NS cello.harmonics.com.
;
; Reverse address mappings
;
2.0.0.100.in-addr.arpa. IN PTR jade.harmonics.com.
3.0.0.100.in-addr.arpa. IN PTR tenor.harmonics.com.
4.0.0.100.in-addr.arpa IN PTR soprano.harmonics.com.

95
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

5.0.0.100.in-addr.arpa IN PTR flute.harmonics.com.


10.0.0.100.in-addr.arpa IN PTR xrouter.harmonics.com.

Trong tÊt c¶ c¸c file named.rev phÇn ®Çu tiªn bao giê còng lµ SOA record tiÕp
sau ®ã lµ NS vµ cuèi cïng lµ PTR records.

named.local Cã chøa cÊu h×nh cña localhost øng víi ®Þa chØ IP 127.0.0.1.

VÝ dô:
0.0.127.in-addr.arpa. IN SOA jade.harmonics.com. root.jade.harmonics.com. (
1 ; serial
14400 ; refresh ( 4 hours )
3600 ; retry ( 1 hour )
604800 ; expire ( 1 week )
86400 ) ; TTL = 1 day
; name servers
;
0.0.127.in-addr.arpa. IN NS jade.harmonics.com.
0.0.127.in-addr.arpa. IN NS cello.harmonics.com.
;
; reverse address PTR mapping
;
1.0.0.127.in-addr.arpa. IN PTR localhost

named.ca §Ó n©ng cao hiÖu qu¶ cña c¸c dÞch vô DNS, ®Ó gi¶m c¸c traffic trªn
m¹ng. DNS cho phÐp server lÊy d÷ liÖu tõ cache cña nã ®Ó tr¶ lêi c¸c query tõ c¸c
client. Nã thùc hiÖn ®iÒu nµy b»ng c¸ch lu c¸c tr¶ lêi øng víi c¸c query trong bé
nhí t¬ng øng víi c¸c query mµ client yªu cÇu tíi servers ®Ó sau nµy cã thÓ lÊy nã
®Ó dïng l¹i. DNS thùc hiÖn ®iÒu nµy b»ng cÊu h×nh trong file named.ca t¬ng
øng víi c¸c domain kh¸c. TÊt c¶ th«ng tin cã chøa trong named.ca file ®îc sö dông
®Ó khëi ®éng c¸c cache buffer trªn DNS server mmçi khi named
deamon(in.named) khëi ®éng. Th«ng thêng trong named.ca file bao gåm c¸c th«ng
tin vÒ c¸c root server v× nh÷ng th«ng tin nµy thêng æn ®Þnh trong thêi gian dµi.

96
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

VÝ dô:
;
; Section 1: NS records for the root domain servers
;
. 99999999 IN NS A.ROOT-SERVERS.NET
99999999 IN NS B.ROOT-SERVERS.NET
99999999 IN NS C.ROOT-SERVERS.NET
99999999 IN NS D.ROOT-SERVERS.NET
99999999 IN NS E.ROOT-SERVERS.NET
99999999 IN NS F.ROOT-SERVERS.NET
99999999 IN NS G.ROOT-SERVERS.NET
99999999 IN NS H.ROOT-SERVERS.NET
99999999 IN NS I.ROOT-SERVERS.NET
;
; Section 2: Root servers A records
;
A.ROOT-SERVERS.NET 99999999 IN A 198.41.0.4
B.ROOT-SERVERS.NET 99999999 IN A 128.9.0.107
C.ROOT-SERVERS.NET 99999999 IN A 192.33.4.12
D.ROOT-SERVERS.NET 99999999 IN A 128.8.10.90
E.ROOT-SERVERS.NET 99999999 IN A 192.203.230.10
F.ROOT-SERVERS.NET 99999999 IN A 192.5.5.241
G.ROOT-SERVERS.NET 99999999 IN A 192.112.36.4
H.ROOT-SERVERS.NET 99999999 IN A 128.63.2.53
I.ROOT-SERVERS.NET 99999999 IN A 192.36.148.17

named.boot: T¹i thêi ®iÓm khëi ®éng DNS server lÊy c¸c th«ng tin tham chiÕu
trong named.boot file ®Ó lÊy c¸c th«ng tin x¸c ®Þnh cÊu h×nh dÞch vô DNS lµ
primary, secondary, hoÆc cache server. §ång thêi x¸c ®Þch c¸c DNS database file
bao gåm named.hosts, named.rev, named.ca vµ named.local.

VÝ dô: VÒ file named.boot nã sö dông ®Ó cÊu h×nh jade nh primary name server:

97
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

directory /etc/named

primary harmonics.com named.hosts

primary 100.in-addr.arpa 100.rev

primary 237.53.198.in-addr.arpa 198.53.237.rev

primary 0.0.127.in-addr.arpa 127.localhost

cache . named.ca

Mçi dßng trong file lµ dßng x¸c ®Þnh cÊu h×nh cña DNS server mµ DNS
deamon(in.named) ®äc mçi khi nã khëi ®éng.

 Tõ kho¸ directory ë dßng ®Çu tøc DNS deamon sö dông default location mµ
tÊt c¶ c¸c DNS database file lu trong nã /etc/named.

 Dßng 2, 3, 4 víi tõ kho¸ primary nãi r»ng ®ã lµ c¸c DNS server lµ cung cÊp
c¸c dÞch vô DNS øng víi domain x¸c ®Þnh.

 Dong cuèi cÊu h×nh server thùc hiÖn cache server cho c¸c root domain. C¸c
th«ng tin chi tiÕt trong named.ca.

CÊu h×nh secondary name server

Secondary name server lµ server mµ nhËn c¸c d÷ liÖu t¬ng øng víi zone tõ primary
server. Secondary server kh«ng cã c¸c named.hosts vµ named.rev file riªng cña nã.
Thay vµo ®ã khi khëi ®éng secondary server yªu cÇu primary server truyÒn c¸c
b¶n copy cña c¸c file nµy. Sau ®ã secondary server khëi ®éng víi néi néi dung cÊu
h×nh dùa trªn file nã nhËn ®îc.

ChØ cã mét sè thay ®æi trong file named.boot cña secondary DNS server so víi
primary server vÝ dô:
directory /usr/lib/named
secondary harmonics.com 100.0.0.2
secondary 100.in-addr.arpa 100.0.0.2
secondary 237.53.198.in-addr.arpa 100.0.0.2
primary 0.0.127.in-addr.arpa named.local

98
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

cache . named.ca

Trong named.boot bao gåm hÇu hÕt lµ c¸c dßng secondary thay cho primary. Dßng
thø hai chØ ra r»ng cÊu h×nh nh mét secondary server víi domain harmonics.com,
vµ thùc hiÖn copy tÊt c¶ c¸c d÷ liÖu liªn quan tõ server víi ®Þa chØ IP 100.0.0.2.
Dßng 3, 4 cÊu h×nh named nh lµ secondary server cho reverse domains 100.in-
addr.arpa, vµ 237.53.198.in-addr.arpa.

Dßng 5 cµ 6 chøa c¸c th«ng tin liªn quan ®Õn local filenames. C¶ hai file
named.local vµ named.ca rÊt Ýt khi thay ®æi néi dung.

Secondary server ®îc khëi ®éng gÇn gièng nh primary server. Khi host ch¹y ë møc
2 t¹i thêi ®iÓm boot, c¸c startup scripts kiÓm tra sù tån t¹i cña named.boot file.
NÕu nã tån t¹i th× tuú theo cÊu h×nh mµ nã thùc hiÖn c¸c thao t¸c tiÕp theo.

Trong thùc tÕ sÏ x¶y ra trêng hîp khi secondary server khëi ®éng mµ primary
server kh«ng s½n sµng. DNS cho phÐp cÊu h×nh c¸c ®Þa chØ IP thay thÕ trong
lÖnh secondary tõ c¸c server cã thÓ cã chøa c¸c zonal data, vµ cÊu h×nh server duy
tr× c¸c b¶n copy cña file.

VÝ dô:

secondary harmonics.com 100.0.0.2 100.0.0.4

Nã cã thÓ c¶i tiÕn b»ng c¸ch cho phÐp secondary name server duy tr× c¸c b¶n
copy cña c¸c file nhËn ®îc. B»ng c¸ch nµy secondary sÏ lu«n cã c¸c b¶n copy cña
zonal data. Tuy nhiªn d÷ liÖu nµy sÏ ®îc kiÓm tra qu¸ h¹n ®îc ghi trong SOA
record. NÕu primary server ®îc t×m thÊy trong zone th× secondary server sÏ yªu
lÊy l¹i c¸c th«ng tin vµ bá c¸c dÞch vô tríc ®ã.

§Ó cho phÐp named sö sö dông copy trong cét cuèi cïng cña tõ kho¸ secondary
chØ tªn file mµ d÷ liÖu sÏ copy.

VÝ dô:
directory /usr/lib/named
secondary harmonics.com 100.0.0.2 named.hosts
secondary 100.in-addr.arpa 100.0.0.2 100.rev

99
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

secondary 237.53.198.in-addr.arpa 100.0.0.2 198.53.237.rev


primary 0.0.127.in-addr.arpa named.local

Dßng directory /usr/lib/named chØ ra r»ng sö dông datafile trong th môc


/usr/lib/named.

CÊu h×nh cache only server

Cache-only server kh«ng dùa vµo c¸c database file cña nã. Cache-only server chØ l-
u c¸c th«ng tin t¬ng øng víi c¸c query mµ ®îc sö dông cho sau nµy nÕu cã thÓ.

§Ó cÊu h×nh Cache-only server. Thªm vµo named.boot dßng lÖnh sau:
;
; Cache-only server for the harmonics.com domain
;
primary 0.0.127.in-addr.arpa /usr/lib/named/named.local
cache . /usr/lib/named/named.ca
;
LÖnh nslookup: Cho phÐp ch¹y chÕ ®é interactive ®Ó thùc hiÖn kiÓm tra ho¹t
®éng cña dÞch vô DNS.

 Sö dông nslookup ®Ó query local server

 Sö dông nslookup ®Ó query remote server

 Sö dông nslookup ®Ó download DNS database

Sö dông nslookup ®Ó Query Local Server

Ta cã thÓ sö dông nslookup ®Ó kiÓm tra c¸c server míi, c¸c thay ®æi vÒ cÊu
h×nh trªn server vµ ®Ó x¸c ®Þnh c¸c sù cè ®èi víi dÞch vô DNS.

§Ó thùc hiÖn ®îc ®iÒu nµy ph¶i login vµo ngêi qu¶n trÞ m¹ng (root) vµ sö dông
lÖnh nslookup. NgÇm ®Þnh lµ nslookup tr¶ c¸c tíng øng víi c¸c name query (¸nh x¹
name-to-address).

VÝ dô:
# nslookup

100
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Default Server: jade.harmonics.com


Address: 100.0.0.2
> cello
Server: jade.harmonics.com
Address: 100.0.0.2
Name: cello.harmonics.com
Address: 198.53.237.2

Sö dông nslookup ®Ó Query Remote Server

nslookup cã thÓ sö dông ®Ó thùc hiÖn c¸c query tíi c¸c remote server trªn m¹ng.
Remote servers cã thÓ trªn cïng m¹ng hoÆc cã thÓ ë ®©u ®ã trªn Internet. §iÒu
nµy cho phÐp kiÓm tra c¸c sù cè vÒ dÞch vô DNS trªn bÊt kú c¸c DNS server nµo.
VÝ dô: dïng nslookup qua host jade (primary server) ®Ó query cello (secondary
server) cho ®Þa chØ cña soprano
# nslookup
Default Server: jade.harmonics.com
Address: 198.53.8.1
> soprano cello.harmonics.com
Server: cello.harmonics.com
Address: 198.53.237.2
Name: soprano.harmonics.com
Address: 100.0.0.4

Sö dông nslookup ®Ó Download DNS Database

nslookup cã thÓ thùc hiÖn ®Ó truyÒn d÷ liÖu DNS trùc tiÕp ra c¸c ®Çu ra chuÈn
nh mµn h×nh hoÆc nh file.

VÝ dô:
# nslookup
Default Server: jade
Address: 0.0.0.0
> ls harmonics.com

101
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

[jade]
harmonics.com. server = jade.harmonics.com
jade 198.53.8.1
harmonics.com. server = cello.harmonics.com
cello 198.53.237.2
tenor 100.0.0.3
soprano 100.0.0.4
localhost 127.0.0.1
harmonics server = jade.harmonics.com
jade 198.53.8.1
soprano 100.0.0.4
xrouter 10.0.0.10
cello 198.53.237.2
> exit
#

d) NIS (Network Information Service)

Víi c¸c m¹ng lín vµ kÕt nèi trªn nhiÒu m¸y th× mçi m¸y ph¶i t¹o c¸c account riªng
nÕu nh muèn truy nhËp. Víi viÖc t¹o nhiÒu c¸c account trªn mét hÖ thèng nh vËy
sÏ dÉn ®Õn viÖc gÆp rÊt nhiÒu khã kh¨n trong c«ng t¸c qu¶n trÞ vµ sö dông.

NIS lµ dÞch vô m¹ng (ph¸t triÓn Yellow Pages protocol) cung cÊp directory
service, ®¸p øng viÖc qu¶n trÞ tËp trung trªn c¸c m¹ng lín. Nã lµ cho phÐp thùc
hiÖn c¸c truy nhËp ph©n t¸n trªn hÖ thèng m¹ng sö dông quyÒn truy nhËp th«ng
qua mét trung t©m lµ NIS master (hay ypmaster) ®Ó x¸c nhËn quyÒn truy nhËp.
Trªn mét m¹ng lín th«ng thêng ngêi ta cã thÓ thiÕt lËp thªm c¸c slaves (hay
ypslaves) ®Ó thùc hiÖn t¹o thµnh c¸c m¸y dù phßng (lu toµn bé th«ng tin vÒ
quyÒn truy nhËp trªn toµn hÖ thèng tõ master). Trong trêng hîp master server gÆp
sù cè slave cã thÓ thùc hiÖn chøc n¨ng thay thÕ.

NIS lu gi÷ tÊt c¶ c¸c th«ng tin trong “maps" mçi map øng víi mét vïng trªn network
®iÒu nµy cho phÐp mét vµi groups sö dông chung mét NIS master nhng l¹i cã

102
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

quyÒn truy nhËp kh¸c nhau. NIS map kh«ng t¬ng øng víi DNS domain mµ nã cho
phÐp nhiÒu mÒm dÎo h¬n trong viÖc cÊu h×nh. Maps bao gåm c¸c record ghi díi
d¹ng ASCII.

Thµnh phÇn cña NIS bao gåm:

 domain

 maps

 Daemon

ypser Server process

ypbind Liªn kÕt c¸c process

ypxfrd Daemon truyÒn d÷ liÖu liªn kÕt tèc ®é cao.

roc.ypupdated Thùc hiÖn cËp nhËp d÷ liÖu khi d÷ liÖu map thay ®æi.

in.named Thùc hiÖn dÞch vô DNS (optional)

 Utilities

ypcat LiÖt kª d÷ liÖu trong map

ypwich HiÖn tªn NIS server vµ map server

ypwatch T¹o key øng víi gi¸ trÞ trong map

ypinit Cµi ®Æt vµ x©y dùng NIS database

yppoll LÊy c¸c sè thø tù tõ server

 C¸c tiÖn Ých kh¸c

yppush ChuyÓn d÷ liÖu tõ master tíi slave.

ypset §Æt liªn kÕt thùc sù tíi server.

ypxfr TruyÒn d÷ liÖu tõ master tíi slave víi tèc ®é lín.

makedbm T¹o dbm file cho mét NIS map

Th«ng thêng NIS server cã thÓ hç trî mét vµi map files th«ng thêng lµ c¸c file
chuÈn trªn UNIX nh group, hosts, networks, passwd, protocols, rpc, services sau ®ã

103
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

nã ®îc chuyÓn thµnh c¸c file t¬ng øng vÝ dô:

/etc/group group.byname, group.bygid

/etc/hosts hosts.byname, hosts.byaddr

/etc/passwd passwd.byname, passwd.byuid

TÊt c¶c c¸c file nµy ®îc lu díi khu«n DBM gäi lµn gdbm. Cã thÓ sö dông tiÖn Ých
ypmakedbm ®Ó t¹o database file cho NIS.

3. NFS (Network File System)

Mét hÖ thèng sö dông trªn c¬ së m¹ng UNIX víi kh¶ n¨ng xö lý ph©n t¸n vµ
client/server. Trªn m¹ng gåm cã nhiÒu workstation kÕt nèi víi hÖ thèng m¸y chñ vµ
kÕt nèi gi÷a c¸c workstation víi nhau. NhiÒu øng dông lín cã thÓ ®îc lu trªn c¸c
server. Cã mét sè tiÖn Ých cho phÐp truy nhËp tíi c¸c file ë xa nhng chØ cho phÐp
thùc hiÖn c¸c truyÒn file hoÆc d¹ng terminal. §Ó tÝch hîp hÖ thèng trªn m¹ng cho
phÐp truy nhËp tµi nguyªn ë xa UNIX ®a ra dÞch vô NFS.

NFS cho phÐp thùc hiÖn viÖc ®äc vµ ghi c¸c file trªn NFS servers. ViÖc truy
nhËp tõ c¸c client tíi NFS servers cã thÓ thùc hiÖn th«ng qua ¸nh x¹ (mount) nã
®Õn mét th môc trªn m¸y côc bé ( gäi lµ ®iÓm "mount"). Sau ®ã viÖc truy xuÊt
®Õn th môc cña m¸y tõ xa ®îc thùc hiÖn b»ng c¸ch truy xuÊt trªn m¸y côc bé qua
®iÓm "mount".

VÝ dô: mount -F nfs –o ro Remote:/export/app /temp/data

Khi sö dông lÖnh nµy client kiÓm tra remote machine xem cã quyÒn truy nhËp th
môc hay kh«ng. NÕu cã quyÒn th× nã göi mét th«ng tin ®iÒu khiÓn sö dông ®Ó
®Þnh híng tÊt c¶ c¸c yªu cÇu truy nhËp tõ client. Tr¬ng tr×nh thùc hiÖn viÖc
kiÓm so¸t vµ cung cÊp c¸c dÞch vô lµ nfsd. Trong hÖ ®iÒu hµnh UNIX mét m¸y
cã thÓ võa lµ NFS server võa lµ client.

ViÖc sö dông c¸c dÞch vô NFS gióp cho viÖc qu¶n trÞ tËp trung trªn hÖ thèng lín
®îc thuËn lîi h¬n (nhÊt lµ trong c¸c c«ng t¸c sao lu vµ håi phôc, qu¶n trÞ c¸c øng
dông ...)

104
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

NFS server

Ho¹t ®éng cña NFS trªn server ®îc ®iÒu khiÓn bëi c¸c deamon lµ rpc.mountd,
nfsd vµ file cÊu h×nh thiÕt lËp danh s¸ch c¸c th môc mµ client cã thÓ thùc hiÖn
mount trong file /etc/exports. File /etc/exports ®îc ®äc mçi lÇn mountd daemon
nhËn ®îc yªu cÇu mount th môc.

VÝ dô:

# /etc/exports for merlin

/usr/database/data chatton(rw) big_roy (rw) wizard (rw)

/usr/book chatton(rw) wizard (ro)

/usr/bin/bigapp big_roy(rw) wizard (ro)

/usr/ftp (ro)

Muèn thay ®æi tËp tin /etc/exports ph¶i cã quyÒn superuser trªn m¸y server. Sau
khi thay ®æi ®Ó cËp nhËt l¹i th«ng tin cho server sö dông lÖnh share:

NFS client

Client truy xuÊt c¸c tËp tin trªn server b»ng c¸ch mount c¸c th môc mµ server xuÊt.
Khi client mount mét th môc trªn server ®ã lµ mét qu¸ tr×ng sö dông chuçi lÖnh gäi
thñ tôc tõ xa (Remote Procedure Call) cho phÐp client truy xuÊt ®Õn th môc trªn
server. Th«ng tin nµy ®îc deamon rpc.mountd xö lý vµ x¸c ®Þnh client ®îc phÐp
hay kh«ng ®îc phÐp truy xuÊt ®Õn c¸c th môc cña server. TiÕn tr×nh client t×m
server xuÊt ra c¸c th«ng tin mµ client cÇn vµ sau ®ã thiÕt lËp ®êng truyÒn gi÷a
client vµ server gäi lµ binding. Sù rµng buéc NFS x¶y ra trong suèt qu¸ tr×nh client
mount mét th môc tõ xa. ViÖc mount th môc tõ xa cã thÓ ®îc thùc hiÖn khi khëi
®éng hoÆng th«ng qua lÖnh mount hay c¬ chÕ automounter. TËp tin /etc/fstab
liÖt kª c¸c th môc mµ client mount trong khi khëi ®éng. Víi automounter client cã
thÓ tù ®éng mount c¸c th môc trong qu¸ tr×nh lµm viÖc mµ kh«ng cÇn ph¶i gäi
lÖnh mount.

105
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

4. Mail

Trong hÖ ®iÒu hµnh Unix server thêng hç trî hai thµnh phÇn gåm Mail User
Agent (MUA-mail, mailx elm) vµ Mail Transport Agent (MTA -sendmail). Víi c¸c
thµnh phÇn nµy ngêi göi c¸c message cã thÓ thùc hiÖn viÖc so¹n, göi c¸c mesage
tíi c¸c user trªn c¸c m¸y vµ ®äc c¸c message.

Víi MTA cho phÐp thùc hiÖn viÖc x¸c ®Þnh ®êng sÏ göi message dùa theo ®Þa
chØ cña ngêi nhËn vµ chuyÓn nã vµo mailbox cña ngêi nhËn. UNIX hç trî viÖc
truyÒn mail qua m¹ng TCP/IP hoÆc qua dial-up sö dông UUCP vµ sö dông SMTP
trong ®Þnh d¹ng mail (Simple Mail Transfer Protocol ).

Ch¬ng tr×nh sendmail cã thÓ ®îc cÊu h×nh lµm mail router, final delivery agents,
SMTP client, SMTP-server tuú theo cÊu h×nh cña ngêi qu¶n trÞ.

sendmail nh Mail Router

sendmail cã thÓ thùc hiÖn chøc n¨ng nh lµ mail router tøc lµ nã cã thÓ lÊy letter,
xem xÐt ®Þa chØ ngêi nhËn vµ quyÕt ®Þnh c¸ch tèt nhÊt ®Ó göi nã.

§Çu tiªn sendmail x¸c ®Þnh mét sè th«ng tin nã cÇn nh thêi gian vµ tªn cña m¸y chñ
mµ nã ®ang ch¹y. Nhng viÖc cÊu h×nh nã nh thÕ nµo l¹i phô théc vµo cÊu h×nh
cña ngêi qu¶n trÞ trong file sendmail.cf. C¸c th«ng tin trong sendmail.cf sÏ x¸c
®Þnh ph¬ng ph¸p ®iÒu khiÓn mail vµ ®êng ®i cña mail sÏ ®îc göi. .

sendmail nh MTA-Client (Sender) vµ Server (Receiver) SMTP

sendmail cã thÓ thùc hiÖn chøc n¨ng MTA víi SMTP protocol. Bëi v× SMTP lµ
giao thøc kÕt nèi ®Þnh híng lu«n cã c¸c client vµ server. SMTP client göi letter tíi
SMTP server qua SMTP port.

sendmail cã thÓ lµ mét SMTP client hoÆc mét SMTP server. Khi ch¹y nã víi chøc
n¨ng MUA nã sÏ trë thµnh SMTP client. Khi hÖ thèng khëi ®éng vµ ch¹y nã ë d¹ng
daemon mode nã cã thÓ thÓ hiÖn nh lµ mét SMTP server nhËn c¸c mail ®Õn.

106
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

CÊu h×nh sendmail

5. UNIX client

Trong hÖ thèng viÖc chän c¸c client phï hîp còng lµ mét biÖn ph¸p lµ t¨ng hiÖu
qu¶ sö dông hÖ thèng. Tuy nhiªn ngêi ta cã thÓ chén lÉn c¸c lo¹i client trªn mét
m¹ng.

Gåm mét sè c¸c lo¹i client sau:

Diskless clients—Lµ client kh«ng cã ®Üa riªng cña nã. Thùc hiÖn viÖc khëi ®éng
th«ng qua m¹ng nªn ®ßi hái trªn m¹ng ph¶i cã bootp server vµ NFS server cung cÊp
c¸c dÞch vô vÒ khëi ®éng m¹ng vµ ®Üa cho client. V× diskless client kh«ng cã
®Üa riªng vµ khëi ®éng tõ m¹ng cho nªn nã ®ßi hái viÖc sö dông mét loùng tµi
nguyªn lín trªn c¸c server

Dataless clients—Lµ c¸c client cã phÇn ®Üa riªng cña nã nhng vÉn sö dông c¸c
dÞch vô, c¸c tiÖn Ých cung cÊp trªn m¹ng. Nã kh«ng thÓ tù boot ®îc mµ ph¶i boot
tõ m¹ng. Tuy nhiªn do cã phÇn ®Üa riªng cho nªn viÖc ®ßi hái sö dông ®Üa trªn
m¹ng kh«ng lín nh diskless client.

Standalone system - Lµ hÖ thèng cã phÇn ®Üa riªng cña nã, cã thÓ tù khëi ®éng
kh«ng ®ßi hái c¸c dÞch vô khëi ®éng trªn m¹ng. NÕu kÕt nèi vµo m¹ng nã cã thÓ
sö dông c¸c dÞch vô cña m¹ng mµ ®îc cung cÊp bëi c¸c server.

Time sharing system. – Lµ hÖ thèng víi standalone system vµ c¸c terminal kÕt nèi
víi nã th«ng qua trùc tiÕp c¸c serial line hoÆc qua modem. C¸c terminal kh«ng cã
disk, printer, vµ file vµ CPU riªng cña nã. Mµ nã sö dông chia sÎ c¸c tµi nguyªn nµy
víi server.

Ngoµi c¸c hÖ thèng ch¹y trªn c¬ së hÖ ®iÒu hµnh Unix. C¸c Unix server cßn hç trî
c¸c kÕt nèi tõ c¸c client sö dông c¸c hÖ ®iÒu hµnh kh¸c kÕt nèi víi nã th«ng qua
c¸c dÞch vô TCP/IP, X-terminal, SMTP ...

Qu¶n trÞ c¸c client: ViÖc qu¶n trÞ quyÒn truy nhËp trªn hÖ thèng (xem phÇn trªn
) bao gåm phÇn qu¶n trÞ quyÒn ngêi sö dông truy nhËp tªn hÖ thèng, qu¶n trÞ
viÖc sö dông tµi nguyªn nh ®Üa, m¸y in, DNS, ...

107
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX

Tuy nhiªn víi c¸c client yªu cÇu c¸c dÞch vô khëi ®éng tõ server th× ®ßi hái ph¶i cã
mét vïng d÷ liÖu ®îc tæ chøc theo cÊu tróc cÇn thiÕt phôc vô cho ho¹t ®éng cña
c¸c client nµy. Trªn ®ã chøa c¸c th«ng tin vÒ khëi ®éng hÖ thèng, vÒ cÊu h×nh
m¹ng, vÒ ®Þnh ngi· m«i trêng ...§Ó thùc hiÖn viÖc tæ chøc nµy, mét sè hÖ ®iÒu
hµnh UNIX cung cÊp c¸c tiÖn Ých cho phÐp t¹o vµ xo¸ c¸c phÇn th«ng tin nµy.

108

You might also like