Professional Documents
Culture Documents
1
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
2
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
3
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn 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.
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
5
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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:
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)
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.
6
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü §a ch¬ng
ü B¶o mËt
ü HÖ më
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
7
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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íi ngêi sö dông hÖ thèng, ta cã thÓ chia lÖnh thµnh c¸c nhãm sau:
8
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
cmd1 | cmd2 §Çu ra cña lÖnh cmd1 thµnh ®Çu vµo cña lÖnh cmd2
4. Desktop:
mesg CÊm/ cho phÐp hiÓn thÞ th«ng b¸o trªn mµn h×nh (bëi write/ hello)
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
wall Göi th«ng b¸o ®Õn mµn h×nh ngêi sö dông hÖ thèng
9
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
more HiÖn néi dung tËp tin tr×nh bµy díi d¹ng nhiÒu trang
uncompress Më nÐn.
6. In Ên
7. Th tÝn
mailx
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
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
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
cpio Lu tr÷ vµ håi phôc d÷ liÖu ra c¸c thiÕt bÞ lu tr÷
ping KiÓm tra sù tham gia cña c¸c nót trªn m¹ng
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 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
11
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
HÖ thèng sÏ yªu cÇu nhËp mËt khÈu cña ngêi sö dông root
uname <option>
who <option>
VÝ du: $ who
man <command>
12
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
LÖnh echo: HiÓn thÞ dßng ký tù hay trÞ cña biÕn lªn mµn h×nh.
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 ...)
$echo $PATH
setcolor <option>
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:
13
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
§ê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.
NhËn xuÊt cña ls vµ göi nã ®Õn lÖnh sort ®Ó s¾p thø tù.
Trong Unix c¸c lÖnh ®êng èng cã thÓ kÕt hîp víi ®æi híng.
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ô:
4. Desktop:
VÝ dô:
$ bc
x=5
10*x
50
14
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
^d
$ 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
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
$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)
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
15
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
write <user>
Hello <user>
VÝ dô:
$write username
^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
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
Esc
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
16
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
vi -r tËp tin Phôc håi tËp tin sau khi hÖ thèng treo
17
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
LÖnh cd: Sö dông lÖnh ®Ó thay ®æi th môc lµm viÖc hiÖn hµnh.
cd [directory]
ChuyÓn ®Õn mét th môc con cña th môc hiÖn hµnh: $cd ccs
18
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
-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.
-t Sö dông víi –u s¾p xÕp ®Çu ra theo time thay cho tªn.
VÝ dô: $ls -F
bin/ chmod*
etv/ temp
$ls -l
-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.
$mkdir -p /usr/tam2/duc
19
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
$rmdir dung
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µ:
20
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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Þ háng nÆng.
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:
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:
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:
21
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
sau khi thùc hiÖn Hard link dïng lÖnh ls –l sÏ hiÓn thÞ nh sau:
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:
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 nhê network ports. Dïng lÖnh ls -l socket file hiÖn nh sau:
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:
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:
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:
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
22
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
DÊu (*) ®¹i diÖn cho mét, nhiÒu hoÆc kh«ng ký tù nµo.
[...] ®¹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:
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:
mv <option> <old><new>
-i NÕu file ®∙ cã th× lÖnh sÏ hái cã ghi ®Ì lªn file hay kh«ng.
23
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
VÝ dô: Thay ®æi tªn cña tËp tin ë th môc hiÖn hµnh:
LÖnh ln: Sö dông lÖnh ln ®Ó g¸n thªm 1 tªn míi cho 1 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
$rm thu
-i NÕu file trªn ®Ých ®∙ cã th× sÏ ®îc hái cã ghi ®Ì hay kh«ng
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 ®ã
-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.
24
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
-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.
-newer <fn> T×m file bÞ thay ®æi gÇn h¬n so víi fn.
-size <n> [c] T×m file cã kÝch thíc n blocks (c chØ ra character –byte)
-depth Lu«n ®óng (cho phÐp t×m tÊt c¶ c¸c files trªn directory).
/usr/tam/thu
LÖnh grep: T×m kiÕm chuçi v¨n b¶n bªn trong tËp tin
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.
-h Bá tªn file kh«ng hiÖn lªn t¹i dßng cã chøa mÉu t×m thÊy.
-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.
25
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
VÝ dô: T×m chuçi ký tù "mail" trong tËp tin thu: $grep ‘ngan hang’ thu
-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
LÖnh compress: Thùc hiÖn viÖc nÐn d÷ liÖu. File t¹o ra tù ®éng cã ®u«i .Z
6. In Ên
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.
26
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
lpstat <option>
-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.
-v <pr> HiÖn tªn m¸y in vµ tªn ®êng dÉn tíi thiÕt bÞ t¬ng øng.
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.
27
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Göi th : §a vµo lÖnh mail víi ®Þa chØ cña ngêi sö dông.
<th«ng b¸o>
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>
28
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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.
29
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
-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>
-a In tÊt c¶ th«ng tin vÒ process trõ c¸c process kh«ng t¬ng øng víi terminal.
LÖnh sleep: Ngng ho¹t ®éng cña tiÕn tr×nh trong mét kho¶ng thêi gian.
sleep <time>
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ô:
cmd2>file2&
wait
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:
30
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
MËt khÈu
Chó thÝch
Tªn ch¬ng tr×nh cho ch¹y lóc b¾t ®Çu lµm viÖc
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:
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:
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).
31
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Read (r) 4 4 4
Write (w) 2 2 2
Execute (x) 1 1 1
Total 7 7 7
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.
$ls -a 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.
32
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
$ls -a 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
$cat test
...
^d
$ls -l test
LÖnh chmod: Thay ®æi quyÒn h¹n truy nhËp tËp tin
33
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§Ó 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).
VÝ dô:
$ls -l test
$ls -l test
-rwxr-xr-- .....
g: nhãm (group)
o: chung (other)
a: tÊt c¶ (all)
To¸n tö:
+: thªm quyÒn
-: bít quyÒn
QuyÒn:
r: ®äc (reading)
w: ghi (writting)
-rwxr-xr-- .....
34
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
$chmode g +w test
$ls -l test
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 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÷.
option =[key]<sub>
Key c T¹o lu tr÷ míi vµ thùc hiÖn b¾t ®Çu ghi tõ ®Çu.
35
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
r File lu tr÷ ®îc ghi vµo vih trÝ cuèi cña thiÕt bÞ 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.
f Sö dông c¸c ®èi sè thay cho c¸c gi¸ trÞ ngÇm ®Þnh.
cd /usr/contrib
LÖnh cpio: Lu tr÷ vµ håi phôc d÷ liÖu ra c¸c thiÕt bÞ lu tr÷ chuÈn
c Ghi thªm phÇn header phßng trêng hîp dïng trªn c¸c m¸y kh¸c.
36
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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= ]
VÝ dô:
dd if=/dev/diskette0 of=/mnt/abc.xx
dd if=/mnt/abc.xx of=/dev/diskette0
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>
VÝ dô:
# netstat –r
37
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Routing Table:
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>
ftp <dest>
Muèn debuge lÖnh ftp dïng thªm option -d (vÝ dô: ftp -d ftp.ha.com)
38
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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:
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).
hostname:filepath
user@hostname:filepath
user@hostname.domain:filepath
39
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Lµ lÖnh ®îc gäi thùc hiÖn cã tÝnh chÊt ®¬n nh d¹ng sau:
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
& LÖnh sau kh«ng cÇn ph¶i ®îi lÖnh tríc kÕt thóc thùc hiÖn.
| SÏ lÊy ®Çu ra cña lÖnh tríc thµnh ®Çu vµo cña lÖnh sau:
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.
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.
40
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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:?message} NÕu biÕn kh«ng ®Æt gi¸ trÞ th× message sÏ ®îc in ra ®Çu
ra lçi
chuÈn.
VÝ dô:
Hello
41
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Hello there
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.
$? 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,
# restoreany
cd $WORKDIR
cpio -i $* </dev/rmt0
C¸c file file1 file2 file3 sÏ ®îc restore tõ thiÕt bÞ lu tr÷
VÝ dô:
$1 = -r $2 = file1 $3 = file2
shift
42
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
$1 = file1 $2 = file2
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 ...
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.
VÝ dô:
$ expr 5 + 7 / 3
Hello my friend
Hello my friend
LÖnh true vµ false: True lu«n tr¶ gi¸ trÞ 0, false lu«n tr¶ gi¸ trÞ 1
43
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
LÖnh test: KiÓm tra ®iÒu kiÖn xem ®óng hay sai
test condition
str1 = str2 §óng nÕu str1 gièng hÖt str2 (vÒ ®é dµi vµ ký tù)
-n str1 §óng nÕu chiÒu dµi str1 lín h¬n 0 (is not null)
int1 -ge int2 §óng nÕu int1 lín h¬n hoÆc b»ng int2
int1 -le int2 §óng nÕu int1 nhá h¬n hoÆc b»ng int2
44
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
then
command_2
command_3
else
command_4
45
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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;
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
46
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
do
command
...
command
done
c) Shell Functions
funcname ()
{
command
... _
47
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
Signal Description
0 Shell exit
1 Hangup
2 Operator Interrupt
3 Quit
9 Kill
VÝ dô:
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 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¶
48
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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)
§Ó 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.
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:
49
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü Ch¹y c¸c script mµ c¸c ch¬ng tr×nh t¹o ra ®Ó cung cÊp c¸c dÞc vô.
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:
ap::sysinit:/sbin/autopush f /etc/ap/chan.ap
50
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü 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.
ü idmodreg— N¹p danh s¸ch c¸c kernel modules trong file /etc/mod_register.
ü 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è.
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
®éng ngÇm ®Þnh trong inittab ®Ó x¸c ®Þnh møc ch¹y mµ hÖ thèng.
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
51
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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 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).
52
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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ô:
[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ù ®é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.
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
53
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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/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.
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).
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
54
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
case "$1" in
'start')
/usr/lib/mousemgr &
;;
'stop')
if [ "${pid}" != "" ]
then
/usr/bin/kill ${pid}
fi
;;
*)
;;
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µ 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.
55
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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.
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 ...
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
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
56
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
nµy thêng thùc hiÖn khi khëi ®éng hÖ thèng.
VÝ dô:
$ ps -f
57
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
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)
58
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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.
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.
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ô:
59
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Dïng lÖnh at -l ®Ó hiÖn danh s¸ch c¸c c¸c process ®îc schedule.
VÝ dô:
$ at -l
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 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.
60
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
$ vi new_crontab_file
$ crontab new_crontab_file
Mét crontab file ®îc thÓ hiÖn díi khu«n d¹ng sau:
minute (0-59)
hour (0-23)
VÝ dô
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
/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,
61
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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).
ü 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
62
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü 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
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
63
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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 min lµ ngµy nhá nhÊt gi÷a ngµy thay ®æi password.
ü 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.
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
ü Trêng password lµ phÇn m∙ ho¸ cña mËt khÈu nhãm nÕu cã.
ü Trêng list lµ danh s¸ch c¸c ID cña ngêi sö dông thþc nhãm.
64
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
host1
host2 user
+@group1
.
.rhosts: T¬ng tù nh trªn
65
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
a) Group administration
T¹o group
Xo¸ group
b) User administration
ü So¹n file passwd, shadow vµ c¸c file t¬ng øng b»ng tay.
ü Sö dông c¸c tiÖn Ých Graphical User Interface (GUI) ®îc c¸c hÖ ®iÒu hµnh
UNIX hç trî.
ü 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.
66
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü -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 [, 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.
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.
§Ó 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:
67
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü 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¸ 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.
§Ó 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]
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 :
68
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
ü .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.
ü .mailrc Khëi ®éng file cho mail mµ cho phÐp ®Æt c¸c tuú chän hoÆc c¸c
aliases.
ü .xsession
ü .xdefault
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
69
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
ü Process usage
ü Printer usage
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:
ü Ngµy 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:
70
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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í.
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:
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.
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:
ü Tr¹ng th¸i ®Üa vµ sù sö dông ®Üa cña c¸c lÖnh system accounting.
71
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
ü Sè trang ®∙ in.
ü /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.
ü /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 ...
ü /opt Chøa c¸c ch¬ng tr×nh øng dông thêng tõ h∙ng thø ba.
72
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§Ó t¹o hÖ thèng file cÇn thùc hiÖn c¸c bíc nh sau:
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ù.
T¹o partition: §Ó t¹o partition dïng lÖnh fdisk ®Ó t¹o partion. (vÝ dô víi Linux)
73
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
# fdisk /dev/hda
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
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.
74
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü rw read/write
ü ro read only
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.
VÝ dô:
umount /usr
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:
75
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü /dir/to/mount Lµ th môc ®îc mount tíi trªn c©y th môc.
ü 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.
# Local mounts
ü 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.
76
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§Ó 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>
ü -t<type>HiÓn thÞ chØ nh÷ng filesystems cã kiÓu phï hîp víi type chØ ®Þnh.
VÝ dô: df –t
server1:/var/spool/mail
77
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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>
ü -a HiÓn thÞ sè ®Õm trªn tæng c¸c file vµ c¸c th môc.
ü -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 .
78
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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:
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:
79
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
(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:
(ADJUST?)
(ADJUST?)
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.
LÖnh fsck:
80
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ã.
/usr/ucb/lpr Thùc hiÖn viÖc chuyÓn c¸c print job vµo 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Þ.
81
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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 ®Õ 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
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Þ.
ü 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
82
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§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µ ë
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.
83
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
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.
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ô :
\d trÓ (2 gi©y)
\D ChØ sè ®iÖn tho¹i kh«ng biÕn ®æi bëi tËp tin Dialcodes
84
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
\r §Çu 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ô :
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 :
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é.
85
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
NOREAD/NOWRITE X¸c ®Þnh c¸c th môc cÊm ®äc hay ghi.
a) TCP/IP
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.
CÊu h×nh loopback driver: §Ó thiÕt lËp cÊu h×nh TCP/IP m¹ng dïng lÖnh ipconfig
ü 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.
86
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ifconfig lo 127.0.0.1
Muèn ®a ®Þa chØ loopback vµo trong kernel routing tables dïng lÖnh:
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.
§Ó 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.
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
87
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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ô:
# 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
88
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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.
ü 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.
ü 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
89
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü 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.
ü 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.
ü 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 ...
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
90
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
VÝ dô: trong Linux lµ pppscript ( trong hÖ Unix system V dïng file aspppls ...)
ppp:*:201:51:PPP account:/tmp:/etc/ppp/pppscript
#!/bin/sh
mesg n
stty -echo
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:
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
91
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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 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ô:
DNS server
92
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§Ó 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.
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.
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)...
ü 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.
93
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
ü 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.
§Ó 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:
ü 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)
;
94
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
; 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.
;
; 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
;
95
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
jade.harmonics.com. IN A 198.53.237.1
IN A 100.0.0.2
ü 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ô 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.
96
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
; 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.
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
;
97
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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
98
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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:
directory /etc/named
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.
99
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
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ô:
100
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
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.
Cache-only server kh«ng dùa vµo c¸c database file cña nã. Cache-only server chØ
lu 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.
101
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
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
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
102
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
Server: cello.harmonics.com
Address: 198.53.237.2
Name: soprano.harmonics.com
Address: 100.0.0.4
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
[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
#
103
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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ã 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.
ü domain
ü maps
ü Daemon
roc.ypupdated Thùc hiÖn cËp nhËp d÷ liÖu khi d÷ liÖu map thay ®æi.
ü Utilities
104
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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
®ã nã ®îc chuyÓn thµnh c¸c file t¬ng øng vÝ dô:
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.
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.
105
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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".
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 ...)
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ô:
/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:
106
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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.
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 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ã.
107
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
§Ç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 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.
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.
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ö
108
Giíi thiÖu vÒ UNIX- Mét sè thao t¸c c¬ b¶n trªn UNIX
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, ...
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.
109