SlideShare a Scribd company logo
1
Ban chØ ÂźÂčo c«ng nghÖ th«ng tin cña cÂŹ quan ٦ng
***
T”I liÖu tham kh¶o
HÖ ÂźiÒu h”nh Linux
H” néi, 2003
2
Ch−¬ng 1. Giíi thiÖu chung vÒ lÖnh trong linux
1.1. GiĂ­i thiÖu vÒ UNIX v” Linux 10
1.1.1. SÂŹ bĂ© vÒ hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng 10
1.1.2. XuÊt xĂž, sĂč phžt triÓn v” mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh UNIX 10
1.1.3. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux 13
1.2. SÂŹ bĂ© vÒ cžc th”nh phÇn cña Linux 14
1.2.1. SÂŹ bĂ© vÒ nh©n 14
1.2.2. SÂŹ bĂ© vÒ shell 15
1.3. GiĂ­i thiÖu vÒ viÖc sö dĂŽng lÖnh trong Linux 16
1.3.1. C¾c quy −íc khi viÕt lÖnh 18
1.3.2. TiÕp nùi dßng lÖnh 22
1.4. Trang Man (Man Page) 23
Ch−¬ng 2. LÖnh thao t¾c víi hÖ thùng
2.1. Quž tr×nh khĂ«i Ÿéng Linux 26
2.2. Thñ tĂŽc Ÿšng nhËp v” cžc lÖnh thožt khĂĄi hÖ thĂšng 27
2.2.1. §¹ng nhËp 27
2.2.2. Ra khái hÖ thùng 28
2.2.3. KhĂ«i Ÿéng lÂči hÖ thĂšng 30
2.3. LÖnh thay ¼éi mËt khÈu 30
2.4. LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ hiÖn tÂči v” xem lÞch trÂȘn hÖ thĂšng 32
2.4.1 LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ 32
2.4.2. LÖnh xem lÞch 34
2.5. LÖnh gĂ€i ng«n ngĂ· tÝnh tožn sĂš hĂ€c 35
2.6. Xem th«ng tin hÖ thĂšng 37
2.7. HiÖn dßng všn b¶n 38
2.8. Thay ŸÊi nĂ©i dung dÊu nhŸc shell 39
Ch−¬ng 3. HÖ thùng tËp tin
3.1 Téng quan vÒ hÖ thùng tËp tin 41
3.1.1. MĂ©t sĂš khži niÖm 41
3.1.2. SÂŹ bĂ© kiÕn trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin 43
3.1.3. LiÂȘn kÕt t−üng tr−ng (lÖnh ln) 46
3.2 QuyÒn truy nhËp th− mĂŽc v” tËp tin 48
3.2.1 QuyÒn truy nhËp 48
3.2.2. Cžc lÖnh cÂŹ b¶n 50
3
a. Thay ŸÊi quyÒn sĂ« hĂ·u tËp tin vĂ­i lÖnh chown 50
b. Thay ŸÊi quyÒn sĂ« hĂ·u nhĂŁm vĂ­i lÖnh chgrp 51
c. Thay ¼éi quyÒn truy cËp tËp tin víi lÖnh chmod 52
d. Ÿšng nhËp v”o mĂ©t nhĂŁm ng−ĂȘi dĂŻng mĂ­i vĂ­i lÖnh newgrp 53
3.3 Thao t¾c víi th− mîc 54
3.3.1 MĂ©t sĂš th− mĂŽc ¼Æc biÖt 54
* Th− mîc gùc / 54
* Th− mîc /root 54
* Th− mîc /bin 54
* Th− mîc /dev 55
* Th− mîc /etc 55
* Th− mîc /lib 55
* Th− mîc /lost+found 55
* Th− mîc /mnt 55
* Th− mîc /tmp 55
* Th− mîc /usr 55
* Th− mîc /home 56
* Th− mîc /var 56
* Th− mîc /boot 56
* Th− mîc /proc 56
* Th− mĂŽc /misc v” th− mĂŽc /opt 56
* Th− mîc /sbin 56
3.3.2 Cžc lÖnh cÂŹ b¶n vÒ th− mĂŽc 56
* Xžc ¼Þnh th− mĂŽc hiÖn thĂȘi vĂ­i lÖnh pwd 56
* Xem th«ng tin vÒ th− mĂŽc vĂ­i lÖnh ls 56
* LÖnh tÂčo th− mĂŽc mkdir 58
* LÖnh xãa bá th− mîc rmdir 59
* LÖnh ŸÊi tÂȘn th− mĂŽc mv 60
3.4. Cžc lÖnh l”m viÖc vĂ­i tËp tin 60
3.4.1 C¾c kiÓu tËp tin cã trong Linux 60
3.4.2. Cžc lÖnh tÂčo tËp tin 61
* TÂčo tËp tin vĂ­i lÖnh touch 61
* TÂčo tËp tin b»ng cžch ŸÊi h−íng ¼Çu ra cña lÖnh (>) 61
* TÂčo tËp tin vĂ­i lÖnh cat 62
3.4.3 Cžc lÖnh thao tžc trÂȘn tËp tin 62
4
* Sao chÐp tËp tin víi lÖnh cp 62
* §Êi tÂȘn tËp tin vĂ­i lÖnh mv 64
* Xãa tËp tin víi lÖnh rm 65
* LÖnh ¼Õm tĂ” v” dßng trong tËp tin wc 66
* LÖnh loÂči bĂĄ nhĂ·ng dßng kh«ng quan trĂ€ng uniq 67
* SŸp xÕp nĂ©i dung tËp tin vĂ­i lÖnh sort 69
3.4.4 Cžc lÖnh thao tžc theo nĂ©i dung tËp tin 71
* Sö dĂŽng lÖnh file ¼Ó xžc ¼Þnh kiÓu tËp tin 71
* Xem nĂ©i dung tËp tin vĂ­i lÖnh cat 72
* Xem nĂ©i dung cžc tËp tin lĂ­n vĂ­i lÖnh more 73
* ThÂȘm sĂš thĂž tĂč cña cžc dßng trong tËp tin vĂ­i lÖnh nl 75
* Xem qua nĂ©i dung tËp tin vĂ­i lÖnh head 77
* Xem qua nĂ©i dung tËp tin vĂ­i lÖnh tail 78
* T×m sĂč khžc nhau giĂ·a hai tËp tin (lÖnh diff) 79
3.4.5 C¾c lÖnh t×m tËp tin 80
* T×m theo nĂ©i dung tËp tin b»ng lÖnh grep 80
* T×m theo cžc ¼Æc tÝnh cña tËp tin vĂ­i lÖnh find 85
3.5 NÐn v” sao l−u cžc tËp tin 88
3.5.1 Sao l−u c¾c tËp tin (lÖnh tar) 88
3.5.2 NÐn dĂ· liÖu 91
* NÐn, gi¶i nÐn v” xem nĂ©i dung cžc tËp tin vĂ­i lÖnh gzip, gunzip v” zcat 91
* NÐn, gi¶i nÐn v” xem tËp tin vĂ­i cžc lÖnh compress, uncompress, zcat93
3.6 Sö dÎng rpm 94
3.6.1.Giíi thiÖu chung vÒ rpm 94
3.6.2 RPM vĂ­i ng−ĂȘi dĂŻng 95
* C”i ¼Æt gĂŁi: 95
* XĂŁa mĂ©t gĂŁi ra khĂĄi hÖ thĂšng 95
* N©ng cÊp mĂ©t gĂŁi 95
* LÊy th«ng tin vÒ cžc gĂŁi phÇn mÒm (package) 95
* DĂŻng RPM ¼Ó kiÓm tra cžc gĂŁi Ÿ· c”i ¼Æt 96
Ch−¬ng 4. LÖnh qu¶n lĂœ t”i kho¶n Ng−ĂȘi dĂŻng
4.1 T”i kho¶n ng−ĂȘi dĂŻng 97
4.2 Cžc lÖnh cÂŹ b¶n qu¶n lĂœ ng−ĂȘi dĂŻng 97
4.2.1 TËp tin /etc/passwd 97
5
4.2.2 ThÂȘm ng−ĂȘi dĂŻng vĂ­i lÖnh useradd 98
TÂčo th− mĂŽc cž nh©n cña ng−ĂȘi dĂŻng mĂ­i vĂ­i lÖnh mkdir 100
ThiÕt lËp mËt khÈu cña ng−ĂȘi dĂŻng vĂ­i lÖnh passwd 100
4.2.3 Thay ŸÊi thuĂ©c tÝnh ng−ĂȘi dĂŻng 100
4.2.4 XĂŁa bĂĄ mĂ©t ng−ĂȘi dĂŻng (lÖnh userdel) 102
4.3 Cžc lÖnh cÂŹ b¶n liÂȘn quan ¼Õn nhĂŁm ng−ĂȘi dĂŻng 102
4.3.1 NhĂŁm ng−ĂȘi dĂŻng v” tËp tin /etc/group 102
4.3.2 ThÂȘm nhĂŁm ng−ĂȘi dĂŻng 103
4.3.3 Söa ŸÊi cžc thuĂ©c tÝnh cña mĂ©t nhĂŁm ng−ĂȘi dĂŻng (lÖnh groupmod) 104
4.3.4 XĂŁa mĂ©t nhĂŁm ng−ĂȘi dĂŻng (lÖnh groupdel) 104
4.4 Cžc lÖnh cÂŹ b¶n khžc cĂŁ liÂȘn quan ¼Õn ng−ĂȘi dĂŻng 104
4.4.1 §šng nhËp vĂ­i t− cžch mĂ©t ng−ĂȘi dĂŻng khžc khi dĂŻng lÖnh su 104
4.4.2 Xžc ¼Þnh ng−ĂȘi dĂŻng Âźang Ÿšng nhËp (lÖnh who) 105
* CĂŁ mĂ©t cžch khžc ¼Ó xžc ¼Þnh th«ng tin ng−ĂȘi dĂŻng vĂ­i lÖnh id 106
4.4.3 Xžc ¼Þnh cžc tiÕn tr×nh Âźang ¼−üc tiÕn h”nh (lÖnh w) 107
Ch−¬ng 5. Cžc lÖnh qu¶n lĂœ thiÕt bÞ ngoÂči vi
5.1 GiĂ­i thiÖu vÒ cžch thĂžc Linux qu¶n lĂœ thiÕt bÞ ngoÂči vi 108
5.2 Cžc cžch qu¶n lĂœ thiÕt bÞ l−u trĂ· trong Linux 109
5.2.1 LÖnh mount v” lÖnh umount 110
* LÖnh mount 110
* LÖnh umount 111
5.2.2 Cžc lÖnh ¼Þnh dÂčng ¼Üa v” tÂčo hÖ thĂšng tËp tin trong Linux 112
* é ¼Üa cþng 112
* X©y dĂčng mĂ©t hÖ thĂšng tËp tin trÂȘn Linux vĂ­i lÖnh mkfs 114
* §Þnh dÂčng mĂžc thÊp mĂ©t ¼Üa mÒm (lÖnh fdformat) 114
* ThÂȘm hÖ thĂšng tËp tin v”o ¼Üa mÒm Ÿ· ¼−üc ¼Þnh dÂčng vĂ­i lÖnh mformat
115
5.2.3 LÖnh qu¶n lĂœ ¼Üa 117
* Xem dung l−üng ¼Üa Ÿ· sö dĂŽng vĂ­i lÖnh du: 117
* KiÓm tra dung l−üng ¼Üa trùng víi lÖnh df: 118
5.3 Cžc cĂŠng nĂši tiÕp v” modem 120
5.4 Cžc cÊng song song v” mžy in 120
5.4.1 KhĂ«i tÂčo v” thiÕt lËp mžy in trong lpd 120
5.4.2 Cžc lÖnh in Ên cÂŹ b¶n 122
6
* In mĂ©t tËp tin vĂ­i lÖnh lpr 122
* §Þnh dÂčng tËp tin tr−íc khi in vĂ­i lÖnh pr 124
* L”m viÖc vĂ­i h”ng Ÿßi in th«ng qua lÖnh lpq 126
* XĂŁa bĂĄ h”ng Ÿßi in vĂ­i lÖnh lprm 127
* LÖnh lpc 128
5.5 Sound card 129
Ch−¬ng 6. Tr×nh soÂčn th¶o vim
6.1 Khëi Ÿéng vim 132
6.1.1 MĂ« ch−¬ng tr×nh soÂčn th¶o vim 132
6.1.2. TÝnh nšng mĂ« nhiÒu cöa sĂŠ 133
6.1.3. Ghi v” thožt trong vim 134
6.2. Di chuyÓn trĂĄ soÂčn th¶o trong Vim 134
6.2.1. Di chuyÓn trong všn b¶n 134
6.2.2. Di chuyÓn theo cžc ŸÚi t−üng všn b¶n 135
6.2.3. CuĂ©n m”n h×nh 135
6.3. Cžc thao tžc trong všn b¶n 136
6.3.1. Cžc lÖnh chÌn všn b¶n trong vim 136
6.3.2. Cžc lÖnh xož všn b¶n trong vim 136
6.3.3. Cžc lÖnh kh«i phĂŽc všn b¶n trong vim 137
6.3.4. Cžc lÖnh thay thÕ všn b¶n trong vim 137
6.3.5. Sao chÐp v” di chuyÓn všn b¶n trong vim 138
* Sao chÐp všn b¶n v”o bĂ© nhĂ­ ¼Öm 138
* Džn všn b¶n: 138
6.3.6. T×m kiÕm v” thay thÕ všn b¶n trong vim 139
6.3.7. §¾nh dÊu trong vim 140
6.3.8. Cžc phÝm sö dĂŽng trong chÕ Ÿé chÌn 140
6.3.9. MĂ©t sĂš lÖnh trong chÕ Ÿé ¶o 141
6.3.10. C¾c lÖnh lÆp 142
6.4. C¾c lÖnh kh¾c 142
6.4.1. Cžch thĂčc hiÖn cžc lÖnh bÂȘn trong Vim 142
6.4.2. Cžc lÖnh liÂȘn quan ¼Õn tËp tin 142
Ch−¬ng 7. LÖnh ¼ùi víi tiÕn tr×nh
7.1. Kh¾i niÖm 144
7
7.2. Cžc lÖnh cÂŹ b¶n 144
7.2.1. LÖnh fg v” lÖnh bg 144
7.2.2. T×m ra cžc tiÕn tr×nh Âźang chÂčy vĂ­i lÖnh ps 147
7.2.3. Hñy tiÕn tr×nh vĂ­i lÖnh kill 149
7.2.4. Cho mžy ngĂ”ng hoÂčt Ÿéng mĂ©t thĂȘi gian vĂ­i lÖnh sleep 150
7.2.5. Xem c©y tiÕn tr×nh vĂ­i lÖnh pstree 150
7.2.6. LÖnh thiÕt ¼Æt lÂči Ÿé −u tiÂȘn cña tiÕn tr×nh nice v” lÖnh renice 152
Ch−¬ng 8. Midnight Commander
8.1. Giíi thiÖu vÒ Midnight Commander (MC) 154
8.2. Khëi Ÿéng MC 154
8.3. Giao diÖn cña MC 154
8.4. Dïng chuét trong MC 155
8.5. Cžc thao tžc b”n phÝm 155
8.6. ThĂčc Ÿn thanh ngang (menu bar) 157
8.7. C¾c phÝm chþc n¹ng 160
8.8. BĂ© soÂčn th¶o cña Midnight Commander 160
* Thanh thĂčc Ÿn 160
ThĂčc Ÿn File: 160
ThĂčc Ÿn Edit: 161
ThĂčc Ÿn Sear/Repl: 161
ThĂčc Ÿn Command: 161
ThĂčc Ÿn Options: 161
* C¾c phÝm chþc n¹ng 162
Ch−¬ng 9. Mtools - tiÖn Ých truy cËp é ¼Üa DOS trong Linux
9.1 PhÇn giíi thiÖu 163
9.2 Cžc thuĂ©c tÝnh chung cña cžc lÖnh mtools 163
9.2.1 Cžc tuĂș chĂ€n v” tÂȘn cžc tËp tin 163
TÂȘn ĂŠ ¼Üa 163
Th− mĂŽc l”m viÖc hiÖn thĂȘi 163
TÂȘn tËp tin d”i kiÓu VFAT 163
Xung Ÿét tÂȘn tËp tin 164
§Þnh dÂčng dung l−üng lĂ­n 166
NhiÒu sector h¬n 166
8
Sectors lĂ­n hÂŹn 166
§Þnh dÂčng 2m 167
§Þnh dÂčng XDF 167
M· thožt ra 167
V−íng mŸc 167
Cžc lÖnh hay sö dĂŽng 168
* LÖnh floppyd_installtest 168
* LÖnh mattrib 168
* LÖnh mbadblocks 169
* LÖnh mcat 169
LÖnh mcd 169
*LÖnh mcopy 170
V−íng mŸc 171
LÖnh mdel 171
LÖnh mdeltree 171
LÖnh mdir 171
LÖnh mdu 172
LÖnh mformat 172
LÖnh mkmanifest 174
V−íng mŸc 176
LÖnh minfo 176
LÖnh mlabel 176
LÖnh mmd 176
LÖnh mmount 176
LÖnh mmove 177
LÖnh mpartition 177
LÖnh mrd 179
LÖnh mren 179
LÖnh mshowfat 179
LÖnh mtoolstest 179
LÖnh mtype 180
LÖnh mzip 180
LÖnh xcopy 181
V−íng mŸc 182
A.1. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux 183
A.2. ChuÈn bÞ cho viÖc c”i ¼Æt 183
9
A.3. TÂčo ¼Üa mÒm khĂ«i Ÿéng 184
A.4. Ph©n vĂŻng lÂči ĂŠ ¼Üa DOS/Windows hiÖn thĂȘi 184
A.5. Cžc b−íc c”i ¼Æt (b¶n RedHat 6.2 v” khĂ«i Ÿéng tĂ” CD-ROM) 184
A.5.1. LĂča chĂ€n chÕ Ÿé c”i ¼Æt 184
A.5.2. LĂča chĂ€n ng«n ngĂ· hiÓn thÞ. 185
A.5.3. LĂča chĂ€n cÊu h×nh b”n phÝm 185
A.5.4. ChĂ€n cÊu h×nh chuĂ©t. 185
A.5.5. HÖ thĂšng ¼−a ra lĂȘi giĂ­i thiÖu vÒ b¶n Red Hat Âźang c”i ¼Æt. 185
A.5.6. LĂča chĂ€n kiÓu c”i ¼Æt. 185
A.5.7. X¾c ¼Þnh c¾c Partition 187
A.5.8. ChĂ€n Partition ¼Ó Format. 188
A.5.9. ChĂ€n cÊu h×nh LILO (Linux Loader) 188
A.5.10. ChĂ€n mĂłi giĂȘ 189
A.5.11. ThiÕt ¼Æt cÊu h×nh Account (ng−ĂȘi sö dĂŽng) 189
A.5.12. ThiÕt ¼Æt cÊu h×nh quyÒn hÂčn (Authentication Configuration) 190
A.5.13. LĂča chĂ€n cžc gĂŁi phÇn mÒm c”i ¼Æt (Pakage Selection) 190
A.5.14. ThiÕt ¼Æt cÊu h×nh X (X Configuration) 191
A.5.15. BŸt ¼Çu quž tr×nh copy tĂ” ¼Üa CD v”o ĂŠ cĂžng 192
A.6. Cžc hÂčn chÕ vÒ phÇn cĂžng ŸÚi vĂ­i Linux 192
A.6.1. Cžc bĂ© vi xö lĂœ m” Linux hç trĂź 192
A.6.2. Cžc yÂȘu cÇu vÒ kh«ng gian ĂŠ cĂžng 193
A.6.3. Cžc yÂȘu cÇu vÒ bĂ© nhĂ­ 193
A.6.4. SĂč t−¬ng thÝch vĂ­i cžc hÖ ÂźiÒu h”nh khžc: DOS, OS/2, 386BSD, Win95
193
10
Ch−¬ng 1. Giíi thiÖu chung vÒ lÖnh trong linux
1.1. GiĂ­i thiÖu vÒ UNIX v” Linux
1.1.1. SÂŹ bĂ© vÒ hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng
UNIX (v” Linux) l” hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng (multi-users). HÖ ÂźiÒu h”nh Âźa
ng−ĂȘi dĂŻng thuĂ©c v”o loÂči hÖ ÂźiÒu h”nh Âźa ch−¬ng tr×nh ¼Þnh h−íng "th©n thiÖn vĂ­i
ng−ĂȘi dĂŻng". TÂči cĂŻng mĂ©t thĂȘi ÂźiÓm, cĂŁ nhiÒu ng−ĂȘi dĂŻng cĂŻng sö dĂŽng mžy tÝnh v”
ŸÚi vĂ­i mçi ng−ĂȘi dĂŻng nh− vËy ¼Òu cĂŁ c¶m gižc nh− ¼−üc sö dĂŽng mžy tÝnh mĂ©t cžch
"Ÿéc quyÒn" v× hĂ€ ¼−üc trĂčc tiÕp liÂȘn kÕt vĂ­i ch−¬ng tr×nh cña m×nh Âźang thĂčc hiÖn
trong mžy tÝnh. §iÒu n”y t−¬ng Ăžng vĂ­i mĂ©t chĂžc nšng cña hÖ ÂźiÒu h”nh l” "hÖ ÂźiÒu
h”nh nh− mĂ©t mžy tÝnh ¶o" theo gĂŁc Ÿé cña ng−ĂȘi sö dĂŽng.
Nh− vËy, trong mžy tÝnh ŸÄng thĂȘi xuÊt hiÖn nhiÒu ch−¬ng tr×nh ng−ĂȘi dĂŻng, cžc
ch−¬ng tr×nh n”y chia nhau sö dĂŽng cžc t”i nguyÂȘn cña hÖ thĂšng, trong Ÿã cĂŁ cžc t”i
nguyÂȘn quan trĂ€ng nhÊt l” CPU, bĂ© nhĂ­ trong v” hÖ thĂšng tËp tin (hÖ thĂšng File).
Mçi ng−ĂȘi dĂŻng h−íng ¼Õn t”i nguyÂȘn chung qua trÂčm cuĂši (terminal) cña m×nh
(cžc trÂčm cuĂši n”y ¼−üc ¼Æt tÂȘn v” ¼−üc hÖ thĂšng qu¶n lĂœ). Trong tr−ĂȘng hĂźp Ÿn
gi¶n, trÂčm cuĂši chØ bao gĂ„m hai thiÕt bÞ l” m”n h×nh (¼Ó hiÖn th«ng tin cho ng−ĂȘi
dĂŻng) v” b”n phÝm (¼Ó ng−ĂȘi dĂŻng ¼−a yÂȘu cÇu ŸÚi vĂ­i hÖ ÂźiÒu h”nh). Trong nhiÒu
tr−ĂȘng hĂźp khžc, cĂŁ thÓ sö dĂŽng mĂ©t mžy tÝnh cž nh©n Ÿãng vai trß cña mĂ©t trÂčm cuĂši
v” nh− vËy mçi ng−ĂȘi dĂŻng vĂ”a ¼−üc phÐp sö dĂŽng t”i nguyÂȘn riÂȘng vĂ”a ¼−üc phÐp sö
dĂŽng t”i nguyÂȘn chung.
§iÓn h×nh nhÊt trong c«ng viÖc ph©n chia t”i nguyÂȘn cña hÖ thĂšng mžy tÝnh trong
hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng l” viÖc ph©n chia CPU theo mĂ©t chu kĂș thĂȘi gian m” mçi
ng−ĂȘi dĂŻng ¼−üc sö dĂŽng CPU trong mĂ©t kho¶ng thĂȘi gian nhÊt ¼Þnh (¼−üc gĂ€i l”
l−üng tö thĂȘi gian) v” sau khi mçi ng−ĂȘi Ÿ· ¼−üc ph©n chia CPU th× lÂči chuyÓn ¼Õn
l−üt ph©n chia tiÕp theo. Nh− vËy, ph©n chia thĂȘi gian (Time shared system) l” cžch
thĂžc cña hÖ Âźa ng−ĂȘi dĂŻng khi ÂźiÒu phĂši CPU.
L” mĂ©t hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, UNIX Ÿ· khž phĂŠ biÕn trong cžc lÜnh vĂčc
hoÂčt Ÿéng CNTT, cĂŁ thÓ ¼−üc sö dĂŽng tĂ” mžy vi tÝnh cho tĂ­i mžy tÝnh mainframe. NĂŁ
¼Æc biÖt thÝch hĂźp ŸÚi vĂ­i cžc hÖ Client-Server v” mÂčng mžy tÝnh diÖn rĂ©ng.
1.1.2. XuÊt xĂž, sĂč phžt triÓn v” mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh
UNIX
Nšm 1965, ViÖn c«ng nghÖ Massachusetts (MIT: Massachusetts Institute of
Technology) v” Phßng thÝ nghiÖm Bell cña h·ng AT&T thĂčc hiÖn dĂč žn x©y dĂčng mĂ©t
hÖ ÂźiÒu h”nh cĂŁ tÂȘn gĂ€i l” Multics (MULTiplexed Information and Computing
Service) vĂ­i mĂŽc tiÂȘu: tÂčo lËp ¼−üc mĂ©t hÖ ÂźiÒu h”nh phñ trÂȘn vĂŻng l·nh thĂŠ rĂ©ng
(hoÂčt Ÿéng trÂȘn tËp cžc mžy tÝnh ¼−üc kÕt nĂši), Âźa ng−ĂȘi dĂŻng, cĂŁ nšng lĂčc cao vÒ tÝnh
tožn v” l−u trĂ·. DĂč žn nĂŁi trÂȘn th”nh c«ng Ă« mĂžc Ÿé hÕt sĂžc khiÂȘm tĂšn v” ng−ĂȘi ta Ÿ·
biÕt ¼Õn mĂ©t sĂš khiÕm khuyÕt khĂŁ khŸc phĂŽc cña Multics.
Nšm1969, Ken Thompson, mĂ©t chuyÂȘn viÂȘn tÂči phßng thÝ nghiÖm Bell, ng−ĂȘi Ÿ·
tham gia dĂč žn Multics, cĂŻng Dennics Richie viÕt lÂči hÖ ÂźiÒu h”nh Âźa-b”i tožn trÂȘn
mžy PDP-7 vĂ­i tÂȘn l” UNICS (UNiplexed Information and Computing Service) tĂ” mĂ©t
c©u gĂ€i Ÿïa cña mĂ©t ŸÄng nghiÖp. Trong hÖ ÂźiÒu h”nh UNICS, mĂ©t sĂš khĂ«i th¶o ¼Çu
tiÂȘn vÒ HÖ thĂšng tËp tin Ÿ· ¼−üc Ken Thompson v” Dennis Ritchie thĂčc hiÖn. §Õn nšm
1970 hÖ ÂźiÒu h”nh ¼−üc viÕt trÂȘn assembler cho mžy PDP-11/20 v” mang tÂȘn l”
UNIX.
11
Nšm 1973, Riche v” Thompson viÕt lÂči nh©n cña hÖ ÂźiÒu h”nh UNIX trÂȘn ng«n
ngĂ· C, v” hÖ ÂźiÒu h”nh Ÿ· trĂ« nÂȘn dÔ d”ng c”i ¼Æt tĂ­i cžc loÂči mžy tÝnh khžc nhau; tÝnh
chÊt nh− thÕ ¼−üc gĂ€i l” tÝnh kh¶ chuyÓn (portable) cña UNIX. Tr−íc Ÿã, kho¶ng nšm
1971, hÖ ÂźiÒu h”nh ¼−üc thÓ hiÖn trÂȘn ng«n ngĂ· B (m” dĂča trÂȘn ng«n ngĂ· B, Ritche Ÿ·
phžt triÓn th”nh ng«n ngĂ· C).
H·ng AT&T phĂŠ biÕn ch−¬ng tr×nh nguĂ„n UNIX tĂ­i cžc tr−ĂȘng ÂźÂči hĂ€c, cžc c«ng
ty th−¬ng mÂči v” chÝnh phñ vĂ­i giž kh«ng Ÿžng kÓ.
Nšm 1982, hÖ thĂšng UNIX-3 l” b¶n UNIX th−¬ng mÂči ¼Çu tiÂȘn cña AT&T.
Nšm 1983, AT&T giĂ­i thiÖu HÖ thĂšng UNIX-4 phiÂȘn b¶n thĂž nhÊt trong Ÿã Ÿ· cĂŁ
tr×nh soÂčn th¶o vi, th− viÖn qu¶n lĂœ m”n h×nh ¼−üc phžt triÓn tĂ” §Âči hĂ€c TĂŠng hĂźp
California, Berkley.
Giai ÂźoÂčn 1985-1987, UNIX-5 phiÂȘn b¶n 2 v” 3 t−¬ng Ăžng ¼−üc ¼−a ra v”o cžc
nšm 1985 v” 1987. Trong giai ÂźoÂčn n”y, cĂŁ kho¶ng 100000 b¶n UNIX Ÿ· ¼−üc phĂŠ
biÕn trÂȘn thÕ giĂ­i, c”i ¼Æt tĂ” mžy vi tÝnh ¼Õn cžc hÖ thĂšng lĂ­n.
§Çu thËp kĂ» 1990. UNIX-5 phiÂȘn b¶n 4 ¼−üc ¼−a ra nh− l” mĂ©t chuÈn cña UNIX.
§©y l” sĂč kÕt hĂźp cña cžc b¶n sau:
AT&T UNIX-5 phiÂȘn b¶n 3,
Berkley Software Distribution (BSD),
XENIX cña MicroSoft
SUN OS
Trong thĂȘi gian gÇn Ÿ©y (kho¶ng nšm 1997) mĂ©t sĂš phiÂȘn b¶n mĂ­i cña UNIX ¼−üc
giĂ­i thiÖu v” phĂŠ biÕn trÂȘn Internet. CĂŁ thÓ t×m thÊy cžc nĂ©i dung liÂȘn quan tÂči ¼Þa chØ
website http://problem.rice.edu/.
Cžc nhĂŁm nh” cung cÊp khžc nhau vÒ UNIX Âźang hoÂčt Ÿéng trong thĂȘi gian hiÖn
nay ¼−üc kÓ ¼Õn nh− sau:
Unix International (viÕt tŸt l” UI). UI l” mĂ©t tĂŠ chĂžc gĂ„m cžc nh” cung cÊp
thĂčc hiÖn viÖc chuyÓn nh−üng hÖ thĂšng UNIX-5 v” cung cÊp b¶n AT&T theo
cžc nhu cÇu v” th«ng bžo phžt h”nh mĂ­i, chÂŒng hÂčn nh− ÂźiÒu chØnh b¶n quyÒn.
Giao diÖn ŸÄ hĂ€a ng−ĂȘi dĂŻng l” Open Look.
Open Software Foundation (OSF). OSF ¼−üc hç trĂź bĂ«i IBM, DEC, HP ...
theo h−íng phžt triÓn mĂ©t phiÂȘn b¶n cña Unix nh»m tranh Âźua vĂ­i hÖ thĂšng
UNIX-5 phiÂȘn b¶n 4. PhiÂȘn b¶n n”y cĂŁ tÂȘn l” OSF/1 vĂ­i giao diÖn ŸÄ hĂ€a ng−ĂȘi
dĂŻng ¼−üc gĂ€i l” MOTIF.
Free SoftWare Foundation: mĂ©t tĂŠ chĂžc chñ tr−¬ng phžt h”nh mĂ©t dßng cña
UNIX m· nguĂ„n mĂ«, miÔn phÝ: Ÿã l” hÖ ÂźiÒu h”nh Linux.
B¶ng sau Ÿ©y liÖt kÂȘ mĂ©t sĂš c”i ¼Æt UNIX khž phĂŠ biÕn (th−ĂȘng thÊy cĂŁ chĂ· X Ă«
cuĂši tÂȘn gĂ€i cña HÖ ÂźiÒu h”nh):
TÂȘn hÖ Nh” cung cÊp NÒn phžt triÓn
AIX International Business Machines AT&T System V
A/UX Apple Computer AT&T System V
Dynix Sequent BSD (Berkeley SoftWare Distribution)
HP-UX Hewlett-Packard BSD
12
Irix Silicon Graphics AT&T System V
Linux Free SoftWare Foundation
NextStep Next BSD
OSF/1 Digital Equipment Corporation BSD
SCO UNIX Santa Cruz Operation AT&T System V
Solaris Sun Microsystems AT&T System V
SunOS Sun Microsystems BSD UNIX
Ultrix Digital Equipment Corporation BSD UNIX
Unicos Cray AT&T System V
UnixWare Novell AT&T System V
XENIX MicroSoft AT&T System III-MS
D−íi Ÿ©y liÖt kÂȘ mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh UNIX:
HÖ ÂźiÒu h”nh ¼−üc viÕt trÂȘn ng«n ngĂ· bËc cao; bĂ«i vËy, rÊt dÔ ŸÀc, dÔ hiÓu,
dÔ thay ŸÊi ¼Ó c”i ¼Æt trÂȘn loÂči mžy mĂ­i (tÝnh dÔ mang chuyÓn, nh− Ÿ· nĂŁi),
CĂŁ giao diÖn ng−ĂȘi dĂŻng Ÿn gi¶n Ÿñ nšng lĂčc cung cÊp cžc dÞch vĂŽ m”
ng−ĂȘi dĂŻng mong muĂšn (so sžnh vĂ­i cžc hÖ ÂźiÒu h”nh cĂŁ tĂ” tr−íc Ÿã th× giao
diÖn cña UNIX l” mĂ©t tiÕn bĂ© v−üt bËc),
ThĂĄa m·n nguyÂȘn tŸc x©y dĂčng cžc ch−¬ng tr×nh phĂžc tÂčp tĂ” nhĂ·ng ch−¬ng
tr×nh Ÿn gi¶n hÂŹn: tr−íc hÕt cĂŁ cžc m«Ÿun cÂŹ b¶n nhÊt cña nh©n sau Ÿã phžt
triÓn ¼Ó cĂŁ to”n bĂ© hÖ ÂźiÒu h”nh,
Sö dĂŽng duy nhÊt mĂ©t hÖ thĂšng File cĂŁ cÊu trĂłc cho phÐp dÔ d”ng b¶o qu¶n
v” sö dĂŽng hiÖu qu¶,
Sö dĂŽng phĂŠ biÕn mĂ©t dÂčng Ÿn gi¶n tr×nh b”y nĂ©i tÂči cña File nh− mĂ©t
dßng cžc byte cho phÐp dÔ d”ng khi viÕt cžc ch−¬ng tr×nh Ăžng dĂŽng truy nhËp,
thao tžc vĂ­i cžc dĂ· liÖu trong File,
CĂŁ kÕt nĂši Ÿn gi¶n vĂ­i thiÕt bÞ ngoÂči vi: cžc file thiÕt bÞ Ÿ· ¼−üc ¼Æt sÂœn
trong HÖ thĂšng File tÂčo ra mĂ©t kÕt nĂši Ÿn gi¶n giĂ·a ch−¬ng tr×nh ng−ĂȘi dĂŻng
vĂ­i cžc thiÕt bÞ ngoÂči vi,
L” hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, Âźa tiÕn tr×nh, trong Ÿã mçi ng−ĂȘi dĂŻng cĂŁ
thÓ thĂčc hiÖn cžc tiÕn tr×nh cña m×nh mĂ©t cžch Ÿéc lËp.
MĂ€i thao tžc v”o - ra cña hÖ ÂźiÒu h”nh ¼−üc thĂčc hiÖn trÂȘn hÖ thĂšng File:
mçi thiÕt bÞ v”o ra t−¬ng Ăžng vĂ­i mĂ©t file. Ch−¬ng tr×nh ng−ĂȘi dĂŻng l”m viÖc
vĂ­i file Ÿã m” kh«ng cÇn quan t©m cĂŽ thÓ tÂȘn file Ÿã ¼−üc ¼Æt cho thiÕt bÞ n”o
trong hÖ thùng.
Che khuÊt cÊu trĂłc mžy ŸÚi vĂ­i ng−ĂȘi dĂŻng, ٦m b¶o tÝnh Ÿéc lËp t−¬ng ŸÚi
cña ch−¬ng tr×nh ŸÚi vĂ­i dĂ· liÖu v” phÇn cĂžng, tÂčo ÂźiÒu kiÖn thuËn lĂźi hÂŹn cho
ng−ĂȘi lËp tr×nh khi viÕt cžc ch−¬ng tr×nh chÂčy UNIX vĂ­i cžc ÂźiÒu kiÖn phÇn
cĂžng ho”n to”n khžc biÖt nhau.
13
1.1.3. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux
Linus Tovalds (mĂ©t sinh viÂȘn PhÇn lan) Ÿ· ¼−a ra phiÂȘn b¶n ¼Çu tiÂȘn cña hÖ ÂźiÒu
h”nh Linux v”o thžng 8 nšm 1991. Linus Tovalds Ÿ· x©y dĂčng hÖ ÂźiÒu h”nh Linux
dĂča trÂȘn mĂ©t phiÂȘn b¶n nhĂĄ cña UNIX cĂŁ tÂȘn Minix (Minix do mĂ©t chuyÂȘn gia h”ng
¼Çu vÒ hÖ ÂźiÒu h”nh l” Gižo s− Andrew S. Tanenbaum x©y dĂčng) theo h−íng hoÂčt
Ÿéng trÂȘn mžy tÝnh cž nh©n. TĂ” thĂȘi ÂźiÓm Ÿã, theo t− tâˆ’Ă«ng GNU, h”ng ngh×n chuyÂȘn
gia trÂȘn to”n thÕ giĂ­i Ÿ· tham gia v”o quž tr×nh phžt triÓn Linux v” v× vËy Linux ng”y
c”ng Ÿžp Ăžng nhu cÇu cña ng−ĂȘi dĂŻng. CĂŁ thÓ kÓ ra mĂ©t sĂš ¼Æc ÂźiÓm sau Ÿ©y cña hÖ
ÂźiÒu h”nh Linux hiÖn tÂči:
Linux t−¬ng thÝch vĂ­i nhiÒu hÖ ÂźiÒu h”nh nh− DOS, MicroSoft Windows ...:
CĂŁ thÓ c”i Linux cĂŻng vĂ­i cžc hÖ ÂźiÒu h”nh khžc trÂȘn cĂŻng mĂ©t ĂŠ cĂžng:
Linux cĂŁ thÓ truy nhËp ¼Õn cžc file cña cžc hÖ ÂźiÒu h”nh cĂŻng mĂ©t ĂŠ ¼Üa. Linux
cho phÐp chÂčy m« phĂĄng cžc ch−¬ng tr×nh thuĂ©c cžc hÖ ÂźiÒu h”nh khžc.
Do giĂ· ¼−üc chuÈn cña UNIX nÂȘn sĂč chuyÓn ŸÊi giĂ·a Linux v” cžc hÖ
UNIX khžc l” dÔ d”ng.
Linux l” mĂ©t hÖ ÂźiÒu h”nh UNIX tiÂȘu biÓu: Âźa ng−ĂȘi dĂŻng, Âźa ch−¬ng tr×nh
v” Âźa xö lĂœ.
Linux cĂŁ giao diÖn ŸÄ hoÂč (GUI) qua X-Window. Linux hç trĂź nhiÒu giao
thĂžc mÂčng. Linux cßn hç trĂź tÝnh thĂȘi gian thĂčc.
Linux khž mÂčnh v” chÂčy rÊt nhanh ngay c¶ khi nhiÒu quž tr×nh hoÆc nhiÒu
cöa sÊ.
Linux ¼−üc c”i ¼Æt trÂȘn nhiÒu chñng loÂči mžy tÝnh khžc nhau: PC, mini v”
viÖc c”i ¼Æt khž thuËn lĂźi song ch−a xuÊt hiÖn trÂȘn mžy tÝnh lĂ­n (mainframe).
Linux ng”y c”ng ¼−üc hç trĂź bĂ«i cžc phÇn mÒm Ăžng dĂŽng: soÂčn th¶o, qu¶n
lĂœ mÂčng, qu¶n trÞ cÂŹ sĂ« dĂ· liÖu, b¶ng tÝnh v.v.
Linux hç trĂź tĂšt cho tÝnh tožn song song v” mžy tÝnh cĂŽm (PC-cluster) l”
mĂ©t h−íng nghiÂȘn cĂžu triÓn khai Ăžng dĂŽng nhiÒu triÓn vĂ€ng hiÖn nay.
L” mĂ©t hÖ ÂźiÒu h”nh vĂ­i m· nguĂ„n mĂ«, ¼−üc phžt triÓn qua Free SoftWare
Foundation nÂȘn Linux phžt triÓn nhanh v” l” mĂ©t hÖ ÂźiÒu h”nh ¼−üc quan t©m
nhiÒu nhÊt trÂȘn thÕ giĂ­i hiÖn nay.
Linux l” mĂ©t hÖ ÂźiÒu h”nh hç trĂź Âźa ng«n ngĂ· mĂ©t cžch to”n diÖn nhÊt. Do
Linux cho phÐp hç trĂź cžc bĂ© m· chuÈn tĂ” 16 bit trĂ« lÂȘn (trong Ÿã cĂŁ cžc bĂ© m·
Unicode, ISO10646) cho nÂȘn viÖc b¶n ¼Þa hĂŁa trÂȘn Linux l” triÖt ¼Ó nhÊt trong
cžc hÖ ÂźiÒu h”nh.
Tuy nhiÂȘn cĂČng cßn mĂ©t sĂš khĂŁ khšn l”m cho Linux ch−a thĂčc sĂč trĂ« th”nh mĂ©t hÖ
ÂźiÒu h”nh phĂŠ dĂŽng, trong Ÿã cĂŁ thÓ kÓ ¼Õn mĂ©t sĂš khĂŁ khšn nh− sau:
KhĂŁ khšn khi c”i ¼Æt Linux v” kh¶ nšng t−¬ng thÝch cña Linux vĂ­i mĂ©t sĂš
loÂči thiÕt bÞ phÇn cĂžng cßn thÊp do ch−a cĂŁ cžc tr×nh ÂźiÒu khiÓn cho nhiÒu thiÕt
bÞ,
PhÇn mÒm Ăžng dĂŽng chÂčy trÂȘn nÒn Linux tuy Ÿ· phong phĂł song so vĂ­i cžc
hÖ ÂźiÒu h”nh khžc nh− MS Windows th× vÉn cßn cĂŁ kho¶ng cžch.
VĂ­i sĂč hç trĂź cña nhiÒu c«ng ty Tin hĂ€c h”ng ¼Çu (IBM, SUN, HP ...) v” sĂč tham
gia phžt triÓn cña h”ng vÂčn chuyÂȘn gia trÂȘn to”n thÕ giĂ­i, cžc khĂŁ khšn cña Linux chŸc
chŸn sÏ nhanh chĂŁng ¼−üc khŸc phĂŽc. ChÝnh v× lÏ Ÿã Ÿ· h×nh th”nh mĂ©t sĂš nh” cung
14
cÊp Linux trÂȘn thÕ giĂ­i. B¶ng d−íi Ÿ©y l” tÂȘn cña mĂ©t sĂš nh” cung cÊp Linux cĂŁ tiÕng
nhÊt v” ¼Þa chØ website cña hĂ€.
§žng chĂł Ăœ nhÊt l” Red Hat Linux v” Red Flag Linux. Red Hat ¼−üc coi l” l©u ÂźĂȘi
v” tin cËy, cßn Red Flag l” mĂ©t c«ng ty Linux cña Trung quĂšc, cĂŁ quan hÖ vĂ­i cĂ©ng
ŸÄng Linux ViÖt nam v” chĂłng ta cĂŁ thÓ hĂ€c hĂĄi mĂ©t cžch trĂčc tiÕp kinh nghiÖm cho
quž tr×nh ¼−a Linux v”o ViÖt nam.
TÂȘn c«ng ty §Þa chØ website
Caldera OpenLinux www.caldera.com
Corel Linux www.corel.com
Debian GNU/Linux www.debian.com
Linux Mandrake www.mandrake.com
Red Hat Linux www.redhat.com
Red Flag Linux www.redflag-linux.com
Slackware Linux www.slackware.com
SuSE Linux www.suse.com
TurboLinux www.turbolinux.com
1.2. SÂŹ bĂ© vÒ cžc th”nh phÇn cña Linux
HÖ ÂźiÒu h”nh Linux ¼−üc chia th”nh 4 th”nh phÇn nh− sau:
Nh©n (system kernel),
Shell,
HÖ thùng tËp tin (File system),
Cžc tiÖn Ých (utilities) hay l” hÖ thĂšng lÖnh cña Linux.
TiÖn Ých chÝnh l” lÖnh Ÿ· cĂŁ sÂœn trong hÖ ÂźiÒu h”nh (d−íi Ÿ©y tiÖn Ých ¼−üc coi l”
lÖnh th−ĂȘng trĂčc). NĂ©i dung chÝnh yÕu cña cuĂšn sžch n”y giĂ­i thiÖu chi tiÕt vÒ mĂ©t sĂš
lÖnh th«ng dĂŽng nhÊt cña Linux. HÖ thĂšng tËp tin sÏ ¼−üc giĂ­i thiÖu trong ch−¬ng 3.
Trong cžc ch−¬ng sau cña cuĂšn sžch ¼Ò cËp tĂ­i nhiÒu nĂ©i dung liÂȘn quan ¼Õn nh©n v”
shell, song ngay sau Ÿ©y th× mĂ©t sĂš nÐt sÂŹ bĂ© vÒ chĂłng sÏ ¼−üc giĂ­i thiÖu.
1.2.1. SÂŹ bĂ© vÒ nh©n
Nh©n (cßn ¼−üc gĂ€i l” hÖ lĂąi) cña Linux, l” mĂ©t bĂ© cžc m«dun ch−¬ng tr×nh cĂŁ vai
trß ÂźiÒu khiÓn cžc th”nh phÇn cña mžy tÝnh, ph©n phĂši cžc t”i nguyÂȘn cho ng−ĂȘi dĂŻng
(cžc tiÕn tr×nh ng−ĂȘi dĂŻng). Nh©n chÝnh l” cÇu nĂši giĂ·a ch−¬ng tr×nh Ăžng dĂŽng vĂ­i
phÇn cĂžng. Ng−ĂȘi dĂŻng sö dĂŽng b”n phÝm gĂą nĂ©i dung yÂȘu cÇu cña m×nh v” yÂȘu cÇu
Ÿã ¼−üc nh©n göi tĂ­i shell: Shell ph©n tÝch lÖnh v” gĂ€i cžc ch−¬ng tr×nh t−¬ng Ăžng vĂ­i
lÖnh ¼Ó thĂčc hiÖn.
MĂ©t trong nhĂ·ng chĂžc nšng quan trĂ€ng nhÊt cña nh©n l” gi¶i quyÕt b”i tožn lËp
lÞch, tĂžc l” hÖ thĂšng cÇn ph©n chia CPU cho nhiÒu tiÕn tr×nh hiÖn thĂȘi cĂŻng tĂ„n tÂči. §Úi
vĂ­i Linux, sĂš l−üng tiÕn tr×nh cĂŁ thÓ lÂȘn tĂ­i con sĂš h”ng ngh×n. VĂ­i sĂš l−üng tiÕn tr×nh
ŸÄng thĂȘi nhiÒu nh− vËy, cžc thuËt tožn lËp lÞch cÇn ph¶i Ÿñ hiÖu qu¶: Linux th−ĂȘng
lËp lÞch theo chÕ Ÿé Round Robin (RR) thĂčc hiÖn viÖc lu©n chuyÓn CPU theo l−üng tö
thĂȘi gian.
Th”nh phÇn quan trĂ€ng thĂž hai trong nh©n l” hÖ thĂšng cžc m«Ÿun ch−¬ng tr×nh
(¼−üc gĂ€i l” lĂȘi gĂ€i hÖ thĂšng) l”m viÖc vĂ­i hÖ thĂšng tËp tin. Linux cĂŁ hai cžch thĂžc
15
l”m viÖc vĂ­i cžc tËp tin: l”m viÖc theo byte (kÝ tĂč) v” l”m viÖc theo khĂši. MĂ©t ¼Æc
ÂźiÓm Ÿžng chĂł Ăœ l” viÖc tËp tin trong Linux cĂŁ thÓ ¼−üc nhiÒu ng−ĂȘi cĂŻng truy nhËp
tĂ­i nÂȘn cžc lĂȘi gĂ€i hÖ thĂšng l”m viÖc vĂ­i tËp tin cÇn ٦m b¶o viÖc tËp tin ¼−üc truy
nhËp theo quyÒn v” ¼−üc chia xÎ cho ng−ĂȘi dĂŻng.
1.2.2. SÂŹ bĂ© vÒ shell
MĂ©t sĂš nĂ©i dung chi tiÕt vÒ shell (cßn ¼−üc gĂ€i l” hÖ vĂĄ) trong Linux ¼−üc tr×nh
b”y trong ch−¬ng "LËp tr×nh trÂȘn shell". NhĂ·ng nĂ©i dung tr×nh b”y d−íi Ÿ©y cho chĂłng
ta mĂ©t cžch nh×n sÂŹ bĂ© vÒ shell v” vai trß cña nĂŁ trong hoÂčt Ÿéng chung cña hÖ ÂźiÒu
h”nh.
Ng−ĂȘi dĂŻng mong muĂšn mžy tÝnh thĂčc hiÖn mĂ©t c«ng viÖc n”o Ÿã th× cÇn gĂą lÖnh
t−¬ng Ăžng thÓ hiÖn yÂȘu cÇu cña m×nh ¼Ó hÖ thĂšng Ÿžp Ăžng yÂȘu cÇu Ÿã. Shell l” bĂ© dÞch
lÖnh v” hoÂčt Ÿéng nh− mĂ©t kÕt nĂši trung gian giĂ·a nh©n vĂ­i ng−ĂȘi dĂŻng: Shell nhËn
dßng lÖnh do ng−ĂȘi dĂŻng ¼−a v”o; v” tĂ” dßng lÖnh nĂŁi trÂȘn nh©n tžch ra cžc bĂ© phËn
¼Ó nhËn ¼−üc mĂ©t hay mĂ©t sĂš lÖnh t−¬ng Ăžng vĂ­i cžc ÂźoÂčn všn b¶n cĂŁ trong dßng
lÖnh. MĂ©t lÖnh bao gĂ„m tÂȘn lÖnh v” tham sĂš: tĂ” ¼Çu tiÂȘn l” tÂȘn lÖnh, cžc tĂ” tiÕp theo
(nÕu cĂŁ) l” cžc tham sĂš. TiÕp theo, shell sö dĂŽng nh©n ¼Ó khĂ«i sinh mĂ©t tiÕn tr×nh mĂ­i
(khĂ«i tÂčo tiÕn tr×nh) v” sau Ÿã, shell chĂȘ Ÿßi tiÕn tr×nh con n”y tiÕn h”nh, ho”n thiÖn v”
kÕt thĂłc. Khi shell sÂœn s”ng tiÕp nhËn dßng lÖnh cña ng−ĂȘi dĂŻng, mĂ©t dÊu nhŸc shell
(cßn gĂ€i l” dÊu nhŸc nhËp lÖnh) xuÊt hiÖn trÂȘn m”n h×nh.
Linux cĂŁ hai loÂči shell phĂŠ biÕn l”: C-shell (dÊu nhŸc %), Bourne-shell (dÊu nhŸc
$) v” mĂ©t sĂš shell phžt triÓn tĂ” cžc shell nĂŁi trÂȘn (chÂŒng hÂčn, TCshell - tcsh vĂ­i dÊu
nhŸc ngÇm ¼Þnh > phžt triÓn tĂ” C-shell v” GNU Bourne - bash vĂ­i dÊu nhŸc bash #
phžt triÓn tĂ” Bourne-shell). DÊu mĂȘi ph©n biÖt shell nĂŁi Ă« trÂȘn kh«ng ph¶i ho”n to”n rĂą
r”ng do Linux cho phÐp ng−ĂȘi dĂŻng thay ŸÊi lÂči dÊu nhŸc shell nhĂȘ viÖc thay giž trÞ
cžc biÕn m«i tr−ĂȘng PS1 v” PS2. Trong cuĂšn sžch n”y, chĂłng ta sö dĂŽng kÝ hiÖu
"h”ng r”o #" ¼Ó biÓu thÞ dÊu nhŸc shell.
C-shell cĂŁ tÂȘn gĂ€i nh− vËy l” do cžch viÕt lÖnh v” ch−¬ng tr×nh lÖnh Linux tĂča nh−
ng«n ngĂ· C. Bourne-shell mang tÂȘn tžc gi¶ cña nĂŁ l” Steven Bourne. MĂ©t sĂš lÖnh trong
C-shell (chÂŒng hÂčn lÖnh alias) kh«ng cßn cĂŁ trong Bourne-shell v” v× vËy ¼Ó nhËn biÕt
hÖ thĂšng Âźang l”m viÖc vĂ­i shell n”o, chĂłng ta gĂą lÖnh:
# alias
NÕu mĂ©t danh sžch xuÊt hiÖn th× shell Âźang sö dĂŽng l” C-shell; ng−üc lÂči, nÕu xuÊt
hiÖn th«ng bžo "Command not found" th× shell Ÿã l” Bourne-shell.
LÖnh ¼−üc chia th”nh 3 loÂči lÖnh:
LÖnh th−ĂȘng trĂčc (cĂŁ sÂœn cña Linux). TuyÖt ÂźÂči Âźa sĂš lÖnh ¼−üc giĂ­i thiÖu
trong cuĂšn sžch n”y l” lÖnh th−ĂȘng trĂčc. ChĂłng bao gĂ„m cžc lÖnh ¼−üc chĂža
sÂœn trong shell v” cžc lÖnh th−ĂȘng trĂčc khžc.
TËp tin ch−¬ng tr×nh ng«n ngĂ· mžy: chÂŒng hÂčn, ng−ĂȘi dĂŻng viÕt tr×nh trÂȘn
ng«n ngĂ· C qua bĂ© dÞch gcc (bao gĂ„m c¶ tr×nh kÕt nĂši link) ¼Ó tÂčo ra mĂ©t
ch−¬ng tr×nh trÂȘn ng«n ngĂ· mžy.
TËp tin ch−¬ng tr×nh shell (Shell Scrip).
Khi kÕt thĂłc mĂ©t dßng lÖnh cÇn gĂą phÝm ENTER ¼Ó shell ph©n tÝch v” thĂčc hiÖn
lÖnh.
16
1.3. GiĂ­i thiÖu vÒ viÖc sö dĂŽng lÖnh trong Linux
Nh− Ÿ· giĂ­i thiÖu Ă« phÇn trÂȘn, Linux l” mĂ©t hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, Âźa
nhiÖm, ¼−üc phžt triÓn bĂ«i h”ng ngh×n chuyÂȘn gia Tin hĂ€c trÂȘn to”n thÕ giĂ­i nÂȘn hÖ
thĂšng lÖnh cĂČng ng”y c”ng phong phĂł; ¼Õn thĂȘi ÂźiÓm hiÖn nay (nšm 2000) Linux cĂŁ
kho¶ng hÂŹn mĂ©t ngh×n lÖnh.
Tuy nhiÂȘn chØ cĂŁ kho¶ng v”i chĂŽc lÖnh l” th«ng dĂŽng nhÊt ŸÚi vĂ­i ng−ĂȘi dĂŻng.
CuĂšn sžch n”y cĂČng hÂčn chÕ giĂ­i thiÖu kho¶ng v”i chĂŽc lÖnh Ÿã. ChĂłng ta ŸÔng e ngÂči
vÒ sĂš l−üng lÖnh ¼−üc giĂ­i thiÖu chØ chiÕm mĂ©t phÇn nhĂĄ trong tËp hĂźp lÖnh bĂ«i v× Ÿ©y
l” nhĂ·ng lÖnh th«ng dĂŽng nhÊt v” chĂłng cung cÊp mĂ©t phÂčm vi Ăžng dĂŽng rĂ©ng lĂ­n, Ÿñ
thĂĄa m·n yÂȘu cÇu cña chĂłng ta.
CĂČng nh− Ÿ· nĂŁi Ă« trÂȘn, ng−ĂȘi dĂŻng l”m viÖc vĂ­i mžy tÝnh th«ng qua viÖc sö dĂŽng
trÂčm cuĂši: ng−ĂȘi dĂŻng ¼−a yÂȘu cÇu cña m×nh b»ng cžch gĂą "lÖnh" tĂ” b”n phÝm v” giao
cho hÖ ÂźiÒu h”nh xö lĂœ.
Khi c”i ¼Æt Linux lÂȘn mžy tÝnh cž nh©n th× mžy tÝnh cž nh©n vĂ”a Ÿãng vai trß trÂčm
cuĂši, vĂ”a Ÿãng vai trß mžy tÝnh xö lĂœ.
DÂčng tĂŠng qužt cña lÖnh Linux cĂŁ thÓ ¼−üc viÕt nh− sau:
# <TÂȘn lÖnh> [<cžc tham sĂš>] ↔
trong Ÿã:
TÂȘn lÖnh l” mĂ©t d·y kĂœ tĂč, kh«ng cĂŁ dÊu cžch, biÓu thÞ cho mĂ©t lÖnh cña
Linux hay mĂ©t ch−¬ng tr×nh. Ng−ĂȘi dĂŻng cÇn hÖ ÂźiÒu h”nh Ÿžp Ăžng yÂȘu cÇu g×
cña m×nh th× ph¶i chĂ€n Ÿóng tÂȘn lÖnh. TÂȘn lÖnh l” bŸt buĂ©c ph¶i cĂŁ khi gĂą lÖnh.
Cžc tham sĂš cĂŁ thÓ cĂŁ hoÆc kh«ng cĂŁ, ¼−üc viÕt theo quy ¼Þnh cña lÖnh m”
chĂłng ta sö dĂŽng, nh»m cung cÊp th«ng tin vÒ cžc ŸÚi t−üng m” lÖnh tžc Ÿéng
tĂ­i. Ăœ nghÜa cña cžc dÊu [, <, >, ] ¼−üc gi¶i thÝch Ă« phÇn quy tŸc viÕt lÖnh.
Cžc tham sĂš ¼−üc ph©n ra th”nh hai loÂči: tham sĂš khĂŁa v” tham sĂš vÞ trÝ. Tham sĂš
vÞ trÝ th−ĂȘng l” tÂȘn tËp tin, th− mĂŽc v” th−ĂȘng l” cžc ŸÚi t−üng chÞu sĂč tžc Ÿéng cña
lÖnh. Khi gĂą lÖnh, tham sĂš vÞ trÝ ¼−üc thay b»ng nhĂ·ng ŸÚi t−üng m” ng−ĂȘi dĂŻng cÇn
h−íng tžc Ÿéng tĂ­i. Tham sĂš khĂŁa chÝnh l” nhĂ·ng tham sĂš ÂźiÒu khiÓn hoÂčt Ÿéng cña
lÖnh theo cžc tr−ĂȘng hĂźp riÂȘng. Trong Linux, tham sĂš khĂŁa th−ĂȘng bŸt ¼Çu bĂ«i dÊu trĂ”
"-" hoÆc hai dÊu trĂ” liÂȘn tiÕp "--". Khi gĂą lÖnh, cĂČng giĂšng nh− tÂȘn lÖnh, tham sĂš khĂŁa
ph¶i ¼−üc viÕt chÝnh xžc nh− tr×nh b”y trong m« t¶ lÖnh. MĂ©t lÖnh cĂŁ thÓ cĂŁ mĂ©t sĂš
hoÆc rÊt nhiÒu tham sĂš khĂŁa. PhĂŽ thuĂ©c v”o yÂȘu cÇu cĂŽ thÓ cña m×nh, ng−ĂȘi dĂŻng cĂŁ
thÓ chĂ€n mĂ©t hoÆc mĂ©t sĂš cžc tham sĂš khĂŁa khi gĂą lÖnh.
Trong cžc m« t¶ lÖnh, phĂŠ biÕn xuÊt hiÖn cžc tĂŻy chĂ€n lÖnh m” ¼−üc viÕt tŸt l”
tĂŻy-chĂ€n. Cžc tĂŻy chĂ€n lÖnh (hÇu hÕt l” cžc tham sĂš khĂŁa) cho phÐp ÂźiÒu chØnh hoÂčt
Ÿéng cña lÖnh trong Linux, l”m cho lÖnh cĂŁ tÝnh phĂŠ dĂŽng cao. Cžc tuĂș chĂ€n lÖnh cho
phÐp lÖnh cĂŁ thÓ Ÿžp Ăžng Ăœ muĂšn cña ng−ĂȘi dĂŻng ŸÚi vĂ­i hÇu hÕt (tuy kh«ng ph¶i lĂłc
n”o cĂČng vËy) cžc t×nh huĂšng ¼Æt ra cho thao tžc Ăžng vĂ­i lÖnh.
KĂœ hiÖu "↔" biÓu thÞ viÖc gĂą phÝm hÕt dßng <Enter>. §Ó kÕt thĂłc mĂ©t yÂȘu
cÇu, ng−ĂȘi dĂŻng nhÊt thiÕt ph¶i gĂą phÝm "↔".
VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą lÖnh xem th«ng tin vÒ cžc tËp tin:
# ls -l g*↔
trong lÖnh n”y:
17
ls l” tÂȘn lÖnh thĂčc hiÖn viÖc ¼−a danh sžch cžc tÂȘn tËp tin/ th− mĂŽc con
trong mĂ©t th− mĂŽc,
-l l” tham sĂš khĂŁa, cho biÕt yÂȘu cÇu xem ¼Çy Ÿñ th«ng tin vÒ cžc ŸÚi t−üng
hiÖn ra. ChĂł Ăœ, trong tham sĂš khĂŁa chĂ· cži (chĂ· "l") ph¶i Âźi ngay sau dÊu trĂ” "-
". T−¬ng Ăžng vĂ­i lÖnh ls cßn cĂŁ cžc tham sĂš khĂŁa -a, -L, ... v” chĂłng cĂČng l”
cžc tĂŻy chĂ€n lÖnh. Trong mĂ©t sĂš tham sĂš khĂŁa cĂŁ nhiÒu chĂ· cži thay cho mĂ©t
dÊu "-" l” hai dÊu "--" Ă« ¼Çu tham sĂš. VÝ dĂŽ, nh− tr−ĂȘng hĂźp tham sĂš --file cña
lÖnh date.
g* l” tham sĂš vÞ trÝ chØ rĂą ng−ĂȘi dĂŻng cÇn xem th«ng tin vÒ cžc tËp tin cĂŁ
tÂȘn gĂ€i bŸt ¼Çu l” chĂ· cži "g".
Trong cuĂšn sžch n”y, chĂłng ta quy −íc r»ng khi viÕt mĂ©t lÖnh (trong m« t¶ lÖnh v”
gĂą lÖnh) th× kh«ng cÇn ph¶i viÕt dÊu "↔" Ă« cuĂši dßng lÖnh Ÿã, song lu«n ghi nhĂ­ r»ng
phÝm ENTER ("↔") l” bŸt buĂ©c khi gĂą lÖnh.
L−u Ăœ:
Linux (v” UNIX nĂŁi chung) ¼−üc x©y dĂčng trÂȘn ng«n ngĂ· lËp tr×nh C, v×
vËy khi gĂą lÖnh ph¶i ph©n biÖt chĂ· th−ĂȘng vĂ­i chĂ· hoa. NgoÂči trĂ” mĂ©t sĂš ngoÂči
lÖ, trong Linux chĂłng ta thÊy phĂŠ biÕn l”:
Cžc tÂȘn lÖnh l” chĂ· th−ĂȘng,
MĂ©t sĂš tham sĂš cĂŁ thÓ l” chĂ· th−ĂȘng hoÆc chĂ· hoa (vÝ dĂŽ, trong lÖnh
date vÒ thĂȘi gian hÖ thĂšng th× hai tham sĂš -r v” -R cĂŁ Ăœ nghÜa ho”n
to”n khžc nhau). TÂȘn cžc biÕn m«i tr−ĂȘng cĂČng th−ĂȘng dĂŻng chĂ· hoa.
Trong cuĂšn sžch n”y, tÂči nhĂ·ng dßng všn b¶n diÔn gi¶i, chĂłng t«i viÕt tÂȘn
lÖnh, cžc tham sĂš khĂŁa b»ng kiÓu chĂ· kh«ng ch©n, ¼Ëm nh− date, -R, -r ...
Linux ph©n biÖt siÂȘu ng−ĂȘi dĂŻng (tiÕng Anh l” superuser hoÆc root, cßn
¼−üc gĂ€i l” ng−ĂȘi qu¶n trÞ hay ng−ĂȘi dĂŻng tĂši cao hoÆc ng−ĂȘi dĂŻng cao cÊp)
vĂ­i ng−ĂȘi dĂŻng th«ng th−ĂȘng. Trong tËp hĂźp lÖnh cña Linux, cĂŁ mĂ©t sĂš lÖnh m”
chØ siÂȘu ng−ĂȘi dĂŻng mĂ­i ¼−üc phÐp sö dĂŽng cßn ng−ĂȘi dĂŻng th«ng th−ĂȘng th×
kh«ng ¼−üc phÐp (vÝ dĂŽ nh− lÖnh adduser thĂčc hiÖn viÖc bĂŠ sung thÂȘm ng−ĂȘi
dĂŻng). MÆt khžc trong mĂ©t sĂš lÖnh, vĂ­i mĂ©t sĂš tham sĂš khĂŁa th× chØ siÂȘu ng−ĂȘi
dĂŻng ¼−üc phÐp dĂŻng, cßn vĂ­i mĂ©t sĂš tham sĂš khžc th× mĂ€i ng−ĂȘi dĂŻng ¼Òu
¼−üc phÐp (vÝ dĂŽ nh− lÖnh passwd thay ŸÊi mËt khÈu ng−ĂȘi dĂŻng).
MĂ©t dßng lÖnh cĂŁ thÓ cĂŁ nhiÒu hÂŹn mĂ©t lÖnh, trong Ÿã lÖnh sau ¼−üc ngšn
cžch bĂ«i vĂ­i lÖnh Âźi ngay tr−íc b»ng dÊu ";" hoÆc dÊu "|". VÝ dĂŽ vÒ mĂ©t sĂš
dßng lÖnh dÂčng n”y:
# ls -l; date
# head Filetext | sort >temp
Ch−¬ng vÒ lËp tr×nh shell sÏ giĂ­i thiÖu chi tiÕt hÂŹn vÒ cžc cžch thĂžc nĂŁi trÂȘn.
Sau khi ng−ĂȘi dĂŻng gĂą xong dßng lÖnh, shell tiÕp nhËn dßng lÖnh n”y v”
ph©n tÝch nĂ©i dung všn b¶n cña lÖnh. NÕu lÖnh ¼−üc gĂą Ÿóng th× lÖnh ¼−üc thĂčc
hiÖn; ng−üc lÂči, trong tr−ĂȘng hĂźp cĂŁ sai sĂŁt khi gĂą lÖnh th× shell sÏ th«ng bžo vÒ
sai sĂŁt v” dÊu nhŸc shell lÂči hiÖn ra ¼Ó chĂȘ lÖnh tiÕp theo cña ng−ĂȘi dĂŻng. VÒ
phĂŠ biÕn, nÕu nh− sau khi ng−ĂȘi dĂŻng gĂą lÖnh, kh«ng thÊy th«ng bžo sai sĂŁt
hiÖn ra th× cĂŁ nghÜa lÖnh Ÿ· ¼−üc thĂčc hiÖn mĂ©t cžch b×nh th−ĂȘng.
18
Tr−íc khi Âźi v”o nĂ©i dung chi tiÕt cžc lÖnh th«ng dĂŽng, chĂłng ta xem xÐt vÒ mĂ©t
sĂš quy ¼Þnh dĂŻng trong m« t¶ lÖnh ¼−üc tr×nh b”y trong cuĂšn sžch n”y.
1.3.1. C¾c quy −íc khi viÕt lÖnh
Trong cuĂšn sžch n”y, cžc lÖnh ¼−üc tr×nh b”y theo mĂ©t bĂ© quy tŸc cĂł phžp nhÊt
qužn. BĂ© quy tŸc n”y cho phÐp ph©n biÖt trong mçi lÖnh cžc th”nh phÇn n”o l” bŸt
buĂ©c ph¶i cĂŁ, cžc th”nh phÇn n”o cĂŁ thÓ cĂŁ hoÆc kh«ng ... D−íi Ÿ©y l” nĂ©i dung cña
cžc quy tŸc trong bĂ© quy tŸc Ÿã.
TÂȘn lÖnh l” bŸt buĂ©c, ph¶i l” tĂ” ¼Çu tiÂȘn trong bÊt kĂș lÖnh n”o, ph¶i ¼−üc gĂą
Ÿóng nh− khi m« t¶ lÖnh.
TÂȘn khži niÖm ¼−üc n»m trong cÆp dÊu ngoÆc quan hÖ (< v” >) biÓu thÞ cho
mĂ©t lĂ­p ŸÚi t−üng v” l” tham sĂš bŸt buĂ©c ph¶i cĂŁ. Khi gĂą lÖnh th× tÂȘn khži niÖm
(cĂŁ thÓ ¼−üc coi l” "tham sĂš h×nh thĂžc") ph¶i ¼−üc thay thÕ b»ng mĂ©t tĂ”
(th−ĂȘng l” tÂȘn tËp tin, tÂȘn th− mĂŽc ... v” cĂŁ thÓ ¼−üc coi l” "tham sĂš thĂčc sĂč")
¼Ó chØ ŸÚi t−üng liÂȘn quan ¼Õn thao tžc cña lÖnh.
VÝ dĂŽ, m« t¶ cĂł phžp cña lÖnh more xem nĂ©i dung tËp tin l”
# more <tËp-tin>
Th× tĂ” more l” tÂȘn lÖnh, cßn <tËp-tin> l” tham sĂš trong Ÿã tËp-tin l” tÂȘn khži niÖm
v” l” tham sĂš bŸt buĂ©c ph¶i cĂŁ. LÖnh n”y cĂŁ tžc Ÿéng l” hiÖn lÂȘn m”n h×nh theo cžch
thĂžc cuĂ©n nĂ©i dung cña tËp tin vĂ­i tÂȘn Ÿ· chØ trong lÖnh.
§Ó xem nĂ©i dung tËp tin cĂŁ tÂȘn l” temp, ng−ĂȘi dĂŻng gĂą lÖnh:
# more temp
Nh− vËy, tÂȘn lÖnh more ¼−üc gĂą Ÿóng nh− m« t¶ cĂł phžp (c¶ nĂ©i dung v” vÞ trÝ)
cßn "tËp-tin" Ÿ· ¼−üc thay thÕ b»ng tĂ” "temp" l” tÂȘn tËp tin m” ng−ĂȘi dĂŻng muĂšn xem
néi dung.
Cžc bĂ© phËn n»m giĂ·a cÆp dÊu ngoÆc vu«ng [ v” ] l” cĂŁ thÓ gĂą hoÆc kh«ng
gĂą cĂČng ¼−üc.
VÝ dĂŽ, m« t¶ cĂł phžp cña lÖnh halt l”
# halt [tïy-chÀn]
VĂ­i cžc tĂŻy chĂ€n l” -w, -n, -d, -f, -i m· mçi tĂŻy chĂ€n cho mĂ©t cžch thĂžc hoÂčt
Ÿéng khžc nhau cña lÖnh halt. LÖnh halt cĂŁ tžc Ÿéng chÝnh l” l”m ngĂ”ng hoÂčt Ÿéng
cña hÖ ÂźiÒu h”nh, tuy nhiÂȘn khi ng−ĂȘi dĂŻng muĂšn cĂŁ mĂ©t cžch hoÂčt Ÿéng n”o Ÿã cña
lÖnh n”y th× sÏ chĂ€n mĂ©t (hoÆc mĂ©t sĂš) tuĂș chĂ€n lÖnh t−¬ng Ăžng. MĂ©t sĂš cžch gĂą lÖnh
halt cña ng−ĂȘi dĂŻng nh− sau Ÿ©y l” Ÿóng cĂł phžp:
# halt
# halt -w
# halt -n
# halt -f
Cžc giž trÞ cĂŁ trong cÆp { v” } trong Ÿã cžc bĂ© phËn cžch nhau b»ng dÊu sĂŠ
ŸÞng "|" cho biÕt cÇn chĂ€n mĂ©t v” chØ mĂ©t trong cžc giž trÞ n»m giĂ·a hai dÊu
ngoÆc ¼ã.
19
VÝ dĂŽ, khi giĂ­i thiÖu vÒ tĂŻy chĂ€n lÖnh cña lÖnh tail xem phÇn cuĂši nĂ©i dung cña
tËp tin, chóng ta thÊy:
-f, --follow[={tÂȘn | ¼Æc t¶}]
Nh− vËy, sau tham sĂš khĂŁa --follow, nÕu xuÊt hiÖn thÂȘm dÊu b»ng "="
th× ph¶i cĂŁ hoÆc tÂȘn hoÆc ¼Æc t¶. §©y l” tr−ĂȘng hĂźp cžc chĂ€n lĂča "loÂči trĂ” nhau".
DÊu ba chÊm ... thÓ hiÖn viÖc lÆp lÂči th”nh phÇn cĂł phžp Âźi ngay tr−íc dÊu
n”y, viÖc lÆp lÂči Ÿã cĂŁ thÓ tĂ” kh«ng ¼Õn nhiÒu lÇn (kh«ng kÓ chÝnh th”nh phÇn
cĂł phžp Ÿã). Cžch thĂžc n”y th−ĂȘng ¼−üc dĂŻng vĂ­i cžc tham sĂš nh− tÂȘn tËp tin.
VÝ dĂŽ, m« t¶ lÖnh chown nh− sau:
chown [tĂŻy-chĂ€n]... <chñ>[,[nhĂŁm]]<tËp-tin>...
Nh− vËy trong lÖnh chown cĂŁ thÓ kh«ng cĂŁ hoÆc cĂŁ mĂ©t sĂš tĂŻy chĂ€n lÖnh v” cĂŁ tĂ”
mĂ©t ¼Õn nhiÒu tÂȘn tËp tin.
Cžc bĂ© phËn trong m« t¶ lÖnh, nÕu kh«ng n»m trong cžc cÆp dÊu [ ], <>, {}
th× khi gĂą lÖnh thĂčc sĂč ph¶i gĂą y Ÿóng nh− khi m« t¶ (chĂł Ăœ, quy tŸc viÕt tÂȘn
lÖnh l” mĂ©t tr−ĂȘng hĂźp riÂȘng cña quy tŸc n”y).
ViÖc kÕt hĂźp cžc dÊu ngoÆc vĂ­i nhau cho phÐp tÂčo ra cžch thĂžc sö dĂŽng quy
tŸc tĂŠ hĂźp cžc tham sĂš trong lÖnh. VÝ dĂŽ, lÖnh more b×nh th−ĂȘng cĂŁ cĂł phžp l”:
# more <tËp-tin>
cĂŁ nghÜa l” thay <tËp-tin> b»ng tÂȘn tËp tin cÇn xem nĂ©i dung, nÕu kÕt hĂźp thÂȘm
dÊu ngoÆc vu«ng [ v” ], tĂžc l” cĂŁ dÂčng sau (chÝnh l” dÂčng tĂŠng qužt cña lÖnh more):
# more [<tËp-tin>]
th× <tËp-tin> nĂŁi chung ph¶i cĂŁ trong lÖnh more, tuy nhiÂȘn trong mĂ©t sĂš tr−ĂȘng
hüp cã thÓ bá qua tham sù tËp-tin.
L−u Ăœ:
§Úi vĂ­i nhiÒu lÖnh, cho phÐp ng−ĂȘi dĂŻng gĂą tham sĂš khĂŁa kÕt hĂźp t−¬ng
Ăžng vĂ­i tĂŻy-chĂ€n trong m« t¶ lÖnh. Tham sĂš khĂŁa kÕt hĂźp ¼−üc viÕt theo
cžch -<x©u-kÝ-tĂč>, trong Ÿã x©u-kÝ-tĂč gĂ„m cžc chĂ· cži trong tham sĂš
khĂŁa. VÝ dĂŽ, trong m« t¶ lÖnh in lÞch cal:
cal [tïy-chÀn] [thžng [nšm] ]
cĂŁ ba tham sĂš khĂŁa l” -m, -j, -y. Khi gĂą lÖnh cĂŁ thÓ gĂą mĂ©t tĂŠ hĂźp n”o Ÿã tĂ” ba
tham sĂš khĂŁa n”y ¼Ó ¼−üc t×nh huĂšng sö dĂŽng lÖnh theo Ăœ muĂšn. ChÂŒng hÂčn,
nÕu gñ lÖnh
cal -mj 3
th× lÖnh cal thĂčc hiÖn theo ÂźiÒu khiÓn cña hai tham sĂš khĂŁa -m (chĂ€n ThĂž Hai
l” ng”y ¼Çu tuÇn, thay v× cho ngÇm ¼Þnh l” Chñ NhËt) v” -j (hiÓn thÞ ng”y trong
thžng d−íi dÂčng sĂš ng”y trong nšm kÓ tĂ” ¼Çu nšm).
Trong mĂ©t sĂš lÖnh, cĂŁ hai tham sĂš khĂŁa cĂŻng t−¬ng Ăžng vĂ­i mĂ©t t×nh huĂšng
thĂčc hiÖn lÖnh, trong Ÿã mĂ©t tham sĂš gĂ„m mĂ©t kÝ tĂč cßn tham sĂš kia lÂči l” mĂ©t
tĂ”. Tham sĂš d”i mĂ©t tĂ” l” tham sĂš chuÈn cña lÖnh, cßn tham sĂš mĂ©t kÝ tĂč l”
cžch viÕt ngŸn gĂ€n. Tham sĂš chuÈn dĂŻng ¼−üc trong mĂ€i Linux v” khi gĂą ph¶i
cĂŁ Ÿñ kÝ tĂč trong tĂ”.
20
VÝ dĂŽ, khi m« t¶ lÖnh date cĂŁ tĂŻy chĂ€n:
-d, --date=STRING
nh− vËy hai tham sĂš -d v” --date=STRING cĂŁ cĂŻng Ăœ nghÜa.
Ngo”i nhĂ·ng quy −íc trÂȘn Ÿ©y, ng−ĂȘi dĂŻng ŸÔng quÂȘn mĂ©t quy ¼Þnh cÂŹ b¶n l” cÇn
ph©n biÖt chĂ· hoa vĂ­i chĂ· th−ĂȘng khi gĂą lÖnh.
L”m Ÿn gi¶n thao tžc gĂą lÖnh:
ViÖc sö dĂŽng b”n phÝm ¼Ó nhËp lÖnh tuy kh«ng ph¶i l” mĂ©t c«ng viÖc nÆng nÒ,
song Linux cßn cho phÐp ng−ĂȘi dĂŻng sö dĂŽng mĂ©t sĂš cžch thĂžc ¼Ó thuËn tiÖn hÂŹn khi
gĂą lÖnh. MĂ©t sĂš trong nhĂ·ng cžch thĂžc Ÿã l”:
Sö dĂŽng viÖc kh«i phĂŽc dßng lÖnh,
Sö dĂŽng cžc phÝm ¼Æc biÖt,
Sö dĂŽng cžc kÝ hiÖu thay thÕ v” phÝm <Tab>,
Sö dĂŽng thay thÕ alias,
Sö dĂŽng ch−¬ng tr×nh lÖnh.
Cžch thĂžc sö dĂŽng thay thÕ alias v” ch−¬ng tr×nh lÖnh (shell script) sÏ ¼−üc giĂ­i
thiÖu chi tiÕt trong cžc ch−¬ng liÂȘn quan. D−íi Ÿ©y, chĂłng ta xem xÐt cžch thĂžc sö
dĂŽng viÖc kh«i phĂŽc dßng lÖnh, phÝm ¼Æc biÖt v” kÝ hiÖu thay thÕ.
ViÖc kh«i phĂŽc dßng lÖnh:
Linux cung cÊp mĂ©t cžch thĂžc ¼Æc biÖt l” kh¶ nšng kh«i phĂŽc lÖnh. TÂči dÊu nhŸc
shell: Ng−ĂȘi dĂŻng sö dĂŽng cžc phÝm mĂČi tÂȘn lÂȘn/xuĂšng (↑/↓) trÂȘn b”n phÝm ¼Ó nhËn
lÂči cžc dßng lÖnh Ÿ· ¼−üc ¼−a v”o tr−íc Ÿ©y tÂči dÊu nhŸc shell, chĂ€n mĂ©t trong cžc
dßng lÖnh Ÿã v” biÂȘn tËp lÂči nĂ©i dung dßng lÖnh theo Ÿóng yÂȘu cÇu mĂ­i cña m×nh.
VÝ dĂŽ, ng−ĂȘi dĂŻng vĂ”a gĂą xong dßng lÖnh:
# ls -l tenfile*
sau Ÿã muĂšn gĂą lÖnh ls -l tentaptin th× tÂči dÊu nhŸc cña shell, ng−ĂȘi dĂŻng sö dĂŽng
cžc phÝm di chuyÓn lÂȘn (↑) hoÆc xuĂšng (↓) ¼Ó nhËn ¼−üc:
# ls -l tenfile*
dĂŻng cžc phÝm tŸt ¼Ó di chuyÓn, xož kÝ tĂč (xem phÇn sau) ¼Ó cĂŁ ¼−üc:
# ls -l ten
v” gĂą tiÕp cžc kÝ tĂč "taptin" ¼Ó nhËn ¼−üc:
# ls -l tentaptin
chÝnh l” kÕt qu¶ mong muĂšn.
Trong tr−ĂȘng hĂźp sĂš l−üng kÝ tĂč thay thÕ l” rÊt Ýt so vĂ­i sĂš l−üng kÝ tĂč cña to”n
dßng lÖnh th× hiÖu qu¶ cña cžch thĂžc n”y rÊt cao.
L−u Ăœ:
ViÖc nhÊn liÂȘn tiÕp cžc phÝm di chuyÓn lÂȘn (↑) hoÆc xuĂšng (↓) cho phÐp
ng−ĂȘi dĂŻng nhËn ¼−üc cžc dßng lÖnh Ÿ· gĂą tĂ” tr−íc m” kh«ng chØ dßng lÖnh
mĂ­i ¼−üc gĂą. Cžch thĂžc n”y t−¬ng tĂč vĂ­i cžch thĂžc sö dĂŽng tiÖn Ých DOSKEY
trong hÖ ÂźiÒu h”nh MS-DOS.
21
MĂ©t sĂš phÝm ¼Æc biÖt khi gĂą lÖnh:
Khi ng−ĂȘi dĂŻng gĂą lÖnh cĂŁ thÓ xÈy ra mĂ©t sĂš t×nh huĂšng nh− sau:
Dßng lÖnh Âźang gĂą cĂŁ chç sai sĂŁt, kh«ng Ÿóng theo yÂȘu cÇu cña ng−ĂȘi dĂŻng
v× vËy cÇn ph¶i söa lÂči Ÿ«i chĂłt nĂ©i dung trÂȘn dßng lÖnh Ÿã. Trong tr−ĂȘng hĂźp
Ÿã cÇn sö dĂŽng cžc phÝm ¼Æc biÖt (cßn gĂ€i l” phÝm viÕt tŸt hay phÝm tŸt) ¼Ó di
chuyÓn, xož bĂĄ, bĂŠ sung v”o nĂ©i dung dßng lÖnh.
Sau khi sö dĂŽng cžch thĂžc kh«i phĂŽc dßng lÖnh, chĂłng ta nhËn ¼−üc dßng
lÖnh t−¬ng tĂč vĂ­i lÖnh cÇn gĂą v” sau Ÿã sö dĂŽng cžc phÝm tŸt ¼Ó ho”n thiÖn
lÖnh.
D−íi Ÿ©y giĂ­i thiÖu cžc phÝm tŸt v” Ăœ nghÜa cña viÖc sö dĂŽng chĂłng:
‱ NhÊn phÝm → ¼Ó di chuyÓn con trĂĄ sang bÂȘn ph¶i mĂ©t vÞ trÝ
‱ NhÊn phÝm ← ¼Ó di chuyÓn con trĂĄ sang bÂȘn trži mĂ©t vÞ trÝ
‱ NhÊn phÝm <ESC-BACKSPACE> ¼Ó xož mĂ©t tĂ” bÂȘn trži con trĂĄ
‱ NhÊn phÝm <ESC-D> ¼Ó xož mĂ©t tĂ” bÂȘn ph¶i con trĂĄ
‱ NhÊn phÝm <ESC-F> ¼Ó di chuyÓn con trĂĄ sang bÂȘn ph¶i mĂ©t tĂ”
‱ NhÊn phÝm <ESC-B> ¼Ó di chuyÓn con trĂĄ sang bÂȘn trži mĂ©t tĂ”
‱ NhÊn phÝm <CTRL-A> ¼Ó di chuyÓn con trá vÒ ¼Çu dßng lÖnh
‱ NhÊn phÝm <CTRL-E> ¼Ó di chuyÓn con trá vÒ cuùi dßng
‱ NhÊn phÝm <CTRL-U> ¼Ó xãa dßng lÖnh
Cã thÓ dïng phÝm <ALT> thay cho phÝm <ESC>.
Cžc kÝ hiÖu m« t¶ nhĂŁm tËp tin v” phÝm <Tab>:
Khi gĂą lÖnh thĂčc sĂč nhiÒu tr−ĂȘng hĂźp ng−ĂȘi dĂŻng mong muĂšn mĂ©t tham sĂš
trong lÖnh kh«ng chØ xžc ¼Þnh mĂ©t tËp tin m” lÂči liÂȘn quan ¼Õn mĂ©t nhĂŁm cžc tËp tin
m” tÂȘn gĂ€i cña cžc tËp tin trong nhĂŁm cĂŁ chung mĂ©t tÝnh chÊt n”o Ÿã. Trong nhĂ·ng
tr−ĂȘng hĂźp nh− vËy, ng−ĂȘi dĂŻng cÇn sö dĂŽng cžc kÝ hiÖu m« t¶ nhĂŁm tËp tin
(wildcards), chĂłng ta gĂ€i l” kÝ hiÖu m« t¶ nhĂŁm (cßn ¼−üc gĂ€i l” kÝ hiÖu thay thÕ).
Ng−ĂȘi ta sö dĂŽng cžc kÝ tĂč *, ? v” cÆp hai dÊu [ v” ] ¼Ó m« t¶ nhĂŁm tËp tin. Cžc kÝ tĂč
n”y mang Ăœ nghÜa nh− sau khi viÕt v”o tham sĂš tÂȘn tËp tin thĂčc sĂč:
‱ "*" : l” kĂœ tĂč m« t¶ nhĂŁm gĂ„m mĂ€i x©u kÝ tĂč (thay thÕ mĂ€i x©u). M« t¶
n”y cho mĂ©t nhĂŁm lĂ­n nhÊt trong ba m« t¶.
‱ "?" : m« t¶ nhĂŁm gĂ„m mĂ€i x©u vĂ­i Ÿé d”i kh«ng quž 1 (thay thÕ mĂ©t kÝ
tĂč). NhĂŁm n”y l” tËp con cña nhĂŁm ¼Çu tiÂȘn (theo kÝ tĂč "*").
‱ [x©u-kÝ-tĂč] : m« t¶ nhĂŁm gĂ„m mĂ€i x©u cĂŁ Ÿé d”i 1 l” mçi kÝ tĂč thuĂ©c
x©u nĂŁi trÂȘn. M« t¶ n”y cho mĂ©t nhĂŁm cĂŁ lĂčc l−üng bÐ nhÊt trong ba m« t¶.
NhĂŁm n”y l” tËp con cña nhĂŁm thĂž hai (theo kÝ tĂč "?"). Khi gĂą lÖnh ph¶i gĂą c¶
hai dÊu [ v” ]. MĂ©t dÂčng khžc cña m« t¶ nhĂŁm n”y l” [<kÝ_tĂč_1>-<kÝ_tĂč_2>]
nghÜa l” giĂ·a cÆp dÊu ngoÆc cĂŁ ba kÝ tĂč trong Ÿã kÝ tĂč Ă« giĂ·a l” dÊu nĂši (dÊu -)
th× cžch viÕt n”y t−¬ng ¼−¬ng vĂ­i viÖc liÖt kÂȘ mĂ€i kÝ tĂč tĂ” <kÝ_tĂč_1> ¼Õn <kÝ
_tĂč_2>. ChÂŒng hÂčn, cžch viÕt [a-d] t−¬ng ¼−¬ng vĂ­i cžch viÕt [abcd].
22
VÝ dĂŽ, gi¶ sö khi muĂšn l”m viÖc vĂ­i tÊt c¶ cžc tËp tin trong mĂ©t th− mĂŽc n”o Ÿã,
ng−ĂȘi dĂŻng gĂą * thay thÕ tham sĂš tËp-tin th× xžc ¼Þnh ¼−üc cžc tÂȘn tËp tin sau (chĂłng
ta viÕt bĂšn tÂȘn tËp tin trÂȘn mĂ©t dßng):
info-dir initlog.conf inittab lynx.cfg
mail.rc mailcap minicom.users motd
mtab mtools.conf services shadow
shadow- shells smb.conf sysctl.conf
syslog.conf temp termcap up2date.conf
temp termcap
NÕu ng−ĂȘi dĂŻng gĂą s* (¼Ó chØ cžc tÂȘn cĂŁ chĂ· cži ¼Çu l” s) thay thÕ tham sĂš tËp-tin th×
xžc ¼Þnh ¼−üc cžc tÂȘn tËp tin sau:
shadow shadow- shells sysctl.conf
syslog.conf
NÕu ng−ĂȘi dĂŻng gĂą [si]* (¼Ó chØ cžc tÂȘn cĂŁ chĂ· cži ¼Çu l” s hoÆc i, chĂł Ăœ dĂŻng c¶
hai kÝ tĂč [ v” ]) thay thÕ tham sĂš tËp-tin th× xžc ¼Þnh cžc tÂȘn tËp tin sau:
info-dir initlog.conf inittab services
shadow shadow- shells smb.conf
sysctl.conf syslog.conf
L−u Ăœ:
Nh− vËy, Linux (v” UNIX nĂŁi chung) kh«ng chØ sö dĂŽng hai kÝ tĂč m« t¶
nhĂŁm * v” ? m” cßn cĂŁ cžch thĂžc sö dĂŽng cÆp kÝ tĂč [ v” ].
CÇn ph©n biÖt cÆp dÊu [ v” ] ¼−üc sö dĂŽng khi ng−ĂȘi dĂŻng gĂą lÖnh cĂŁ Ăœ
nghÜa ho”n to”n khžc vĂ­i Ăœ nghÜa cña chĂłng khi ¼−üc sö dĂŽng trong m« t¶ lÖnh.
HÂŹn thÕ nĂ·a, Linux cßn cung cÊp cho ng−ĂȘi dĂŻng cžch thĂžc sö dĂŽng phÝm <TAB>
¼Ó ho”n th”nh nĂšt tÂȘn tËp tin (tÂȘn th− mĂŽc) trong lÖnh. VÝ dĂŽ, khi chĂłng ta gĂą dßng
lÖnh
# ls /u<TAB>local<TAB>b<TAB>
th× nĂŁ cĂČng t−¬ng ¼−¬ng nh− gĂą dßng lÖnh (v” Ÿ©y chÝnh l” nĂ©i dung xuÊt hiÖn tÂči
dÊu nhŸc shell):
# ls /usr/local/bin
vĂ­i ÂźiÒu kiÖn trong th− mĂŽc /usr chØ cĂŁ th− mĂŽc local ¼−üc bŸt ¼Çu bĂ«i chĂ· "l" v”
trong th− mĂŽc local cĂČng chØ cĂŁ th− mĂŽc bin ¼−üc bŸt ¼Çu bĂ«i chĂ· "b".
Trong tr−ĂȘng hĂźp nÕu nh− mĂ©t kÝ tĂč ch−a Ÿñ xžc ¼Þnh, ng−ĂȘi dĂŻng cÇn gĂą thÂȘm kÝ
tĂč tiÕp theo trong tÂȘn tËp tin (tÂȘn th− mĂŽc) v” nhÊn phÝm <TAB> ¼Ó ho”n th”nh dßng
lÖnh.
1.3.2. TiÕp nùi dßng lÖnh
Nh− Ÿ· l−u Ăœ trÂȘn Ÿ©y, mĂ©t dßng lÖnh cĂŁ thÓ gĂ„m mĂ©t hoÆc mĂ©t sĂš lÖnh, mÆt khžc
tham sĂš cña lÖnh cĂŁ thÓ l” rÊt d”i kh«ng thÓ trong khu«n khĂŠ cña mĂ©t dßng všn b¶n
¼−üc. Khi gĂą lÖnh, nÕu dßng lÖnh quž d”i, Linux cho phÐp ngŸt dßng lÖnh xuĂšng dßng
d−íi b»ng cžch thÂȘm kÝ tĂč bžo hiÖu chuyÓn dßng "  " tÂči cuĂši dßng; trong tr−ĂȘng hĂźp
Ÿã, kÝ tĂč "  " ph¶i l” kĂœ tĂč cuĂši cĂŻng thuĂ©c dßng lÖnh tr−íc.
23
VÝ dî,
# cd vsd
thumuc
th× dßng thĂž hai l” phÇn tiÕp theo cña dßng thĂž nhÊt v” kÕt hĂźp c¶ hai dßng n”y
thĂčc chÊt l” mĂ©t dßng lÖnh Linux.
1.4. Trang Man (Man Page)
ChĂłng ta cĂŁ thÓ nĂŁi r»ng Linux l” mĂ©t hÖ ÂźiÒu h”nh rÊt phĂžc tÂčp vĂ­i h”ng ngh×n
lÖnh v” mçi lÖnh lÂči cĂŁ thÓ cĂŁ tĂ­i v”i hoÆc v”i chĂŽc t×nh huĂšng sö dĂŽng do chĂłng cho
phÐp cĂŁ nhiÒu tĂŻy chĂ€n lÖnh. §Ó thuĂ©c hÕt ¼−üc nĂ©i dung tÊt c¶ cžc lÖnh cña Linux l”
mĂ©t ÂźiÒu hÕt sĂžc khĂŁ khšn, cĂŁ thÓ nĂŁi l” kh«ng thÓ. Linux cho phÐp ng−ĂȘi dĂŻng sö
dĂŽng cžch thĂžc gĂ€i cžc trang Man ¼Ó cĂŁ ¼−üc cžc th«ng tin ¼Çy Ÿñ giĂ­i thiÖu nĂ©i dung
cžc lÖnh. D−íi Ÿ©y l” mĂ©t sĂš nĂ©i dung vÒ cžch thĂžc sö dĂŽng trang Man.
"Man" trong "trang Man" l” tĂ” viÕt tŸt cña "manual", ¼−üc coi l” t”i liÖu trĂčc tuyÕn
trong Linux Ÿ· l−u trĂ· to”n bĂ© cžc lÖnh cĂŁ sÂœn vĂ­i cžc th«ng tin tham kh¶o khž ¼Çy Ÿñ
cho phÐp ng−ĂȘi dĂŻng cĂŁ thÓ mĂ« ra ¼Ó nhËn ¼−üc trĂź giĂłp.
§Ó mĂ« trang Man cña mĂ©t lÖnh, chĂłng ta sö dĂŽng lÖnh man cña Linux v” gĂą:
# man <tÂȘn-lÖnh>
NĂ©i dung cña trang Man nĂŁi chung l” kh«ng quž khĂŁ hiÓu, song ¼Ó hiÓu hÕt ¼−üc
nĂŁ cĂČng ¼ßi hĂĄi kh«ng Ýt thĂȘi gian. Tuy nhiÂȘn, khi quÂȘn nĂ©i dung mĂ©t lÖnh n”o Ÿã th×
cžch tĂšt nhÊt l” h·y sö dĂŽng trang Man.
CÊu trĂłc chung cña mĂ©t trang Man nh− sau:
COMMAND(1) Linux Programmer's Manual COMMAND(1)
NAME
tÂȘn lÖnh - khži qužt tžc dĂŽng cña lÖnh
SYNOPSIS
cĂł phžp cña lÖnh
DESCRIPTION
m« t¶ cĂŽ thÓ hÂŹn vÒ tžc dĂŽng cña lÖnh
OPTIONS
liÖt kÂȘ cžc tĂŻy chĂ€n lÖnh v” tžc dĂŽng cña chĂłng
FILES
liÖt kÂȘ cžc tËp tin m” lÖnh sö dĂŽng hoÆc tham chiÕu ¼Õn
SEE ALSO
liÖt kÂȘ cžc lÖnh, cžc t”i liÖu, ..., cĂŁ liÂȘn quan ¼Õn lÖnh
REPORTING BUGS
¼Þa chØ liÂȘn hÖ nÕu gÆp lçi khi sö dĂŽng lÖnh
AUTHOR
tÂȘn tžc gi¶ cña lÖnh
24
Ng−ĂȘi dĂŻng thËm chÝ kh«ng nhĂ­ chÝnh xžc tÂȘn lÖnh. Linux cßn cĂŁ mĂ©t cžch thĂžc
hç trĂź ng−ĂȘi dĂŻng cĂŁ thÓ nhanh chĂŁng t×m ¼−üc lÖnh cÇn sö dĂŽng trong tr−ĂȘng hĂźp chØ
nhĂ­ nhĂ·ng chĂ· cži ¼Çu cña tÂȘn lÖnh, Ÿã l” cžch thĂžc sö dĂŽng phÝm TAB. Trong cžch
thĂžc n”y, ng−ĂȘi dĂŻng cÇn nhĂ­ mĂ©t sĂš chĂ· cži ¼Çu tiÂȘn cña tÂȘn lÖnh.
CĂŁ thÓ tr×nh b”y cžch thĂžc Ÿã theo cĂł phžp sau Ÿ©y:
# <d∙y-chĂ·-cži><TAB><TAB>
Trong Ÿã d·y-chĂ·-cži cĂŁ tĂ” mĂ©t ¼Õn mĂ©t v”i chĂ· cži thuĂ©c phÇn ¼Çu cña tÂȘn lÖnh.
ChĂł Ăœ r»ng, cžc chĂ· cži v” hai phÝm <TAB> ph¶i ¼−üc gĂą liÂȘn tiÕp nhau.
KÕt hĂźp cžch thĂžc n”y vĂ­i cžch thĂžc sö dĂŽng lÖnh man (vĂ­i sĂč phong phĂł vÒ tĂŻy
chĂ€n cña lÖnh man) nhËn ¼−üc mĂ©t cžch thĂžc khž tuyÖt vĂȘi trĂź giĂłp ng−ĂȘi dĂŻng.
VÝ dĂŽ, muĂšn sö dĂŽng lÖnh history nh−ng lÂči kh«ng nhĂ­ chÝnh xžc tÂȘn lÖnh ¼−üc
viÕt ra nh− thÕ n”o m” chØ nhĂ­ nĂŁ ¼−üc bŸt ¼Çu bĂ«i chĂ· h, h·y gĂą chĂ· h Ÿã tÂči dÊu
nhŸc shell v” nhÊn phÝm TAB hai lÇn, sÏ thÊy mĂ©t danh sžch cžc lÖnh cĂŁ chĂ· cži ¼Çu
tiÂȘn l” h ¼−üc hiÖn ra trÂȘn m”n h×nh:
# h<TAB><TAB>
h2ph hboot help hexdump
history hostname htdigest h2xs
hcc helpme hf77 hltest
hoststat htpasswd halt hcp
helptool hinotes host hpcdtoppm
hash head hexbin hipstopgm
hostid hpftodit
Nh− vËy, tÊt c¶ cžc lÖnh cĂŁ tÂȘn bŸt ¼Çu vĂ­i chĂ· h ¼−üc hiÓn thÞ trÂȘn m”n h×nh v”
cho phÐp ng−ĂȘi dĂŻng cĂŁ thÓ xžc ¼Þnh ¼−üc lÖnh cÇn quan t©m.
Tr−ĂȘng hĂźp tĂ„n tÂči mĂ©t sĂš l−üng lĂ­n cžc lÖnh cĂŁ cĂŻng chĂ· cži ¼Çu tiÂȘn m” ng−ĂȘi
dĂŻng Ÿ· gĂą, thay v× hiÖn hÕt mĂ€i tÂȘn lÖnh, hÖ ÂźiÒu h”nh cho ra mĂ©t th«ng bžo hĂĄi
ng−ĂȘi dĂŻng cĂŁ muĂšn xem to”n bĂ© cžc lÖnh Ÿã hay kh«ng. Ng−ĂȘi dĂŻng Ÿžp Ăžng th«ng
bžo Ÿã tuĂș theo Ăœ muĂšn cña m×nh.
VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą nĂ©i dung nh− sau:
# p<TAB><TAB>
th× hÖ thĂšng Ÿžp lÂči l”:
There are 289 possibilities. Do you really wish to see them all? (y or n)
Ng−ĂȘi dĂŻng gĂą phÝm "y" nÕu muĂšn xem, hoÆc gĂą "n" nÕu bĂĄ qua.
Ng−ĂȘi dĂŻng cĂŁ thÓ gĂą nhiÒu hÂŹn mĂ©t chĂ· cži Ă« ¼Çu tÂȘn lÖnh v” ÂźiÒu Ÿã cho phÐp
gi¶m bĂ­t sĂš tÂȘn lÖnh m” hÖ thĂšng t×m ¼−üc v” hiÓn thÞ. ChÂŒng hÂčn, khi biÕt hai chĂ· cži
¼Çu l” "pw" v” ng−ĂȘi dĂŻng gĂą:
# pw<TAB><TAB>
th× hÖ thĂšng sÏ hiÖn ra danh sžch cžc tÂȘn lÖnh bŸt ¼Çu bĂ«i "pw":
pwck pwconv pwd
pwdb_ chkpwd pwunconv
25
Trong tr−ĂȘng hĂźp n”y, ng−ĂȘi dĂŻng sÏ nhËn biÕt ¼−üc tÂȘn lÖnh Âźang cÇn t×m thuËn
tiÖn h¬n.
26
Ch−¬ng 2. lÖnh thao t¾c víi hÖ thùng
2.1. Quž tr×nh khĂ«i Ÿéng Linux
Quž tr×nh c”i ¼Æt Linux ¼−üc tr×nh b”y trong phĂŽ lĂŽc A cña cuĂšn sžch n”y. Trong
phÇn n”y, chĂłng ta xem xÐt sÂŹ bĂ© quž tr×nh khĂ«i Ÿéng hÖ ÂźiÒu h”nh Linux.
MĂ©t trong nhĂ·ng cžch thĂžc khĂ«i Ÿéng Linux phĂŠ biÕn nhÊt l” cžch thĂžc do ch−¬ng
tr×nh LILO (LInux LOader) thĂčc hiÖn. Ch−¬ng tr×nh LILO ¼−üc nÂčp lÂȘn ¼Üa cña mžy
tÝnh khi c”i ¼Æt hÖ ÂźiÒu h”nh Linux. LILO ¼−üc nÂčp v”o Master Boot Record cña ¼Üa
cĂžng hoÆc v”o Boot Sector tÂči ph©n vĂŻng khĂ«i Ÿéng (trÂȘn ¼Üa cĂžng hoÆc ¼Üa mÒm). Gi¶
sö mžy tÝnh cña chĂłng ta Ÿ· c”i ¼Æt Linux v” sö dĂŽng LILO ¼Ó khĂ«i Ÿéng hÖ ÂźiÒu
h”nh. LILO thÝch hĂźp vĂ­i viÖc trÂȘn mžy tÝnh ¼−üc c”i ¼Æt mĂ©t sĂš hÖ ÂźiÒu h”nh khžc
nhau v” theo Ÿã, LILO cßn cho phÐp ng−ĂȘi dĂŻng chĂ€n lĂča hÖ ÂźiÒu h”nh ¼Ó khĂ«i Ÿéng.
Giai ÂźoÂčn khĂ«i Ÿéng Linux tĂŻy thuĂ©c v”o cÊu h×nh LILO Ÿ· ¼−üc lĂča chĂ€n trong
tiÕn tr×nh c”i ¼Æt Linux. Trong t×nh huĂšng Ÿn gi¶n nhÊt, Linux ¼−üc khĂ«i Ÿéng tĂ” ¼Üa
cĂžng hay ¼Üa mÒm khĂ«i Ÿéng.
Quž tr×nh khĂ«i Ÿéng Linux cĂŁ thÓ ¼−üc m« t¶ theo sÂŹ ŸÄ sau:
Theo sÂŹ ŸÄ n”y, LILO ¼−üc t¶i v”o mžy ¼Ó thĂčc hiÖn m” viÖc ¼Çu tiÂȘn l” ¼−a nh©n
v”o bĂ© nhĂ­ trong v” sau Ÿã t¶i ch−¬ng tr×nh init ¼Ó thĂčc hiÖn viÖc khĂ«i Ÿéng Linux.
NÕu c”i ¼Æt nhiÒu phiÂȘn b¶n Linux hay c”i Linux cĂŻng cžc hÖ ÂźiÒu h”nh khžc
(trong cžc tr−ĂȘng hĂźp nh− thÕ, mçi phiÂȘn b¶n Linux hoÆc hÖ ÂźiÒu h”nh khžc ¼−üc gžn
nh·n - label ¼Ó ph©n biÖt), th× th«ng bžo sau Ÿ©y ¼−üc LILO ¼−a ra:
LILO boot:
cho phÐp nhËp x©u l” nh·n cña mĂ©t trong nhĂ·ng hÖ ÂźiÒu h”nh hiÖn cĂŁ trÂȘn mžy ¼Ó
khĂ«i Ÿéng nĂŁ. TÂči thĂȘi ÂźiÓm Ÿã, ng−ĂȘi dĂŻng cÇn gĂą nh·n cña hÖ ÂźiÒu h”nh cÇn khĂ«i
Ÿéng v”o, vÝ dĂŽ, gĂą
LILO boot: linux
nÕu chĂ€n khĂ«i Ÿéng ¼Ó l”m viÖc trong Linux, hoÆc gĂą
LILO boot: dos
nÕu chĂ€n khĂ«i Ÿéng ¼Ó l”m viÖc trong MS-DOS, Windows.
L−u Ăœ:
NÕu chĂłng ta kh«ng nhĂ­ ¼−üc nh·n cña hÖ ÂźiÒu h”nh cĂŁ trong mžy ¼Ó
chĂ€n, h·y gĂą phÝm <TAB> ¼Ó ¼−üc LILO cho biÕt nh·n cña cžc hÖ ÂźiÒu h”nh.
LILO boot: <TAB>
sÏ hiÖn ra danh sžch cžc nh·n (vÝ dĂŽ nh−): linux dos ...
v” hiÖn lÂči th«ng bžo nĂŁi trÂȘn ¼Ó ta gĂą nh·n cña hÖ ÂźiÒu h”nh.
LILO cĂČng cho phÐp ¼Æt chÕ Ÿé chĂ€n ngÇm ¼Þnh hÖ ÂźiÒu h”nh ¼Ó khĂ«i Ÿéng
m” theo Ÿã nÕu chĂłng ta kh«ng cĂŁ tžc Ÿéng g× sau th«ng bžo chĂ€n hÖ ÂźiÒu
h”nh th× LILO sÏ tĂč Ÿéng chĂ€n hÖ ÂźiÒu h”nh ngÇm ¼Þnh ra ¼Ó khĂ«i Ÿéng. NÕu
chĂłng ta kh«ng can thiÖp v”o cžc tËp tin t−¬ng Ăžng cña tr×nh LILO th× hÖ ÂźiÒu
h”nh Linux l” hÖ ÂźiÒu h”nh ngÇm ¼Þnh.
LILO Nh©n init
27
Gi¶ sö Linux Ÿ· ¼−üc chĂ€n ¼Ó khĂ«i Ÿéng. Khi init thĂčc hiÖn, chĂłng ta sÏ thÊy mĂ©t
chuçi (kho¶ng v”i chĂŽc) dßng th«ng bžo cho biÕt hÖ thĂšng phÇn cĂžng ¼−üc Linux
nhËn diÖn v” thiÕt lËp cÊu h×nh cĂŻng vĂ­i tÊt c¶ tr×nh ÂźiÒu khiÓn phÇn mÒm ¼−üc nÂčp
khi khĂ«i Ÿéng. Quž tr×nh init l” quž tr×nh khĂ«i thñy, l” cha cña mĂ€i quž tr×nh. TÂči thĂȘi
ÂźiÓm khĂ«i Ÿéng hÖ thĂšng init thĂčc hiÖn vai trß ¼Çu tiÂȘn cña m×nh l” chÂčy ch−¬ng tr×nh
shell trong tËp tin /etc/inittab v” cžc dßng th«ng bžo trÂȘn Ÿ©y chÝnh l” kÕt qu¶ cña
viÖc chÂčy ch−¬ng tr×nh shell Ÿã. Sau khi ch−¬ng tr×nh shell nĂŁi trÂȘn ¼−üc thĂčc hiÖn
xong, quž tr×nh ng−ĂȘi dĂŻng Ÿšng nhËp (login) v”o hÖ thĂšng ¼−üc tiÕn h”nh.
2.2. Thñ tĂŽc Ÿšng nhËp v” cžc lÖnh thožt khĂĄi hÖ thĂšng
2.2.1. §¹ng nhËp
Sau khi hÖ thĂšng Linux (lÊy Red Hat 6.2 l”m vÝ dĂŽ) khĂ«i Ÿéng xong, trÂȘn m”n h×nh
xuÊt hiÖn nhĂ·ng dßng sau:
Ret Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i686
May1 login:
Dßng thĂž nhÊt v” dßng thĂž hai cho biÕt loÂči phiÂȘn b¶n Linux, phiÂȘn b¶n cña nh©n
v” kiÕn trĂłc phÇn cĂžng cĂŁ trÂȘn mžy, dßng thĂž ba l” dÊu nhŸc Ÿšng nhËp ¼Ó ng−ĂȘi dĂŻng
thĂčc hiÖn viÖc Ÿšng nhËp. ChĂł Ăœ l” cžc dßng trÂȘn Ÿ©y cĂŁ thÓ thay ŸÊi chĂłt Ýt tĂŻy thuĂ©c
v”o phiÂȘn b¶n Linux.
TÂči dÊu nhŸc Ÿšng nhËp, h·y nhËp tÂȘn ng−ĂȘi dĂŻng (cßn gĂ€i l” tÂȘn Ÿšng nhËp): Ÿ©y
l” tÂȘn kÝ hiÖu Ÿ· cung cÊp cho Linux nh»m nhËn diÖn mĂ©t ng−ĂȘi dĂŻng cĂŽ thÓ. TÂȘn
ChĂłng ta cĂŁ thÓ thay ŸÊi cžc dßng hiÓn thÞ nh− tr×nh b”y trÂȘn Ÿ©y b»ng cžch
söa ŸÊi tËp tin /etc/rc.d/rc.local nh− sau:
Thay ÂźoÂčn ch−¬ng tr×nh
echo "" > /etc/issue
echo "$R" >> /etc/issue
echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
th”nh
echo "" > /etc/issue
echo "Th«ng bžo muĂšn hiÓn thÞ" >> /etc/issue
vÝ dĂŽ söa th”nh:
echo "" > /etc/issue
echo "This is my computer" >> /etc/issue
th× trÂȘn m”n h×nh Ÿšng nhËp sÏ cĂŁ dÂčng sau:
This is my computer
hostname login:
28
Ÿšng nhËp Ăžng vĂ­i mçi ng−ĂȘi dĂŻng trÂȘn hÖ thĂšng l” duy nhÊt, kÌm theo mĂ©t mËt khÈu
¼¹ng nhËp.
May1 login: root
Password:
Khi nhËp xong tÂȘn Ÿšng nhËp, hÖ thĂšng sÏ hiÖn ra th«ng bžo hĂĄi mËt khÈu v” di
chuyÓn con trĂĄ xuĂšng dßng tiÕp theo ¼Ó ng−ĂȘi dĂŻng nhËp mËt khÈu. MËt khÈu khi
¼−üc nhËp sÏ kh«ng hiÓn thÞ trÂȘn m”n h×nh v” chÝnh ÂźiÒu Ÿã giĂłp tržnh khĂĄi sĂč "nhßm
ngĂŁ" cña ng−ĂȘi khžc.
NÕu nhËp sai tÂȘn Ÿšng nhËp hoÆc mËt khÈu, hÖ thĂšng sÏ ¼−a ra mĂ©t th«ng bžo lçi:
May1 login: root
Password:
Login incorrect
May1 login:
NÕu Ÿšng nhËp th”nh c«ng, ng−ĂȘi dĂŻng sÏ nh×n thÊy mĂ©t sĂš th«ng tin vÒ hÖ thĂšng,
mĂ©t v”i tin tĂžc cho ng−ĂȘi dĂŻng... LĂłc Ÿã, dÊu nhŸc shell xuÊt hiÖn ¼Ó ng−ĂȘi dĂŻng bŸt
¼Çu phiÂȘn l”m viÖc cña m×nh.
May1 login: root
Password:
Last login: Fri Oct 27 14:16:09 on tty2
root@may1 /root]#
D·y kÝ tĂč trong dßng cuĂši cĂŻng chÝnh l” dÊu nhŸc shell. Trong dÊu nhŸc n”y, root
l” tÂȘn ng−ĂȘi dĂŻng Ÿšng nhËp, may1 l” tÂȘn mžy v” /root tÂȘn th− mĂŽc hiÖn thĂȘi (v× Ÿ©y
l” ng−ĂȘi dĂŻng root). Khi dÊu nhŸc shell xuÊt hiÖn trÂȘn m”n h×nh th× ÂźiÒu Ÿã cĂŁ nghÜa l”
hÖ ÂźiÒu h”nh Ÿ· sÂœn s”ng tiÕp nhËn mĂ©t yÂȘu cÇu mĂ­i cña ng−ĂȘi dĂŻng.
DÊu nhŸc shell cĂŁ thÓ khžc vĂ­i tr×nh b”y trÂȘn Ÿ©y (MĂŽc 2.8 sÏ cung cÊp cžch thĂžc
thay ŸÊi dÊu nhŸc shell), nh−ng cĂŁ thÓ hiÓu nĂŁ l” chuçi kÝ tĂč bŸt ¼Çu mĂ©t dßng cĂŁ chĂža
trĂĄ chuĂ©t v” lu«n xuÊt hiÖn mçi khi hÖ ÂźiÒu h”nh ho”n th”nh mĂ©t c«ng viÖc n”o Ÿã.
2.2.2. Ra khái hÖ thùng
§Ó kÕt thĂłc phiÂȘn l”m viÖc ng−ĂȘi dĂŻng cÇn thĂčc hiÖn thñ tĂŽc ra khĂĄi hÖ thĂšng. CĂŁ
rÊt nhiÒu cžch cho phÐp thožt khĂĄi hÖ thĂšng, Ă« Ÿ©y chĂłng ta xem xÐt mĂ©t sĂš cžch
th«ng dĂŽng nhÊt.
Cžch Ÿn gi¶n nhÊt ¼Ó ٦m b¶o thožt khĂĄi hÖ thĂšng Ÿóng ÂźÂŸn l” nhÊn tĂŠ
hĂźp phÝm CTRL+ALT+DEL. Khi Ÿã, trÂȘn m”n h×nh sÏ hiÓn thÞ mĂ©t sĂš th«ng
bžo cña hÖ thĂšng v” cuĂši cĂŻng l” th«ng bžo thožt tr−íc khi tŸt mžy. CÇn chĂł Ăœ
l”: NÕu Âźang l”m viÖc trong m«i tr−ĂȘng X Window System, h·y nhÊn tĂŠ hĂźp
phÝm CTRL+ALT+BACKSPACE tr−íc rĂ„i sau Ÿã h·y nhÊn
CTRL+ALT+DEL.
Cžch thĂž hai l” sö dĂŽng lÖnh shutdown vĂ­i cĂł phžp nh− sau:
shutdown [tïy-chÀn] <time> [c¶nh-bžo]
LÖnh n”y cho phÐp dĂ”ng tÊt c¶ cžc dÞch vĂŽ Âźang chÂčy trÂȘn hÖ thĂšng.
29
Cžc tĂŻy-chĂ€n cña lÖnh n”y nh− sau:
-k
kh«ng thĂčc sĂč shutdown m” chØ c¶nh bžo.
-r
khĂ«i Ÿéng lÂči ngay sau khi shutdown.
-h
tŸt mžy thĂčc sĂč sau khi shutdown.
-f
khĂ«i Ÿéng lÂči nhanh v” bĂĄ qua viÖc kiÓm tra ¼Üa.
-F
khĂ«i Ÿéng lÂči v” thĂčc hiÖn viÖc kiÓm tra ¼Üa.
-c
bĂĄ qua kh«ng chÂčy lÖnh shutdown. Trong tĂŻy chĂ€n n”y kh«ng thÓ
¼−a ra tham sĂš thĂȘi gian nh−ng cĂŁ thÓ ¼−a ra th«ng bžo gi¶i thÝch trÂȘn
dßng lÖnh göi cho tÊt c¶ cžc ng−ĂȘi dĂŻng.
-t sÚ-gi©y
qui ¼Þnh init(8) chĂȘ kho¶ng thĂȘi gian sĂš-gi©y tÂčm dĂ”ng giĂ·a quž tr×nh
göi c¶nh bžo v” tÝn hiÖu kill, tr−íc khi chuyÓn sang mĂ©t mĂžc chÂčy khžc.
v” hai tham sĂš vÞ trÝ cßn lÂči:
time
¼Æt thĂȘi ÂźiÓm shutdown. Tham sĂš time cĂŁ hai dÂčng. DÂčng tuyÖt ŸÚi l”
gg:pp (gg: giĂȘ trong ng”y, pp: phĂłt) th× hÖ thĂšng sÏ shutdown khi ŸÄng hĂ„
mžy trĂŻng vĂ­i giž trÞ tham sĂš. DÂčng t−¬ng ŸÚi l” +<sĂš> l” hÑn sau thĂȘi
kho¶ng <sĂš> phĂłt sÏ shutdown; coi shutdown lËp tĂžc t−¬ng ¼−¬ng vĂ­i +0.
c¶nh-bžo
th«ng bžo göi ¼Õn tÊt c¶ ng−ĂȘi dĂŻng trÂȘn hÖ thĂšng. Khi lÖnh thĂčc hiÖn
tÊt c¶ cžc mžy ng−ĂȘi dĂŻng ¼Òu nhËn ¼−üc c¶nh bžo.
VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą lÖnh:
shutdown +1 Sau mot phut nua he thong se shutdown!
trÂȘn m”n h×nh cña tÊt c¶ ng−ĂȘi dĂŻng xuÊt hiÖn th«ng bžo "Sau mot phut nua he
thong se shutdown! " v” sau mĂ©t phĂłt th× hÖ thĂšng shutdown thĂčc sĂč.
Cžch thĂž ba l” sö dĂŽng lÖnh halt vĂ­i cĂł phžp nh− sau:
halt [tïy-chÀn]
LÖnh n”y thĂčc hiÖn viÖc tŸt hÂŒn mžy.
Cžc tuĂș chĂ€n cña lÖnh halt:
-w
30
kh«ng thĂčc sĂč tŸt mžy nh−ng vÉn ghi cžc th«ng tin lÂȘn tËp tin
/var/log/wtmp (Ÿ©y l” tËp tin l−u trĂ· danh sžch cžc ng−ĂȘi dĂŻng Ÿšng
nhËp th”nh c«ng v”o hÖ thĂšng).
-d
kh«ng ghi th«ng tin lÂȘn tËp tin /var/log/wtmp. TĂŻy chĂ€n -n cĂŁ Ăœ
nghÜa t−¬ng tĂč song kh«ng tiÕn h”nh viÖc ŸÄng bĂ© hĂŁa.
-f
thĂčc hiÖn tŸt mžy ngay m” kh«ng thĂčc hiÖn lÇn l−üt viÖc dĂ”ng cžc dÞch
vĂŽ cĂŁ trÂȘn hÖ thĂšng.
-i
chØ thĂčc hiÖn dĂ”ng tÊt c¶ cžc dÞch vĂŽ mÂčng tr−íc khi tŸt mžy.
ChĂłng ta cÇn nhĂ­ r»ng, nÕu thožt khĂĄi hÖ thĂšng kh«ng Ÿóng cžch th× dÉn ¼Õn hËu
qu¶ l” mĂ©t sĂš tËp tin hay to”n bĂ© hÖ thĂšng tËp tin cĂŁ thÓ bÞ h− hĂĄng.
L−u Ăœ:
CĂŁ thÓ sö dĂŽng lÖnh exit ¼Ó trĂ« vÒ dÊu nhŸc Ÿšng nhËp hoÆc kÕt thĂłc phiÂȘn
l”m viÖc b»ng lÖnh logout.
2.2.3. KhĂ«i Ÿéng lÂči hÖ thĂšng
Ngo”i viÖc thožt khĂĄi hÖ thĂšng nhĂȘ cžc cžch thĂžc trÂȘn Ÿ©y (Ên tĂŠ hĂźp ba phÝm
Ctrl+Alt+Del, dĂŻng lÖnh shutdown hoÆc lÖnh halt), khi cÇn thiÕt (chÂŒng hÂčn, gÆp
ph¶i t×nh huĂšng mĂ©t tr×nh Ăžng dĂŽng chÂčy quÈn) cĂŁ thÓ khĂ«i Ÿéng lÂči hÖ thĂšng nhĂȘ lÖnh
reboot.
Có ph¾p lÖnh reboot:
reboot [tïy-chÀn]
LÖnh n”y cho phÐp khĂ«i Ÿéng lÂči hÖ thĂšng. NĂŁi chung th× chØ siÂȘu ng−ĂȘi dĂŻng mĂ­i
¼−üc phÐp sö dĂŽng lÖnh reboot, tuy nhiÂȘn, nÕu hÖ thĂšng chØ cĂŁ duy nhÊt mĂ©t ng−ĂȘi
dĂŻng Âźang l”m viÖc th× lÖnh reboot vÉn ¼−üc thĂčc hiÖn song hÖ thĂšng ¼ßi hĂĄi viÖc
x¾c nhËn mËt khÈu.
Cžc tĂŻy chĂ€n cña lÖnh reboot nh− sau l” -w, -d, -n, -f, -i cĂŁ Ăœ nghÜa t−¬ng tĂč nh−
trong lÖnh halt.
2.3. LÖnh thay ¼éi mËt khÈu
MËt khÈu l” vÊn ¼Ò rÊt quan trĂ€ng trong cžc hÖ thĂšng Âźa ng−ĂȘi dĂŻng v” ¼Ó ٦m
b¶o tÝnh b¶o mËt tĂši Âźa, cÇn thiÕt ph¶i chĂł Ăœ tĂ­i viÖc thay ŸÊi mËt khÈu. ThËm chÝ
trong tr−ĂȘng hĂźp hÖ thĂšng chØ cĂŁ mĂ©t ng−ĂȘi sö dĂŽng th× viÖc thay ŸÊi mËt khÈu vÉn l”
rÊt cÇn thiÕt.
MËt khÈu l” mĂ©t x©u kÝ tĂč Âźi kÌm vĂ­i tÂȘn ng−ĂȘi dĂŻng ¼Ó ٦m b¶o cho phÐp mĂ©t
ng−ĂȘi v”o l”m viÖc trong hÖ thĂšng vĂ­i quyÒn hÂčn Ÿ· ¼−üc quy ¼Þnh. Trong quž tr×nh
Ÿšng nhËp, ng−ĂȘi dĂŻng ph¶i gĂą Ÿóng tÂȘn v” mËt khÈu, trong Ÿã gĂą mËt khÈu l” c«ng
viÖc bŸt buĂ©c ph¶i thĂčc hiÖn. TÂȘn ng−ĂȘi dĂŻng cĂŁ thÓ ¼−üc c«ng khai song mËt khÈu th×
tuyÖt ŸÚi ph¶i ¼−üc ٦m b¶o bÝ mËt.
‱ ViÖc Ÿšng kĂœ tÂȘn v” mËt khÈu cña siÂȘu ng−ĂȘi dĂŻng ¼−üc tiÕn h”nh trong quž
tr×nh khĂ«i tÂčo hÖ ÂźiÒu h”nh Linux.
31
‱ ViÖc Ÿšng kĂœ tÂȘn v” mËt khÈu cña mĂ©t ng−ĂȘi dĂŻng th«ng th−ĂȘng ¼−üc tiÕn h”nh
khi mĂ©t ng−ĂȘi dĂŻng mĂ­i Ÿšng kĂœ tham gia sö dĂŽng hÖ thĂšng. Th«ng th−ĂȘng siÂȘu ng−ĂȘi
dĂŻng cung cÊp tÂȘn v” mËt khÈu cho ng−ĂȘi dĂŻng mĂ­i (cĂŁ thÓ do ng−ĂȘi dĂŻng ¼Ò nghÞ) v”
dĂŻng lÖnh adduser (hoÆc lÖnh useradd) ¼Ó Ÿšng kĂœ tÂȘn v” mËt khÈu Ÿã vĂ­i hÖ
thĂšng. Sau Ÿã, ng−ĂȘi dĂŻng mĂ­i nhÊt thiÕt cÇn thay ŸÊi mËt khÈu ¼Ó b¶o ٦m viÖc giĂ·
bÝ mËt cž nh©n tuyÖt ŸÚi.
LÖnh passwd cho phÐp thay ŸÊi mËt khÈu Ăžng vĂ­i tÂȘn Ÿšng nhËp ng−ĂȘi dĂŻng.
Có ph¾p lÖnh passwd nh− sau:
passwd [tĂŻy-chĂ€n] [tÂȘn-ng−ĂȘi-dĂŻng]
vĂ­i cžc tĂŻy chĂ€n nh− sau:
-k
thay ŸÊi mËt khÈu ng−ĂȘi dĂŻng. LÖnh ¼ßi hĂĄi ph¶i xžc nhËn quyÒn b»ng
viÖc gĂą mËt khÈu Âźang dĂŻng tr−íc khi thay ŸÊi mËt khÈu. Cho phÐp ng−ĂȘi
dĂŻng thay ŸÊi mËt khÈu cña m×nh Ÿéc lËp vĂ­i siÂȘu ng−ĂȘi dĂŻng.
-f
¼Æt mËt khÈu mĂ­i cho ng−ĂȘi dĂŻng song kh«ng cÇn tiÕn h”nh viÖc kiÓm
tra mËt khÈu Âźang dĂŻng. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham
sÚ n”y.
-l
khĂŁa mĂ©t t”i kho¶n ng−ĂȘi dĂŻng. ViÖc khĂŁa t”i kho¶n thĂčc chÊt l” viÖc
dÞch b¶n m· hĂŁa mËt khÈu th”nh mĂ©t x©u kĂœ tĂč v« nghÜa bŸt ¼Çu bĂ«i kÝ
hiÖu "!". ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y.
-stdin
viÖc nhËp mËt khÈu ng−ĂȘi dĂŻng chØ ¼−üc tiÕn h”nh tĂ” thiÕt bÞ v”o
chuÈn kh«ng thÓ tiÕn h”nh tĂ” ¼−ĂȘng dÉn (pipe). NÕu kh«ng cĂŁ tham sĂš n”y
cho phÐp nhËp mËt khÈu c¶ tĂ” thiÕt bÞ v”o chuÈn hoÆc tĂ” ¼−ĂȘng dÉn.
-u
mĂ« khĂŁa (thžo bĂĄ khĂŁa) mĂ©t t”i kho¶n (ŸÚi ngÉu vĂ­i tham sĂš -l). ChØ
siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y.
-d
xĂŁa bĂĄ mËt khÈu cña ng−ĂȘi dĂŻng. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn
sö dÎng tham sÚ n”y.
-S
hiÓn thÞ th«ng tin ngŸn gĂ€n vÒ trÂčng thži mËt khÈu cña ng−ĂȘi dĂŻng
¼−üc ¼−a ra. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y.
NÕu tÂȘn-ng−ĂȘi-dĂŻng kh«ng cĂŁ trong lÖnh th× ngÇm ¼Þnh l” chÝnh ng−ĂȘi dĂŻng Ÿ· gĂą
lÖnh n”y.
VÝ dĂŽ khi ng−ĂȘi dĂŻng user1 gĂą lÖnh:
# passwd user1
hÖ thĂšng th«ng bžo:
Changing password for user user1
32
New UNIX password:
¼Ó ng−ĂȘi dĂŻng nhËp mËt khÈu mĂ­i cña m×nh v”o. Sau khi ng−ĂȘi dĂŻng gĂą xong mËt
khÈu mĂ­i, hÖ thĂšng cho ra th«ng bžo:
BAD PASSWORD: it is derived from your password entry
Retype new UNIX password:
¼Ó ng−ĂȘi dĂŻng khÂŒng ¼Þnh mĂ©t lÇn nĂ·a mËt khÈu vĂ”a gĂą dßng trÂȘn (nhĂ­ ph¶i gĂą lÂči
Ÿóng hÖt nh− lÇn tr−íc). ChĂ­ nÂȘn quž ph©n v©n v× th«ng bžo Ă« dßng phÝa trÂȘn v× hÇu
hÕt khi gĂą mËt khÈu mĂ­i lu«n gÆp nhĂ·ng th«ng bžo kiÓu ÂźÂči loÂči nh− vËy, chÂŒng hÂčn
nh−:
BAD PASSWORD: it is too simplistic/systematic
V” sau khi chĂłng ta khÂŒng ¼Þnh lÂči mËt khÈu mĂ­i, hÖ thĂšng cho ra th«ng bžo:
Passwd: all authentication tokens updated successfully.
cho biÕt viÖc thay ŸÊi mËt khÈu th”nh c«ng v” dÊu nhŸc shell lÂči hiÖn ra.
Khi siÂȘu ng−ĂȘi dĂŻng gĂą lÖnh:
# passwd -S root
sÏ hiÖn ra th«ng bžo
Changing password for user root
Password set, MD5 encryption
cho biÕt thuËt tožn m· hĂŁa mËt khÈu m” Linux sö dĂŽng l” mĂ©t thuËt tožn h”m bšm
cĂŁ tÂȘn l” MD5.
L−u Ăœ:
CĂŁ mĂ©t lĂȘi khuyÂȘn ŸÚi vĂ­i ng−ĂȘi dĂŻng l” nÂȘn chĂ€n mËt khÈu kh«ng quž Ÿn
gi¶n quž (nh»m tržnh ng−ĂȘi khžc dÔ dß t×m ra) hoÆc kh«ng quž phĂžc tÂčp (tržnh
khĂŁ khšn cho chÝnh ng−ĂȘi dĂŻng khi ph¶i ghi nhĂ­ v” gĂą mËt khÈu). §Æc biÖt
kh«ng nÂȘn sö dĂŽng hĂ€ tÂȘn, ng”y sinh, sĂš ÂźiÖn thoÂči ... cña b¶n th©n hoÆc ng−ĂȘi
th©n l”m mËt khÈu v× Ÿ©y l” mĂ©t trong nhĂ·ng tr−ĂȘng hĂźp mËt khÈu Ÿn gi¶n
nhÊt.
NÕu th«ng bžo mËt khÈu quž Ÿn gi¶n ¼−üc lÆp Âźi lÆp lÂči mĂ©t v”i lÇn v”
kh«ng cĂŁ th«ng bžo mËt khÈu mĂ­i th”nh c«ng Ÿ· quay vÒ dÊu nhŸc shell th×
nÂȘn gĂą lÂči lÖnh v” chĂ€n mĂ©t mËt khÈu mĂ­i phĂžc tÂčp hÂŹn Ÿ«i chĂłt.
2.4. LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ hiÖn tÂči v” xem lÞch trÂȘn hÖ thĂšng
2.4.1 LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ
LÖnh date cho phÐp cĂŁ thÓ xem hoÆc thiÕt ¼Æt lÂči ng”y giĂȘ trÂȘn hÖ thĂšng.
CĂł phžp cña lÖnh gĂ„m hai dÂčng, dÂčng xem th«ng tin vÒ ng”y, giĂȘ:
date [tĂŻy-chĂ€n] ... [+¼Þnh-dÂčng]
v” dÂčng thiÕt ¼Æt lÂči ng”y giĂȘ cho hÖ thĂšng:
date [tïy-chÀn] [MMDDhhmm[ [CC]YY] [.ss]]
Cžc tĂŻy-chĂ€n nh− sau:
-d, --date=x©u-všn-b¶n
33
hiÓn thÞ thĂȘi gian d−íi dÂčng x©u-všn-b¶n, m” kh«ng lÊy "thĂȘi gian
hiÖn tÂči cña hÖ thĂšng” nh− theo ngÇm ¼Þnh; x©u-všn-b¶n ¼−üc ¼Æt trong
hai dÊu nh¾y ¼¬n hoÆc hai dÊu nh¾y kÐp.
-f, --file=tËp-tin-všn-b¶n
giĂšng nh− mĂ©t tham sĂš --date nh−ng Ăžng vĂ­i nhiÒu ng”y cÇn xem:
mçi dßng cña tËp-tin-všn-b¶n cĂŁ vai trß nh− mĂ©t x©u-všn-b¶n trong
tr−ĂȘng hĂźp tham sĂš --date.
-I, --iso-8601[=m«-t¶]
hiÓn thÞ ng”y giĂȘ theo chuÈn ISO-8601 (vÝ dĂŽ: 2000-11-8).
-I t−¬ng ¼−¬ng víi tham sù --iso-8601='date'
VĂ­i --iso-8601: nÕu m«-t¶ l” 'date' (hoÆc kh«ng cĂŁ) th× hiÓn thÞ ng”y,
nÕu m«-t¶ l” 'hours' hiÓn thÞ ng”y+giĂȘ, nÕu m«-t¶ l” 'minutes':
ng”y+giĂȘ+phĂłt; nÕu m«-t¶ l” 'seconds': ng”y + giĂȘ + phĂłt + gi©y.
-r, --reference= tËp-tin
hiÓn thÞ thĂȘi gian söa ŸÊi tËp-tin lÇn gÇn Ÿ©y nhÊt.
-R, --rfc-822
hiÓn thÞ ng”y theo RFC-822 (vÝ dĂŽ: Wed, 8 Nov 2000 09:21:46 -0500).
-s, --set=x©u-všn-b¶n
thiÕt ¼Æt lÂči thĂȘi gian theo kiÓu x©u-všn-b¶n.
-u, --utc, --universal
hiÓn thÞ hoÆc thiÕt ¼Æt thĂȘi gian theo UTC (vÝ dĂŽ: Wed Nov 8 14:29:12
UTC 2000).
--help
hiÓn thÞ th«ng tin trĂź giĂłp v” thožt.
Trong dÂčng lÖnh date cho xem th«ng tin ng”y, giĂȘ th× tham sĂš ¼Þnh-dÂčng ÂźiÒu
khiÓn cžch hiÓn thÞ th«ng tin kÕt qu¶. §Þnh-dÂčng l” d·y cĂŁ tĂ” mĂ©t ¼Õn nhiÒu cÆp gĂ„m
hai kÝ tĂč, trong mçi cÆp kÝ tĂč ¼Çu tiÂȘn l” % cßn kÝ tĂč thĂž hai m« t¶ ¼Þnh dÂčng.
Do sĂš l−üng ¼Þnh dÂčng l” rÊt nhiÒu v× vËy chĂłng ta chØ xem xÐt mĂ©t sĂš ¼Þnh dÂčng
ÂźiÓn h×nh (¼Ó xem ¼Çy Ÿñ cžc ¼Þnh dÂčng, sö dĂŽng lÖnh man date).
D−íi Ÿ©y l” mĂ©t sĂš ¼Þnh dÂčng ÂźiÓn h×nh:
%%
HiÖn ra chÝnh kÝ tĂč %.
%a
HiÖn ra th«ng tin tÂȘn ng”y trong tuÇn viÕt tŸt theo ng«n ngĂ· b¶n ¼Þa.
%A
HiÖn ra th«ng tin tÂȘn ng”y trong tuÇn viÕt ¼Çy Ÿñ theo ng«n ngĂ· b¶n
¼Þa.
%b
HiÖn ra th«ng tin tÂȘn thžng viÕt tŸt theo ng«n ngĂ· b¶n ¼Þa.
34
%B
HiÖn ra th«ng tin tÂȘn thžng viÕt ¼Çy Ÿñ theo ng«n ngĂ· b¶n ¼Þa.
Trong dÂčng lÖnh date cho phÐp thiÕt ¼Æt lÂči ng”y giĂȘ cho hÖ thĂšng th× tham sĂš
[MMDDhhmm[ [CC]YY] [.ss]] m« t¶ ng”y, giĂȘ mĂ­i cÇn thiÕt ¼Æt, trong Ÿã:
MM: hai sÚ chØ thžng,
DD: hai sÚ chØ ng”y trong thžng,
hh: hai sĂš chØ giĂȘ trong ng”y,
mm: hai sÚ chØ phót,
CC: hai sù chØ thÕ kØ,
YY: hai sù chØ n¹m trong thÕ kØ.
Cžc dßng ngay d−íi Ÿ©y tr×nh b”y mĂ©t sĂš vÝ dĂŽ sö dĂŽng lÖnh date, mçi vÝ dĂŽ ¼−üc
cho t−¬ng Ăžng vĂ­i mĂ©t cÆp hai dßng, trong Ÿã dßng trÂȘn m« t¶ lÖnh ¼−üc gĂą cßn dßng
d−íi l” th«ng bžo cña Linux.
# date
Wed Jan 3 23:58:50 ICT 2001
# date -d='01/01/2000'
Sat Jan 1 00:00:00 ICT 2000
# date -iso-8601='seconds'
2000-12-01T00:36:41-0500
# date -d='01/01/2001'
Mon Jan 1 00:00:00 ICT 2001
# date 010323502001.50
Wed Jan 3 23:50:50 ICT 2001
# date +%a%A
Wed Wednesday
# date +%a%A%b%B
Wed Wednesday Jan January
# date +%D%%%j
01/05/01%005
2.4.2. LÖnh xem lÞch
LÖnh cal cho phÐp xem lÞch trÂȘn hÖ thĂšng vĂ­i cĂł phžp nh− sau:
cal [tïy-chÀn] [<thžng> [<nšm>]]
nÕu kh«ng cĂŁ tham sĂš, lÞch cña thžng hiÖn thĂȘi sÏ ¼−üc hiÓn thÞ.
Cžc tuĂș-chĂ€n l”:
-m
35
chĂ€n ng”y ThĂž hai l” ng”y ¼Çu tiÂȘn trong tuÇn (mÆc ¼Þnh l” ng”y Chñ
nhËt).
-j
hiÓn thÞ sĂš ng”y trong thžng d−íi dÂčng sĂš ng”y trong nšm (vÝ dĂŽ: ng”y
1/11/2000 sÏ ¼−üc hiÓn thÞ d−íi dÂčng l” ng”y thĂž 306 trong nšm 2000, sĂš
ng”y bŸt ¼Çu ¼−üc tÝnh tĂ” ng”y 1/1).
-y
hiÓn thÞ lÞch cña nšm hiÖn thĂȘi.
VÝ dî:
# cal 1 2001
January 2001 Su Mo Tu We Th Fr Sa
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 29 30 31
Khi nhËp dßng lÖnh trÂȘn, trÂȘn m”n h×nh sÏ hiÓn thÞ lÞch cña thžng 1 nšm 2001,
mÆc ¼Þnh chĂ€n ng”y chñ nhËt l” ng”y bŸt ¼Çu cña tuÇn. D−íi Ÿ©y l” vÝ dĂŽ hiÓn thÞ sĂš
ng”y trong thžng 3 d−íi dÂčng sĂš ng”y trong nšm 2001.
# cal -j 3 2001
March 2001
Su Mo Tu We Th Fr Sa
60 61 62
63 64 65 66 67 68 69
70 71 72 73 74 75 76
77 78 79 80 81 82 83
84 85 86 87 88 89 90
2.5. LÖnh gĂ€i ng«n ngĂ· tÝnh tožn sĂš hĂ€c
Linux cung cÊp mĂ©t ng«n ngĂ· tÝnh tožn vĂ­i Ÿé chÝnh xžc tĂŻy Ăœ th«ng qua lÖnh bc.
Khi yÂȘu cÇu lÖnh n”y, ng−ĂȘi dĂŻng ¼−üc cung cÊp mĂ©t ng«n ngĂ· tÝnh tožn (v” cho phÐp
lËp tr×nh tÝnh tožn cĂŁ dÂčng ng«n ngĂ· lËp tr×nh C) hoÂčt Ÿéng theo th«ng dÞch. Trong
ng«n ngĂ· lËp tr×nh ¼−üc cung cÊp (tÂčm thĂȘi gĂ€i l” ng«n ngĂ· bc), tĂ„n tÂči rÊt nhiÒu c«ng
cĂŽ hç trĂź tÝnh tožn v” lËp tr×nh tÝnh tožn: kiÓu phÐp tožn sĂš hĂ€c phong phĂł, phÐp tožn
so sžnh, mĂ©t sĂš h”m chuÈn, biÕn chuÈn, cÊu trĂłc ÂźiÒu khiÓn, cžch thĂžc ¼Þnh nghÜa
h”m, cžch thĂžc thay ŸÊi Ÿé chÝnh xžc, ¼Æt lĂȘi chĂł thÝch ... ChØ cÇn sö dĂŽng mĂ©t phÇn
nhĂĄ tžc Ÿéng cña lÖnh bc, chĂłng ta Ÿ· cĂŁ mĂ©t "mžy tÝnh sĂš bÊm tay" hiÖu qu¶.
Có ph¾p lÖnh bc:
bc [tĂŻy-chĂ€n] [tËp-tin...]
vĂ­i cžc tuĂș chĂ€n sau Ÿ©y:
-l, --mathlib
36
thĂčc hiÖn phÐp tÝnh theo chuÈn th− viÖn tožn hĂ€c (vÝ dĂŽ:
5/5=1.00000000000000000000).
-w, --warn
khi thĂčc hiÖn phÐp tÝnh kh«ng tu©n theo chuÈn POSIX (POSIX l” mĂ©t
chuÈn trong Linux) th× mĂ©t c¶nh bžo xuÊt hiÖn.
-s, --standard
thĂčc hiÖn phÐp tÝnh chÝnh xžc theo chuÈn cña ng«n ngĂ· POSIX bc.
-q, --quiet
kh«ng hiÖn ra lĂȘi giĂ­i thiÖu vÒ phÇn mÒm GNU khi dĂŻng bc.
Tham sĂš tËp-tin l” tÂȘn tËp tin chĂža ch−¬ng tr×nh viÕt trÂȘn ng«n ngĂ· bc, khi lÖnh bc
thĂčc hiÖn sÏ tĂč Ÿéng chÂčy cžc tËp tin ch−¬ng tr×nh n”y (NÕu cĂŁ nhiÒu tham sĂš th× cĂŁ
nghÜa sÏ chÂčy nhiÒu ch−¬ng tr×nh liÂȘn tiÕp nhau).
D−íi Ÿ©y l” mĂ©t vÝ dĂŽ sö dĂŽng lÖnh bc Ă« dÂčng Ÿn gi¶n nhÊt.
Khi gĂą lÖnh tÂči dÊu nhŸc:
# bc -l
m”n h×nh xuÊt hiÖn lĂȘi giĂ­i thiÖu vÒ GNU khi dĂŻng bc v” ng«n ngĂ· bc ¼−üc kÝch
hoÂčt ¼Ó phĂŽc vĂŽ ng−ĂȘi dĂŻng.
bc 1.05
Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
5^3
125
12+12+78*7-62/4
554.50000000000000000000
a=4
a^a
256
a*78
312
b=45
a*b
180
a/b
.08888888888888888888
a%b
.00000000000000000040
37
Ă« Ÿ©y * l” phÐp nh©n, ^ l” phÐp tÝnh luĂŒ thĂ”a, / l” phÐp chia lÊy th−¬ng, % l” chia
lÊy phÇn d−.
L−u Ăœ:
Ng«n ngĂ· lËp tr×nh tÝnh tožn bc l” mĂ©t ng«n ngĂ· rÊt mÂčnh cĂŁ nĂ©i dung hÕt
sĂžc phong phĂł cho nÂȘn trong khu«n khĂŠ cña cuĂšn sžch n”y kh«ng thÓ m« t¶ hÕt
cžc nĂ©i dung cña ng«n ngĂ· Ÿã ¼−üc. ChĂłng ta cÇn sö dĂŽng lÖnh man bc ¼Ó
nhËn ¼−üc th«ng tin ¼Çy Ÿñ vÒ lÖnh bc v” ng«n ngĂ· tÝnh tožn bc.
Ă« Ÿ©y tr×nh b”y sÂŹ bĂ© mĂ©t sĂš yÕu tĂš cÂŹ b¶n nhÊt cña ng«n ngĂ· Ÿã (bt l” viÕt
tŸt cña biÓu thĂžc, b l” viÕt tŸt cña biÕn):
Cžc phÐp tÝnh: - bt: lÊy ŸÚi; ++ b, --b, b ++, b --: phÐp tožn tšng, gi¶m b; cžc
phÐp tožn hai ng«i cĂ©ng +, trĂ” -, nh©n *, chia /, lÊy phÇn d− %, lĂČy thĂ”a
nguyÂȘn bËc ^; gžn =; gžn sau khi thao tžc <thao tžc>=; cžc phÐp tožn so
sžnh <, <=, >, >=, b»ng ==, khžc != ...
PhÐp so s¾nh cho 1 nÕu ¼óng, cho 0 nÕu sai.
BĂšn biÕn chuÈn l” scale sĂš l−üng chĂ· sĂš phÇn thËp ph©n; last giž trÞ tÝnh tožn
cuĂši cĂŻng; ibase cÂŹ sĂš hÖ ¼Õm ŸÚi vĂ­i input v” obase l” cÂŹ sĂš hÖ ¼Õm vĂ­i
output (ngÇm ¼Þnh hai biÕn n”y cĂŁ giž trÞ 10).
Cžc h”m chuÈn sin s (bt); cosin c (bt); arctg a (bt); l«garit tĂč nhiÂȘn l (bt); mĂČ
cÂŹ sĂš tĂč nhiÂȘn e (bt); h”m Bessel bËc nguyÂȘn n cña bt l” j (n, bt).
2.6. Xem th«ng tin hÖ thĂšng
LÖnh uname cho phÐp xem th«ng tin hÖ thĂšng vĂ­i cĂł phžp l”:
uname [tïy-chÀn]
NÕu kh«ng cĂŁ tuĂș chĂ€n th× hiÖn tÂȘn hÖ ÂźiÒu h”nh.
LÖnh cĂŁ cžc tĂŻy chĂ€n l”:
-a, --all
hiÖn tÊt c¶ cžc th«ng tin.
-m, --machine
kiÓu kiÕn trĂłc cña bĂ© xö lĂœ (i386, i486, i586, i686...).
-n, --nodename
hiÖn tÂȘn cña mžy.
-r, --release
hiÖn nh©n cña hÖ ÂźiÒu h”nh.
-s, --sysname
hiÖn tÂȘn hÖ ÂźiÒu h”nh.
-p, --processor
hiÖn kiÓu bĂ© xö lĂœ cña mžy chñ.
VÝ dî, nÕu gñ lÖnh
# uname -a
th× m”n h×nh sÏ hiÖn ra nh− sau:
38
Linux linuxsrv.linuxvn.net 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686
unknown
#
Th«ng tin hiÖn ra cĂŁ tÊt c¶ 6 tr−ĂȘng l”:
TÂȘn hÖ ÂźiÒu h”nh: Linux
TÂȘn mžy: linuxsrv.linuxvn.net
TÂȘn nh©n cña hÖ ÂźiÒu h”nh: 2.2.14-5.0
Ng”y s¶n xuÊt: #1 Tue Mar 7 21:07:39 EST 2000
KiÓu kiÕn trĂłc bĂ© xö lĂœ: i686
KiÓu bĂ© xö lĂœ cña mžy chñ: unknown
VÝ dî nÕu gñ lÖnh:
# uname -spr
th× m”n h×nh sÏ hiÖn ra nh− sau:
Linux 2.2.14-5.0 unknown
l” tÂȘn hÖ ÂźiÒu h”nh, tÂȘn nh©n v” kiÓu bĂ© xö lĂœ cña mžy chñ.
L−u Ăœ:
ChĂłng ta l”m rĂą thÂȘm nĂ©i dung l−u Ăœ trong mĂŽc 1.3.1 vÒ tham sĂš khĂŁa kÕt
hĂźp: Trong vÝ dĂŽ trÂȘn Ÿ©y khi viÕt tham sĂš -spr l” yÂȘu cÇu thĂčc hiÖn lÖnh
usame vĂ­i nghÜa kÕt hĂźp t×nh huĂšng theo c¶ ba tham sĂš khĂŁa -s, -p, -r. ChĂł Ăœ
r»ng, kh«ng thÓ viÕt -s -p -r thay cho -spr ¼−üc. Nh− Ÿ· l−u Ăœ Ă« mĂŽc 1.3.1
trong nhiÒu lÖnh cña Linux cho phÐp viÕt kÕt hĂźp cžc tham sĂš khĂŁa theo cžch
thĂžc nh− trÂȘn miÔn l” cžc tham sĂš Ÿã kh«ng xung khŸc vĂ­i nhau.
2.7. HiÖn dßng všn b¶n
LÖnh echo hiÖn ra dßng všn b¶n ¼−üc ghi ngay trong dßng lÖnh cĂŁ cĂł phžp:
echo [tĂŻy-chĂ€n]...[x©u kĂœ tĂč]...
vĂ­i cžc tuĂș chĂ€n nh− sau:
-n
hiÖn x©u kĂœ tĂč v” dÊu nhŸc trÂȘn cĂŻng mĂ©t dßng.
-e
bËt kh¶ nšng th«ng dÞch ¼−üc cžc kĂœ tĂč ÂźiÒu khiÓn.
-E
tŸt kh¶ nšng th«ng dÞch ¼−üc cžc kĂœ tĂč ÂźiÒu khiÓn.
--help
hiÖn hç trĂź v” thožt. MĂ©t sĂš b¶n Linux kh«ng hç trĂź tham sĂš n”y.
VÝ dî, dïng lÖnh echo víi tham sù -e
# echo -e ‘thö dĂŻng lÖnh echo n’
sÏ thÊy hiÖn ra chÝnh dßng všn b¶n Ă« lÖnh:
39
thö dĂŻng lÖnh echo
#
Ă« Ÿ©y kĂœ tĂč ÂźiÒu khiÓn ‘n’ l” kĂœ tĂč xuĂšng dßng.
2.8. Thay ŸÊi nĂ©i dung dÊu nhŸc shell
Trong Linux cĂŁ hai loÂči dÊu nhŸc: dÊu nhŸc cÊp mĂ©t (dÊu nhŸc shell) xuÊt hiÖn khi
nhËp lÖnh v” dÊu nhŸc cÊp hai (dÊu nhŸc nhËp liÖu) xuÊt hiÖn khi lÖnh cÇn cĂŁ dĂ· liÖu
¼−üc nhËp tĂ” b”n phÝm v” t−¬ng Ăžng vĂ­i hai biÕn nhŸc tÂȘn l” PS1 v” PS2.
PS1 l” biÕn hÖ thĂšng t−¬ng Ăžng vĂ­i dÊu nhŸc cÊp 1: Giž trÞ cña PS1 chÝnh l” nĂ©i
dung hiÓn thÞ cña dÊu nhŸc shell. §Ó nhËn biÕt th«ng tin hÖ thĂšng hiÖn tÂči, mĂ©t nhu
cÇu ¼Æt ra l” cÇn thay ŸÊi giž trÞ cña cžc biÕn hÖ thĂšng PS1 v” PS2.
Linux cho phÐp thay ŸÊi giž trÞ cña biÕn hÖ thĂšng PS1 b»ng lÖnh gžn trÞ mĂ­i cho
nĂŁ. LÖnh n”y cĂŁ dÂčng:
# PS1='<d∙y kÝ tĂč>'
Nšm (5) kÝ tĂč ¼Çu tiÂȘn cña lÖnh gžn trÂȘn Ÿ©y (PS1=') ph¶i ¼−üc viÕt liÂȘn tiÕp nhau.
D·y kÝ tĂč n»m giĂ·a cÆp hai dÊu nhžy Ÿn (cĂŁ thÓ sö dĂŽng cÆp hai dÊu kÐp ") v” kh«ng
¼−üc phÐp chĂža dÊu nhžy. D·y kÝ tĂč n”y bao gĂ„m cžc cÆp kÝ tĂč ÂźiÒu khiÓn v” cžc kÝ tĂč
khžc, cho phÐp cĂŁ thÓ cĂŁ dÊu cžch. CÆp kÝ tĂč ÂźiÒu khiÓn gĂ„m hai kÝ tĂč, kÝ tĂč ¼Çu tiÂȘn l”
dÊu sĂŠ xu«i "" cßn kÝ tĂč thĂž hai nhËn mĂ©t trong cžc tr−ĂȘng hĂźp liÖt kÂȘ trong b¶ng d−íi
Ÿ©y. B¶ng d−íi Ÿ©y giĂ­i thiÖu mĂ©t sĂš cÆp kĂœ tĂč ÂźiÒu khiÓn cĂŁ thÓ ¼−üc sö dĂŽng khi
muĂšn thay ŸÊi dÊu nhŸc lÖnh:
KĂœ tĂč ÂźiÒu khiÓn Ăœ nghÜa
! HiÓn thÞ thĂž tĂč cña lÖnh trong lÞch sö
# HiÓn thÞ thĂž tĂč cña lÖnh
$ HiÓn thÞ dÊu Ÿ«-la ($). §Úi vĂ­i siÂȘu ng−ĂȘi dĂŻng (super user), th×
hiÓn thÞ dÊu sù hiÖu (#)
 HiÓn thÞ dÊu sé ()
d HiÓn thÞ ng”y hiÖn tÂči
h HiÓn thÞ tÂȘn mžy (hostname)
n KĂœ hiÖu xuĂšng dßng
s HiÓn thÞ tÂȘn hÖ shell
t HiÓn thÞ giĂȘ hiÖn tÂči
u HiÓn thÞ tÂȘn ng−ĂȘi dĂŻng
W HiÓn thÞ tÂȘn thĂčc sĂč cña th− mĂŽc hiÖn thĂȘi (vÝ dĂŽ th− mĂŽc hiÖn
thĂȘi l” /mnt/hda1 th× tÂȘn thĂčc sĂč cña nĂŁ l” /hda1)
w HiÓn thÞ tÂȘn ¼Çy Ÿñ cña th− mĂŽc hiÖn thĂȘi (vÝ dĂŽ /mnt/hda1)
VÝ dĂŽ, hiÖn thĂȘi dÊu nhŸc shell cĂŁ dÂčng:
root@may1 /hda1]#
Sau khi chóng ta gñ lÖnh
root@may1 /hda1]# PS1='[h@u w : d]$'
40
th× dÊu nhŸc shell ¼−üc thay ŸÊi l”:
[may1@root /mnt/hda1 : Fri Oct 27 ]#
ngo”i viÖc ŸÊi thĂž tĂč giĂ·a tÂȘn ng−ĂȘi dĂŻng v” mžy cßn cho chĂłng ta biÕt thÂȘm vÒ
ng”y hÖ thĂšng qu¶n lĂœ v” tÂȘn ¼Çy Ÿñ cña th− mĂŽc hiÖn thĂȘi.
Linux cung cÊp cžch thĂžc ho”n to”n t−¬ng tĂč nh− ŸÚi vĂ­i biÕn PS1 ¼Ó thay ŸÊi giž
trÞ biÕn hÖ thĂšng PS2 t−¬ng Ăžng vĂ­i dÊu nhŸc cÊp hai.
41
Ch−¬ng 3. HÖ thùng tËp tin
3.1 Téng quan vÒ hÖ thùng tËp tin
3.1.1. MĂ©t sĂš khži niÖm
Ng−ĂȘi dĂŻng Ÿ· tĂ”ng l”m viÖc vĂ­i hÖ ÂźiÒu h”nh DOS/Windows th× rÊt quen biÕt vĂ­i
cžc khži niÖm: tËp tin (File), th− mĂŽc, th− mĂŽc hiÖn thĂȘi ... §Ó cuĂšn sžch mang tÝnh hÖ
thĂšng v” thuËn tiÖn cho ng−ĂȘi dĂŻng ch−a tĂ”ng l”m viÖc th”nh thÂčo vĂ­i mĂ©t hÖ ÂźiÒu
h”nh n”o khžc, ch−¬ng n”y vÉn giĂ­i thiÖu vÒ cžc khži niÖm n”y mĂ©t cžch sÂŹ bĂ©.
MĂ©t ŸÚi t−üng ÂźiÓn h×nh trong cžc hÖ ÂźiÒu h”nh Ÿã l” tËp tin. TËp tin l” mĂ©t tËp
hĂźp dĂ· liÖu cĂŁ tĂŠ chĂžc ¼−üc hÖ ÂźiÒu h”nh qu¶n lĂœ theo yÂȘu cÇu cña ng−ĂȘi dĂŻng. Cžch
tĂŠ chĂžc dĂ· liÖu trong tËp tin thuĂ©c vÒ chñ cña nĂŁ l” ng−ĂȘi dĂŻng Ÿ· tÂčo ra tËp tin. TËp
tin cĂŁ thÓ l” mĂ©t všn b¶n (tr−ĂȘng hĂźp ¼Æc biÖt l” ch−¬ng tr×nh nguĂ„n trÂȘn C, PASCAL,
shell script ...), mĂ©t ch−¬ng tr×nh ng«n ngĂ· mžy, mĂ©t tËp hĂźp dĂ· liÖu ... HÖ ÂźiÒu h”nh
tĂŠ chĂžc viÖc l−u trĂ· nĂ©i dung tËp tin trÂȘn cžc thiÕt bÞ nhĂ­ l©u d”i (chÂŒng hÂčn ¼Üa tĂ”) v”
٦m b¶o cžc thao tžc lÂȘn tËp tin. ChÝnh v× cĂŁ hÖ ÂźiÒu h”nh ٦m b¶o cžc chĂžc nšng liÂȘn
quan ¼Õn tËp tin nÂȘn ng−ĂȘi dĂŻng kh«ng cÇn biÕt tËp tin cña m×nh l−u Ă« vĂŻng n”o trÂȘn
¼Üa tĂ”, b»ng cžch n”o ŸÀc/ghi lÂȘn cžc vĂŻng cña ¼Üa tĂ” m” vÉn thĂčc hiÖn ¼−üc yÂȘu cÇu
t×m kiÕm, xö lĂœ lÂȘn cžc tËp tin.
HÖ ÂźiÒu h”nh qu¶n lĂœ tËp tin theo tÂȘn gĂ€i cña tËp tin (tÂȘn tËp tin) v” mĂ©t sĂš thuĂ©c
tÝnh liÂȘn quan ¼Õn tËp tin. Tr−íc khi giĂ­i thiÖu mĂ© t sĂš nĂ©i dung liÂȘn quan ¼Õn tÂȘn tËp
tin v” tÂȘn th− mĂŽc, chĂłng ta giĂ­i thiÖu sÂŹ bĂ© vÒ khži niÖm th− mĂŽc.
§Ó l”m viÖc ¼−üc vĂ­i cžc tËp tin, hÖ ÂźiÒu h”nh kh«ng chØ qu¶n lĂœ nĂ©i dung tËp tin
m” cßn ph¶i qu¶n lĂœ cžc th«ng tin liÂȘn quan ¼Õn cžc tËp tin. Th− mĂŽc (directory) l” ŸÚi
t−üng ¼−üc dĂŻng ¼Ó chĂža th«ng tin vÒ cžc tËp tin, hay nĂŁi theo mĂ©t cžch khžc, th−
mĂŽc chĂža cžc tËp tin. Cžc th− mĂŽc cĂČng ¼−üc hÖ ÂźiÒu h”nh qu¶n lĂœ trÂȘn vËt dÉn ngo”i
v” v× vËy, theo nghÜa n”y, th− mĂŽc cĂČng ¼−üc coi l” tËp tin song trong mĂ©t sĂš tr−ĂȘng
hĂźp ¼Ó ph©n biÖt vĂ­i "tËp tin" th− mĂŽc, chĂłng ta dĂŻng thuËt ngĂ· tËp tin th«ng th−ĂȘng.
Khžc vĂ­i tËp tin th«ng th−ĂȘng, hÖ ÂźiÒu h”nh lÂči quan t©m ¼Õn nĂ©i dung cña th− mĂŽc.
MĂ©t sĂš nĂ©i dung sau Ÿ©y liÂȘn quan ¼Õn tÂȘn tËp tin (bao gĂ„m c¶ tÂȘn th− mĂŽc):
TÂȘn tÖp tin trong Linux cĂŁ thÓ d”i tĂ­i 256 kĂœ tĂč, bao gĂ„m cžc chĂ· cži, chĂ· sĂš,
dÊu gÂčch nĂši, gÂčch ch©n, dÊu chÊm. TÂȘn th− mĂŽc/tËp tin trong Linux cĂŁ thÓ cĂŁ
nhiÒu hÂŹn mĂ©t dÊu chÊm, vÝ dĂŽ: This_is.a.VERY_long.filename. NÕu trong
tÂȘn tËp tin cĂŁ dÊu chÊm "." th× x©u con cña tÂȘn tËp tin tĂ” dÊu chÊm cuĂši cĂŻng ¼−üc
gĂ€i l” phÇn mĂ« rĂ©ng cña tÂȘn tËp tin (hoÆc tËp tin). VÝ dĂŽ, tÂȘn tËp tin trÂȘn Ÿ©y cĂŁ
phÇn mĂ« rĂ©ng l” .filename. ChĂł Ăœ r»ng khži niÖm phÇn mĂ« rĂ©ng Ă« Ÿ©y kh«ng
mang Ăœ nghÜa nh− mĂ©t sĂš hÖ ÂźiÒu h”nh khžc.
L−u Ăœ:
ChĂłng ta nÂȘn l−u Ăœ r»ng, kh«ng ph¶i kĂœ tĂč n”o cĂČng cĂŁ nghÜa. NÕu cĂŁ hai
tËp tin chØ khžc nhau Ă« kĂœ tĂč cuĂši cĂŻng, th× ŸÚi vĂ­i Linux, Ÿã l” hai tËp tin
trĂŻng tÂȘn. BĂ«i lÏ, Linux chØ lÊy 32 hay 64 kĂœ tĂč ¼Çu tiÂȘn trong tÂȘn tËp tin m”
th«i (tĂŻy theo phiÂȘn b¶n Linux), phÇn tÂȘn tËp tin cßn lÂči d”nh cho chñ cña tËp
tin, Linux theo dĂąi th«ng tin, nh−ng th−ĂȘng kh«ng xem cžc kĂœ tĂč ŸÞng sau kĂœ
tĂč thĂž 33 hay 65 l” quan trĂ€ng ŸÚi vĂ­i nĂŁ.
Xin nhŸc lÂči l−u Ăœ vÒ ph©n biÖt chĂ· hoa v” chĂ· th−ĂȘng ŸÚi vĂ­i tÂȘn th− mĂŽc/tËp
tin, vÝ dĂŽ hai tËp tin FILENAME.tar.gz v” filename.tar.gz l” hai tËp tin khžc
nhau.
42
NÕu trong tÂȘn th− mĂŽc/tËp tin cĂŁ chĂža kho¶ng trĂšng, sÏ ph¶i ¼Æt tÂȘn th−
mĂŽc/tËp tin v”o trong cÆp dÊu nhžy kÐp ¼Ó sö dĂŽng th− mĂŽc/tËp tin Ÿã. VÝ dĂŽ, ¼Ó
tÂčo th− mĂŽc cĂŁ tÂȘn l” ”My document” chÂŒng hÂčn, h·y Ÿžnh dßng lÖnh sau:
# mkdir "My document"
MĂ©t sĂš kĂœ tĂč sau kh«ng ¼−üc sö dĂŽng trong tÂȘn th− mĂŽc/tËp tin: !, *, $, &, # ...
Khi sö dĂŽng ch−¬ng tr×nh mc (Midnight Commander - ch−¬ng 8), cžc tËp tin
kh¶ thi trong Linux cĂŁ dÊu "*" ¼−üc ¼Æt tr−íc tÂȘn tËp tin, cžc tËp tin sao l−u cĂŁ
dÊu "~" v” cžc tËp tin cĂŁ tÂȘn bŸt ¼Çu bĂ«i dÊu "." l” cžc tËp tin Èn, cžc tËp tin cĂŁ
dÊu "@" l” cžc tËp tin liÂȘn kÕt...
TËp hĂźp tÊt c¶ cžc tËp tin cĂŁ trong hÖ ÂźiÒu h”nh ¼−üc gĂ€i l” hÖ thĂšng tËp tin l”
mĂ©t hÖ thĂšng thĂšng nhÊt. BĂ«i chÝnh tĂ” cžch thĂžc sö dĂŽng th− mĂŽc, hÖ thĂšng tËp tin
¼−üc tĂŠ chĂžc l«gic theo dÂčng h×nh c©y: HÖ thĂšng tËp tin ¼−üc xuÊt phžt tĂ” mĂ©t th−
mĂŽc gĂšc (¼−üc kÝ hiÖu l” "/") v” cho phÐp tÂčo ra th− mĂŽc con trong mĂ©t th− mĂŽc bÊt
kĂș. Th«ng th−ĂȘng, khi khĂ«i tÂčo Linux Ÿ· cĂŁ ngay hÖ thĂšng tËp tin cña nĂŁ. H×nh 3.1.
cho minh hĂ€a mĂ©t phÇn trong c©y l«gic cña hÖ thĂšng tËp tin.
§Ó chØ mĂ©t tËp tin hay mĂ©t th− mĂŽc, chĂłng ta cÇn ¼−a ra mĂ©t ¼−ĂȘng dÉn, vÝ dĂŽ ¼Ó
¼−ĂȘng dÉn xžc ¼Þnh tËp tin Xclients trong h×nh 3.1. chĂłng ta viÕt nh− sau:
/etc/X11/xinit/Xclients
§−ĂȘng dÉn n”y cho biÕt Xclients n»m trong xinit, xinit n»m trong X11,
X11 n»m trong etc v” etc n»m trong gÚc /.
TÂȘn tËp tin th−ĂȘng l” tham sĂš thĂčc sĂč khi gĂą lÖnh v” c«ng viÖc gĂą lÖnh trĂ« nÂȘn rÊt
nÆng nÒ ŸÚi vĂ­i ng−ĂȘi dĂŻng nÕu nh− trong lÖnh ph¶i gĂą mĂ©t ¼−ĂȘng dÉn d”i theo dÂčng
trÂȘn (¼−üc biÕt vĂ­i tÂȘn gĂ€i l” ¼−ĂȘng dÉn tuyÖt ŸÚi). V× vËy, Linux (cĂČng nh− nhiÒu hÖ
ÂźiÒu h”nh khžc) sö dĂŽng khži niÖm th− mĂŽc hiÖn thĂȘi cña mçi ng−ĂȘi dĂŻng l”m viÖc
trong hÖ thĂšng. Th− mĂŽc hiÖn thĂȘi l” mĂ©t th− mĂŽc trong hÖ thĂšng tËp tin m” hiÖn thĂȘi
"ng−ĂȘi dĂŻng Âźang Ă« Ÿã".
Qua th− mĂŽc hiÖn thĂȘi, Linux cho phÐp ng−ĂȘi dĂŻng chØ mĂ©t tËp tin trong lÖnh ngŸn
gĂ€n hÂŹn nhiÒu. VÝ dĂŽ, nÕu th− mĂŽc hiÖn thĂȘi l” th− mĂŽc xinit th× ¼Ó chØ tËp tin Ÿ· nĂŁi,
ng−ĂȘi dĂŻng chØ cÇn viÕt Xclients hoÆc ./Xclients trong Ÿã kÝ hiÖu "." ¼Ó chØ
/
root bin etc usr home dev
peng office52 sh date who X11 src bin user1 user2
tty00 tty01
xinit
Xclients Xmodmap
H×nh 3.1. MĂ©t phÇn cÊu trĂłc l«gic dÂčng c©y cña hÖ thĂšng File
43
th− mĂŽc hiÖn thĂȘi. §−ĂȘng dÉn ¼−üc xžc ¼Þnh qua th− mĂŽc hiÖn thĂȘi ¼−üc gĂ€i l” ¼−ĂȘng
dÉn t−¬ng ¼ùi.
Khi mĂ©t ng−ĂȘi dĂŻng Ÿšng nhËp v”o hÖ thĂšng, Linux lu«n chuyÓn ng−ĂȘi dĂŻng v”o
th− mĂŽc riÂȘng, v” tÂči thĂȘi ÂźiÓm Ÿã th− mĂŽc riÂȘng l” th− mĂŽc hiÖn thĂȘi cña ng−ĂȘi dĂŻng.
Th− mĂŽc riÂȘng cña siÂȘu ng−ĂȘi dĂŻng l” /root, th− mĂŽc riÂȘng cña ng−ĂȘi dĂŻng cĂŁ tÂȘn l”
user1 l” /home/user1 ... Linux cho phÐp dĂŻng lÖnh cd ¼Ó chuyÓn sang th− mĂŽc
khžc (lÊy th− mĂŽc khžc l”m th− mĂŽc hiÖn thĂȘi). Hai dÊu chÊm ".." ¼−üc dĂŻng ¼Ó chØ
th− mĂŽc ngay trÂȘn th− mĂŽc hiÖn thĂȘi (cha cña th− mĂŽc hiÖn thĂȘi).
Linux cßn cho phÐp ghÐp mĂ©t hÖ thĂšng tËp tin trÂȘn mĂ©t thiÕt bÞ nhĂ­ (¼Üa mÒm,
vĂŻng ¼Üa cĂžng ch−a ¼−üc ¼−a v”o hÖ thĂšng tËp tin) th”nh mĂ©t th− mĂŽc con trong hÖ
thĂšng tËp tin cña hÖ thĂšng b»ng lÖnh mount. Cžc hÖ thĂšng tËp tin ¼−üc ghÐp thuĂ©c v”o
c¾c kiÓu kh¾c nhau.
Hai mĂŽc tiÕp theo (3.1.2 v” 3.1.3.) giĂ­i thiÖu nhĂ·ng nĂ©i dung s©u hÂŹn vÒ hÖ thĂšng
tËp tin Linux d”nh cho cžc bÂčn ŸÀc muĂšn t×m hiÓu thÂȘm vÒ hÖ thĂšng tËp tin cña mĂ©t
hÖ ÂźiÒu h”nh UNIX ÂźiÓn h×nh.
3.1.2. SÂŹ bĂ© kiÕn trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin
TrÂȘn ¼Üa tĂ”, hÖ thĂšng tËp tin ¼−üc coi l” d·y tuÇn tĂč cžc khĂši l«gic mçi khĂši chĂža
hoÆc 512B hoÆc 1024B hoÆc bĂ©i cña 512B l” cĂš ¼Þnh trong mĂ©t hÖ thĂšng tËp tin. Trong
hÖ thĂšng tËp tin, cžc khĂši dĂ· liÖu ¼−üc ¼Þa chØ hĂŁa b»ng cžch Ÿžnh chØ sĂš liÂȘn tiÕp, mçi
¼Þa chØ ¼−üc chþa trong 4 byte (32 bit).
CÊu trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin bao gĂ„m 4 th”nh phÇn kÕ tiÕp nhau: Boot
block (dĂŻng ¼Ó khĂ«i Ÿéng hÖ thĂšng), SiÂȘu khĂši (Super block), Danh sžch inode v”
VĂŻng dĂ· liÖu.
D−íi Ÿ©y, chĂłng ta xem xÐt sÂŹ l−üc nĂ©i dung cžc th”nh phÇn cÊu trĂłc nĂ©i tÂči mĂ©t
hÖ thùng tËp tin.
SiÂȘu khĂši:
SiÂȘu khĂši chĂža nhiÒu th«ng tin liÂȘn quan ¼Õn trÂčng thži cña hÖ thĂšng tËp tin. Trong
siÂȘu khĂši cĂŁ cžc tr−ĂȘng sau Ÿ©y:
KÝch th−íc cña danh sžch inode (khži niÖm inode sÏ ¼−üc gi¶i thÝch trong
mĂŽc sau): ¼Þnh kÝch cĂŹ vĂŻng kh«ng gian trÂȘn HÖ thĂšng tËp tin qu¶n lĂœ cžc
inode.
KÝch th−íc cña hÖ thĂšng tËp tin.
Hai kÝch th−íc trÂȘn Ÿ©y tÝnh theo Ÿn vÞ dung l−üng bĂ© nhĂ­ ngo”i vËt lĂœ,
MĂ©t danh sžch chØ sĂš cžc khĂši rçi (th−ĂȘng trĂčc trÂȘn siÂȘu khĂši) trong hÖ
thùng tËp tin.
ChØ sĂš cžc khĂši rçi th−ĂȘng trĂčc trÂȘn siÂȘu khĂši ¼−üc dĂŻng ¼Ó Ÿžp Ăžng nhu cÇu
ph©n phĂši mĂ­i. ChĂł Ăœ r»ng, danh sžch chØ sĂš cžc khĂši rçi cĂŁ trÂȘn siÂȘu khĂši chØ l” mĂ©t
bĂ© phËn cña tËp tÊt c¶ cžc khĂši rçi cĂŁ trÂȘn hÖ thĂšng tËp tin.
ChØ sĂš cña khĂši rçi tiÕp theo trong danh sžch cžc khĂši rçi.
ChØ sĂš khĂši rçi tiÕp theo dĂŻng ¼Ó hç trĂź viÖc t×m kiÕm tiÕp cžc khĂši rçi: bŸt ¼Çu
t×m tĂ” khĂši cĂŁ chØ sĂš n”y trĂ« Âźi. §iÒu Ÿã cĂŁ nghÜa l” mĂ€i khĂši cĂŁ chØ sĂš kh«ng lĂ­n hÂŹn
chØ sĂš n”y hoÆc cĂŁ trong danh sžch cžc khĂši rçi th−ĂȘng trĂčc hoÆc Ÿ· ¼−üc cÊp phžt cho
mĂ©t tËp tin n”o Ÿã.
44
NhiÒu thao tžc tÂčo tËp tin mĂ­i, xož tËp tin, thay ŸÊi nĂ©i dung tËp tin v.v. cËp
nhËt cžc th«ng tin n”y.
MĂ©t danh sžch cžc inode rçi (th−ĂȘng trĂčc trÂȘn siÂȘu khĂši) trong hÖ thĂšng tËp
tin.
Danh sžch n”y chĂža chØ sĂš cžc inode rçi ¼−üc dĂŻng ¼Ó ph©n phĂši ngay ¼−üc
cho mĂ©t tËp tin mĂ­i ¼−üc khĂ«i tÂčo. Th«ng th−ĂȘng, danh sžch n”y chØ chĂža mĂ©t bĂ©
phËn cžc inode rçi trÂȘn hÖ thĂšng tËp tin.
ChØ sù inode rçi tiÕp theo trong danh s¾ch c¾c inode rçi.
ChØ sĂš inode rçi tiÕp theo ¼Þnh vÞ viÖc t×m kiÕm tiÕp thÂȘm inode rçi: bŸt ¼Çu
t×m tĂ” inode cĂŁ chØ sĂš n”y trĂ« Âźi. §iÒu Ÿã cĂŁ nghÜa l” mĂ€i inode cĂŁ chØ sĂš kh«ng lĂ­n
hÂŹn chØ sĂš n”y hoÆc cĂŁ trong danh sžch cžc inode rçi th−ĂȘng trĂčc hoÆc Ÿ· ¼−üc t−¬ng
Ăžng vĂ­i mĂ©t tËp tin n”o Ÿã.
Hai tham sĂš trÂȘn Ÿ©y tÂčo th”nh cÆp xžc ¼Þnh ¼−üc danh sžch cžc inode rçi trÂȘn
hÖ thĂšng tËp tin cžc thao tžc tÂčo tËp tin mĂ­i, xož tËp tin cËp nhËt th«ng tin n”y.
Cžc tr−ĂȘng khĂŁa (lock) danh sžch cžc khĂši rçi v” danh sžch inode rçi:
Trong mĂ©t sĂš tr−ĂȘng hĂźp, chÂŒng hÂčn khi hÖ thĂšng Âźang l”m viÖc thĂčc sĂč vĂ­i ¼Üa
tĂ” ¼Ó cËp nhËt cžc danh sžch n”y, hÖ thĂšng kh«ng cho phÐp cËp nhËt tĂ­i hai
danh sžch nĂŁi trÂȘn.
CĂȘ chØ dÉn vÒ viÖc siÂȘu khĂši Ÿ· ¼−üc biÕn ŸÊi: §Þnh kĂș thĂȘi gian siÂȘu khĂši
Ă« bĂ© nhĂ­ trong ¼−üc cËp nhËt lÂči v”o siÂȘu khĂši Ă« ¼Üa tĂ” v” v× vËy cÇn cĂŁ th«ng
tin vÒ viÖc siÂȘu khĂši Ă« bĂ© nhĂ­ trong khžc vĂ­i nĂ©i dung Ă« bĂ© nhĂ­ ngo”i: nÕu hai
b¶n kh«ng giĂšng nhau th× cÇn ph¶i biÕn ŸÊi ¼Ó chĂłng ¼−üc ŸÄng nhÊt.
CĂȘ chØ dÉn r»ng hÖ thĂšng tËp tin chØ cĂŁ thÓ ŸÀc (cÊm ghi): Trong mĂ©t sĂš
tr−ĂȘng hĂźp, hÖ thĂšng Âźang cËp nhËt th«ng tin tĂ” bĂ© nhĂ­ ngo”i th× chØ cho phÐp
ŸÀc ŸÚi vĂ­i hÖ thĂšng tËp tin,
SĂš l−üng tĂŠng cĂ©ng cžc khĂši rçi trong hÖ thĂšng tËp tin,
SĂš l−üng tĂŠng cĂ©ng cžc inode rçi trong hÖ thĂšng tËp tin,
Th«ng tin vÒ thiÕt bÞ,
KÝch th−íc khĂši (Ÿn vÞ ph©n phĂši dĂ· liÖu) cña hÖ thĂšng tËp tin. HiÖn tÂči
kÝch th−íc phĂŠ biÕn cña khĂši l” 1KB.
Trong thĂȘi gian mžy hoÂčt Ÿéng, theo tĂ”ng giai ÂźoÂčn, nh©n sÏ ¼−a siÂȘu khĂši lÂȘn
¼Üa nÕu nĂŁ Ÿ· ¼−üc biÕn ŸÊi ¼Ó phĂŻ hĂźp vĂ­i dĂ· liÖu trÂȘn hÖ thĂšng tËp tin.
MĂ©t trong khži niÖm cĂšt lĂąi xuÊt hiÖn trong hÖ thĂšng tËp tin Ÿã l” inode. Cžc
ŸÚi t−üng liÂȘn quan ¼Õn khži niÖm n”y sÏ ¼−üc tr×nh b”y trong cžc mĂŽc tiÕp theo.
Inode:
Mçi khi mĂ©t quž tr×nh khĂ«i tÂčo mĂ©t tËp tin mĂ­i, nh©n hÖ thĂšng sÏ gžn cho nĂŁ mĂ©t
inode ch−a sö dĂŽng. §Ó hiÓu rĂą hÂŹn vÒ inode, chĂłng ta xem xÐt sÂŹ l−üc mĂši quan hÖ
liÂȘn quan giĂ·a tËp tin dĂ· liÖu v” viÖc l−u trĂ· trÂȘn vËt dÉn ngo”i ŸÚi vĂ­i Linux.
NĂ©i dung cña tËp tin ¼−üc chĂža trong vĂŻng dĂ· liÖu cña hÖ thĂšng tËp tin v” ¼−üc
ph©n chia cžc khĂši dĂ· liÖu (nĂ©i dung tËp tin) v” h×nh ¶nh ph©n bĂš nĂ©i dung tËp tin cĂŁ
trong mĂ©t inode t−¬ng Ăžng. LiÂȘn kÕt ¼Õn tËp hĂźp cžc khĂši dĂ· liÖu n”y l” mĂ©t inode, chØ
th«ng qua inode mĂ­i cĂŁ thÓ l”m viÖc vĂ­i dĂ· liÖu tÂči cžc khĂši dĂ· liÖu: Inode chĂža dĂčng
th«ng tin vÒ tËp hĂźp cžc khĂši dĂ· liÖu nĂ©i dung tËp tin. CĂŁ thÓ quan niÖm r»ng, tËp hĂźp
bao gĂ„m inode v” tËp cžc khĂši dĂ· liÖu nh− vËy l” mĂ©t tËp tin vËt lĂœ: inode cĂŁ th«ng tin
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh
Linux giaotrinh

More Related Content

Similar to Linux giaotrinh

Muc lucMuc luc
Muc lucMuc lucMuc lucMuc luc
Muc lucMuc luc
a159776
 
Giaotrinh plc
Giaotrinh plcGiaotrinh plc
Giaotrinh plc
Hoanh Lee
 
ki_thuat_chuyen_mach_ HVKTQS.pdf
ki_thuat_chuyen_mach_ HVKTQS.pdfki_thuat_chuyen_mach_ HVKTQS.pdf
ki_thuat_chuyen_mach_ HVKTQS.pdf
doanthanhthao
 
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
Dịch VỄ Viáșżt ThuĂȘ KhĂła Luáș­n Zalo/Telegram 0917193864
 
Pluc5 c~1
Pluc5 c~1Pluc5 c~1
Pluc5 c~1
Ttx Love
 
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4tran thai
 
Auto cad 2002vn
Auto cad 2002vnAuto cad 2002vn
Auto cad 2002vnnguyentanhieu
 
Gt quan ly_nguon_nuoc
Gt quan ly_nguon_nuocGt quan ly_nguon_nuoc
Gt quan ly_nguon_nuocHung Pham Thai
 
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdfXĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
Man_Ebook
 
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trườngLuáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
Dịch VỄ Viáșżt BĂ i Trọn GĂłi ZALO 0917193864
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34guestdea25a
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34manlivo
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34manlivo
 
Láș­p trĂŹnh PHP vĂ  MySQL
Láș­p trĂŹnh PHP vĂ  MySQLLáș­p trĂŹnh PHP vĂ  MySQL
Láș­p trĂŹnh PHP vĂ  MySQL
Trung Thanh Nguyen
 
Laptrinh ph pvamysql
Laptrinh ph pvamysqlLaptrinh ph pvamysql
Laptrinh ph pvamysql
Hiền PháșĄm
 

Similar to Linux giaotrinh (20)

Quan tri he dieu hanh linux
Quan tri he dieu hanh linuxQuan tri he dieu hanh linux
Quan tri he dieu hanh linux
 
Muc lucMuc luc
Muc lucMuc lucMuc lucMuc luc
Muc lucMuc luc
 
Giaotrinh plc
Giaotrinh plcGiaotrinh plc
Giaotrinh plc
 
ki_thuat_chuyen_mach_ HVKTQS.pdf
ki_thuat_chuyen_mach_ HVKTQS.pdfki_thuat_chuyen_mach_ HVKTQS.pdf
ki_thuat_chuyen_mach_ HVKTQS.pdf
 
Chuongiv
ChuongivChuongiv
Chuongiv
 
Datalink
DatalinkDatalink
Datalink
 
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
TĂ i liệu: Đào táșĄo hệ thống điều khiển DCS (DCS Training nhĂ  mĂĄy nhiệt điện Ph...
 
Autocad 2002 (Vietnamese)
Autocad 2002 (Vietnamese)Autocad 2002 (Vietnamese)
Autocad 2002 (Vietnamese)
 
Plcs7300
Plcs7300Plcs7300
Plcs7300
 
Pluc5 c~1
Pluc5 c~1Pluc5 c~1
Pluc5 c~1
 
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4
Báo cáo thÆ°ÌŁc tĂąÌŁp tuĂąÌ€n 4
 
Auto cad 2002vn
Auto cad 2002vnAuto cad 2002vn
Auto cad 2002vn
 
Gt quan ly_nguon_nuoc
Gt quan ly_nguon_nuocGt quan ly_nguon_nuoc
Gt quan ly_nguon_nuoc
 
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdfXĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
XĂąy dá»±ng cáș„u trĂșc cho hệ Scada.pdf
 
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trườngLuáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
Luáș­n văn: NhĂ  xuáș„t báșŁn báșŁn đồ thuộc bộ tĂ i nguyĂȘn vĂ  mĂŽi trường
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34
 
Lohong Buoi34
Lohong Buoi34Lohong Buoi34
Lohong Buoi34
 
Láș­p trĂŹnh PHP vĂ  MySQL
Láș­p trĂŹnh PHP vĂ  MySQLLáș­p trĂŹnh PHP vĂ  MySQL
Láș­p trĂŹnh PHP vĂ  MySQL
 
Laptrinh ph pvamysql
Laptrinh ph pvamysqlLaptrinh ph pvamysql
Laptrinh ph pvamysql
 

More from Integrated Circuit Design Research & Education Center (ICDREC)

SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdfSLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
Integrated Circuit Design Research & Education Center (ICDREC)
 

More from Integrated Circuit Design Research & Education Center (ICDREC) (20)

SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdfSLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
SLIDE-NHÂN-TÆŻá»šNG-Buổi-1-FPT.pptx.pdf
 
Xoa mu linux
Xoa mu linuxXoa mu linux
Xoa mu linux
 
Tu hoc su_dung_linux
Tu hoc su_dung_linuxTu hoc su_dung_linux
Tu hoc su_dung_linux
 
Tu hoc su dung linux 2
Tu hoc su dung linux 2Tu hoc su dung linux 2
Tu hoc su dung linux 2
 
Su dung linux shell
Su dung linux shellSu dung linux shell
Su dung linux shell
 
Step by-step installation of a secure linux web dns- and mail server
Step by-step installation of a secure linux web  dns- and mail serverStep by-step installation of a secure linux web  dns- and mail server
Step by-step installation of a secure linux web dns- and mail server
 
So tay nho lenh linux
So tay nho lenh linuxSo tay nho lenh linux
So tay nho lenh linux
 
Programming guide for linux usb device drivers
Programming guide for linux usb device driversProgramming guide for linux usb device drivers
Programming guide for linux usb device drivers
 
Linux security
Linux securityLinux security
Linux security
 
Linux cho nguoi_moi_dung
Linux cho nguoi_moi_dungLinux cho nguoi_moi_dung
Linux cho nguoi_moi_dung
 
Linux tieng viet
Linux tieng vietLinux tieng viet
Linux tieng viet
 
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 2)
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 2)LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 2)
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 2)
 
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 1)
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 1)LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 1)
LiĂȘn káșżt động trong linux vĂ  windows (pháș§n 1)
 
Kien.truc.unix.linux 2
Kien.truc.unix.linux 2Kien.truc.unix.linux 2
Kien.truc.unix.linux 2
 
Kien.truc.unix.linux
Kien.truc.unix.linuxKien.truc.unix.linux
Kien.truc.unix.linux
 
Huong dan cai_redhat_linux_fedora_core_4
Huong dan cai_redhat_linux_fedora_core_4Huong dan cai_redhat_linux_fedora_core_4
Huong dan cai_redhat_linux_fedora_core_4
 
Htc.kien.truc.unix.linux
Htc.kien.truc.unix.linuxHtc.kien.truc.unix.linux
Htc.kien.truc.unix.linux
 
Giao trinh he dieu hanh linux va unix 3
Giao trinh he dieu hanh linux va unix 3Giao trinh he dieu hanh linux va unix 3
Giao trinh he dieu hanh linux va unix 3
 
Giao trinh he dieu hanh linux va unix 2
Giao trinh he dieu hanh linux va unix 2Giao trinh he dieu hanh linux va unix 2
Giao trinh he dieu hanh linux va unix 2
 
Giao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unixGiao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unix
 

Recently uploaded

98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
Nguyen Thanh Tu Collection
 
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nayáșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
chinhkt50
 
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
Nguyen Thanh Tu Collection
 
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
duykhoacao
 
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
https://www.facebook.com/garmentspace
 
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptxDáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
Điện LáșĄnh BĂĄch Khoa HĂ  Nội
 
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
ngocnguyensp1
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 

Recently uploaded (10)

98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIáșŸNG ANH Dáș NG TRáșźC NGHIỆM 4 CÂU TRáșą ...
 
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nayáșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
áșąnh hưởng của nhĂąn sinh quan Pháș­t giĂĄo đáșżn đời sống tinh tháș§n Việt Nam hiện nay
 
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
CHUYÊN ĐỀ BỒI DÆŻá» NG HỌC SINH GIỎI KHOA HỌC Tá»° NHIÊN 9 CHÆŻÆ NG TRÌNH MỚI - PHáșŠN...
 
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
ChÆ°ÆĄng III (Nội dung váșœ sÆĄ đồ tÆ° duy chÆ°ÆĄng 3)
 
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
KhoĂĄ luáș­n tốt nghiệp ngĂ nh Truyền thĂŽng đa phÆ°ÆĄng tiện XĂąy dá»±ng káșż hoáșĄch truy...
 
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptxDáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
Dáș«n luáș­n ngĂŽn ngữ - Tu vung ngu nghia.pptx
 
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỏA CHởA BOARD MONO TỊ Láș NH MÁY GIáș¶T ĐIỀU HÒA.pdf
 
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HOÌŁC 9 - NĂM HOÌŁC 2021 - 2022.pdf
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 

Linux giaotrinh

  • 1. 1 Ban chØ ÂźÂčo c«ng nghÖ th«ng tin cña cÂŹ quan ٦ng *** T”I liÖu tham kh¶o HÖ ÂźiÒu h”nh Linux H” nĂ©i, 2003
  • 2. 2 Ch−¬ng 1. GiĂ­i thiÖu chung vÒ lÖnh trong linux 1.1. GiĂ­i thiÖu vÒ UNIX v” Linux 10 1.1.1. SÂŹ bĂ© vÒ hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng 10 1.1.2. XuÊt xĂž, sĂč phžt triÓn v” mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh UNIX 10 1.1.3. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux 13 1.2. SÂŹ bĂ© vÒ cžc th”nh phÇn cña Linux 14 1.2.1. SÂŹ bĂ© vÒ nh©n 14 1.2.2. SÂŹ bĂ© vÒ shell 15 1.3. GiĂ­i thiÖu vÒ viÖc sö dĂŽng lÖnh trong Linux 16 1.3.1. Cžc quy −íc khi viÕt lÖnh 18 1.3.2. TiÕp nĂši dßng lÖnh 22 1.4. Trang Man (Man Page) 23 Ch−¬ng 2. LÖnh thao tžc vĂ­i hÖ thĂšng 2.1. Quž tr×nh khĂ«i Ÿéng Linux 26 2.2. Thñ tĂŽc Ÿšng nhËp v” cžc lÖnh thožt khĂĄi hÖ thĂšng 27 2.2.1. §šng nhËp 27 2.2.2. Ra khĂĄi hÖ thĂšng 28 2.2.3. KhĂ«i Ÿéng lÂči hÖ thĂšng 30 2.3. LÖnh thay ŸÊi mËt khÈu 30 2.4. LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ hiÖn tÂči v” xem lÞch trÂȘn hÖ thĂšng 32 2.4.1 LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ 32 2.4.2. LÖnh xem lÞch 34 2.5. LÖnh gĂ€i ng«n ngĂ· tÝnh tožn sĂš hĂ€c 35 2.6. Xem th«ng tin hÖ thĂšng 37 2.7. HiÖn dßng všn b¶n 38 2.8. Thay ŸÊi nĂ©i dung dÊu nhŸc shell 39 Ch−¬ng 3. HÖ thĂšng tËp tin 3.1 TĂŠng quan vÒ hÖ thĂšng tËp tin 41 3.1.1. MĂ©t sĂš khži niÖm 41 3.1.2. SÂŹ bĂ© kiÕn trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin 43 3.1.3. LiÂȘn kÕt t−üng tr−ng (lÖnh ln) 46 3.2 QuyÒn truy nhËp th− mĂŽc v” tËp tin 48 3.2.1 QuyÒn truy nhËp 48 3.2.2. Cžc lÖnh cÂŹ b¶n 50
  • 3. 3 a. Thay ŸÊi quyÒn sĂ« hĂ·u tËp tin vĂ­i lÖnh chown 50 b. Thay ŸÊi quyÒn sĂ« hĂ·u nhĂŁm vĂ­i lÖnh chgrp 51 c. Thay ŸÊi quyÒn truy cËp tËp tin vĂ­i lÖnh chmod 52 d. Ÿšng nhËp v”o mĂ©t nhĂŁm ng−ĂȘi dĂŻng mĂ­i vĂ­i lÖnh newgrp 53 3.3 Thao tžc vĂ­i th− mĂŽc 54 3.3.1 MĂ©t sĂš th− mĂŽc ¼Æc biÖt 54 * Th− mĂŽc gĂšc / 54 * Th− mĂŽc /root 54 * Th− mĂŽc /bin 54 * Th− mĂŽc /dev 55 * Th− mĂŽc /etc 55 * Th− mĂŽc /lib 55 * Th− mĂŽc /lost+found 55 * Th− mĂŽc /mnt 55 * Th− mĂŽc /tmp 55 * Th− mĂŽc /usr 55 * Th− mĂŽc /home 56 * Th− mĂŽc /var 56 * Th− mĂŽc /boot 56 * Th− mĂŽc /proc 56 * Th− mĂŽc /misc v” th− mĂŽc /opt 56 * Th− mĂŽc /sbin 56 3.3.2 Cžc lÖnh cÂŹ b¶n vÒ th− mĂŽc 56 * Xžc ¼Þnh th− mĂŽc hiÖn thĂȘi vĂ­i lÖnh pwd 56 * Xem th«ng tin vÒ th− mĂŽc vĂ­i lÖnh ls 56 * LÖnh tÂčo th− mĂŽc mkdir 58 * LÖnh xĂŁa bĂĄ th− mĂŽc rmdir 59 * LÖnh ŸÊi tÂȘn th− mĂŽc mv 60 3.4. Cžc lÖnh l”m viÖc vĂ­i tËp tin 60 3.4.1 Cžc kiÓu tËp tin cĂŁ trong Linux 60 3.4.2. Cžc lÖnh tÂčo tËp tin 61 * TÂčo tËp tin vĂ­i lÖnh touch 61 * TÂčo tËp tin b»ng cžch ŸÊi h−íng ¼Çu ra cña lÖnh (>) 61 * TÂčo tËp tin vĂ­i lÖnh cat 62 3.4.3 Cžc lÖnh thao tžc trÂȘn tËp tin 62
  • 4. 4 * Sao chÐp tËp tin vĂ­i lÖnh cp 62 * §Êi tÂȘn tËp tin vĂ­i lÖnh mv 64 * XĂŁa tËp tin vĂ­i lÖnh rm 65 * LÖnh ¼Õm tĂ” v” dßng trong tËp tin wc 66 * LÖnh loÂči bĂĄ nhĂ·ng dßng kh«ng quan trĂ€ng uniq 67 * SŸp xÕp nĂ©i dung tËp tin vĂ­i lÖnh sort 69 3.4.4 Cžc lÖnh thao tžc theo nĂ©i dung tËp tin 71 * Sö dĂŽng lÖnh file ¼Ó xžc ¼Þnh kiÓu tËp tin 71 * Xem nĂ©i dung tËp tin vĂ­i lÖnh cat 72 * Xem nĂ©i dung cžc tËp tin lĂ­n vĂ­i lÖnh more 73 * ThÂȘm sĂš thĂž tĂč cña cžc dßng trong tËp tin vĂ­i lÖnh nl 75 * Xem qua nĂ©i dung tËp tin vĂ­i lÖnh head 77 * Xem qua nĂ©i dung tËp tin vĂ­i lÖnh tail 78 * T×m sĂč khžc nhau giĂ·a hai tËp tin (lÖnh diff) 79 3.4.5 Cžc lÖnh t×m tËp tin 80 * T×m theo nĂ©i dung tËp tin b»ng lÖnh grep 80 * T×m theo cžc ¼Æc tÝnh cña tËp tin vĂ­i lÖnh find 85 3.5 NÐn v” sao l−u cžc tËp tin 88 3.5.1 Sao l−u cžc tËp tin (lÖnh tar) 88 3.5.2 NÐn dĂ· liÖu 91 * NÐn, gi¶i nÐn v” xem nĂ©i dung cžc tËp tin vĂ­i lÖnh gzip, gunzip v” zcat 91 * NÐn, gi¶i nÐn v” xem tËp tin vĂ­i cžc lÖnh compress, uncompress, zcat93 3.6 Sö dĂŽng rpm 94 3.6.1.GiĂ­i thiÖu chung vÒ rpm 94 3.6.2 RPM vĂ­i ng−ĂȘi dĂŻng 95 * C”i ¼Æt gĂŁi: 95 * XĂŁa mĂ©t gĂŁi ra khĂĄi hÖ thĂšng 95 * N©ng cÊp mĂ©t gĂŁi 95 * LÊy th«ng tin vÒ cžc gĂŁi phÇn mÒm (package) 95 * DĂŻng RPM ¼Ó kiÓm tra cžc gĂŁi Ÿ· c”i ¼Æt 96 Ch−¬ng 4. LÖnh qu¶n lĂœ t”i kho¶n Ng−ĂȘi dĂŻng 4.1 T”i kho¶n ng−ĂȘi dĂŻng 97 4.2 Cžc lÖnh cÂŹ b¶n qu¶n lĂœ ng−ĂȘi dĂŻng 97 4.2.1 TËp tin /etc/passwd 97
  • 5. 5 4.2.2 ThÂȘm ng−ĂȘi dĂŻng vĂ­i lÖnh useradd 98 TÂčo th− mĂŽc cž nh©n cña ng−ĂȘi dĂŻng mĂ­i vĂ­i lÖnh mkdir 100 ThiÕt lËp mËt khÈu cña ng−ĂȘi dĂŻng vĂ­i lÖnh passwd 100 4.2.3 Thay ŸÊi thuĂ©c tÝnh ng−ĂȘi dĂŻng 100 4.2.4 XĂŁa bĂĄ mĂ©t ng−ĂȘi dĂŻng (lÖnh userdel) 102 4.3 Cžc lÖnh cÂŹ b¶n liÂȘn quan ¼Õn nhĂŁm ng−ĂȘi dĂŻng 102 4.3.1 NhĂŁm ng−ĂȘi dĂŻng v” tËp tin /etc/group 102 4.3.2 ThÂȘm nhĂŁm ng−ĂȘi dĂŻng 103 4.3.3 Söa ŸÊi cžc thuĂ©c tÝnh cña mĂ©t nhĂŁm ng−ĂȘi dĂŻng (lÖnh groupmod) 104 4.3.4 XĂŁa mĂ©t nhĂŁm ng−ĂȘi dĂŻng (lÖnh groupdel) 104 4.4 Cžc lÖnh cÂŹ b¶n khžc cĂŁ liÂȘn quan ¼Õn ng−ĂȘi dĂŻng 104 4.4.1 §šng nhËp vĂ­i t− cžch mĂ©t ng−ĂȘi dĂŻng khžc khi dĂŻng lÖnh su 104 4.4.2 Xžc ¼Þnh ng−ĂȘi dĂŻng Âźang Ÿšng nhËp (lÖnh who) 105 * CĂŁ mĂ©t cžch khžc ¼Ó xžc ¼Þnh th«ng tin ng−ĂȘi dĂŻng vĂ­i lÖnh id 106 4.4.3 Xžc ¼Þnh cžc tiÕn tr×nh Âźang ¼−üc tiÕn h”nh (lÖnh w) 107 Ch−¬ng 5. Cžc lÖnh qu¶n lĂœ thiÕt bÞ ngoÂči vi 5.1 GiĂ­i thiÖu vÒ cžch thĂžc Linux qu¶n lĂœ thiÕt bÞ ngoÂči vi 108 5.2 Cžc cžch qu¶n lĂœ thiÕt bÞ l−u trĂ· trong Linux 109 5.2.1 LÖnh mount v” lÖnh umount 110 * LÖnh mount 110 * LÖnh umount 111 5.2.2 Cžc lÖnh ¼Þnh dÂčng ¼Üa v” tÂčo hÖ thĂšng tËp tin trong Linux 112 * ĂŠ ¼Üa cĂžng 112 * X©y dĂčng mĂ©t hÖ thĂšng tËp tin trÂȘn Linux vĂ­i lÖnh mkfs 114 * §Þnh dÂčng mĂžc thÊp mĂ©t ¼Üa mÒm (lÖnh fdformat) 114 * ThÂȘm hÖ thĂšng tËp tin v”o ¼Üa mÒm Ÿ· ¼−üc ¼Þnh dÂčng vĂ­i lÖnh mformat 115 5.2.3 LÖnh qu¶n lĂœ ¼Üa 117 * Xem dung l−üng ¼Üa Ÿ· sö dĂŽng vĂ­i lÖnh du: 117 * KiÓm tra dung l−üng ¼Üa trĂšng vĂ­i lÖnh df: 118 5.3 Cžc cĂŠng nĂši tiÕp v” modem 120 5.4 Cžc cĂŠng song song v” mžy in 120 5.4.1 KhĂ«i tÂčo v” thiÕt lËp mžy in trong lpd 120 5.4.2 Cžc lÖnh in Ên cÂŹ b¶n 122
  • 6. 6 * In mĂ©t tËp tin vĂ­i lÖnh lpr 122 * §Þnh dÂčng tËp tin tr−íc khi in vĂ­i lÖnh pr 124 * L”m viÖc vĂ­i h”ng Ÿßi in th«ng qua lÖnh lpq 126 * XĂŁa bĂĄ h”ng Ÿßi in vĂ­i lÖnh lprm 127 * LÖnh lpc 128 5.5 Sound card 129 Ch−¬ng 6. Tr×nh soÂčn th¶o vim 6.1 KhĂ«i Ÿéng vim 132 6.1.1 MĂ« ch−¬ng tr×nh soÂčn th¶o vim 132 6.1.2. TÝnh nšng mĂ« nhiÒu cöa sĂŠ 133 6.1.3. Ghi v” thožt trong vim 134 6.2. Di chuyÓn trĂĄ soÂčn th¶o trong Vim 134 6.2.1. Di chuyÓn trong všn b¶n 134 6.2.2. Di chuyÓn theo cžc ŸÚi t−üng všn b¶n 135 6.2.3. CuĂ©n m”n h×nh 135 6.3. Cžc thao tžc trong všn b¶n 136 6.3.1. Cžc lÖnh chÌn všn b¶n trong vim 136 6.3.2. Cžc lÖnh xož všn b¶n trong vim 136 6.3.3. Cžc lÖnh kh«i phĂŽc všn b¶n trong vim 137 6.3.4. Cžc lÖnh thay thÕ všn b¶n trong vim 137 6.3.5. Sao chÐp v” di chuyÓn všn b¶n trong vim 138 * Sao chÐp všn b¶n v”o bĂ© nhĂ­ ¼Öm 138 * Džn všn b¶n: 138 6.3.6. T×m kiÕm v” thay thÕ všn b¶n trong vim 139 6.3.7. §žnh dÊu trong vim 140 6.3.8. Cžc phÝm sö dĂŽng trong chÕ Ÿé chÌn 140 6.3.9. MĂ©t sĂš lÖnh trong chÕ Ÿé ¶o 141 6.3.10. Cžc lÖnh lÆp 142 6.4. Cžc lÖnh khžc 142 6.4.1. Cžch thĂčc hiÖn cžc lÖnh bÂȘn trong Vim 142 6.4.2. Cžc lÖnh liÂȘn quan ¼Õn tËp tin 142 Ch−¬ng 7. LÖnh ŸÚi vĂ­i tiÕn tr×nh 7.1. Khži niÖm 144
  • 7. 7 7.2. Cžc lÖnh cÂŹ b¶n 144 7.2.1. LÖnh fg v” lÖnh bg 144 7.2.2. T×m ra cžc tiÕn tr×nh Âźang chÂčy vĂ­i lÖnh ps 147 7.2.3. Hñy tiÕn tr×nh vĂ­i lÖnh kill 149 7.2.4. Cho mžy ngĂ”ng hoÂčt Ÿéng mĂ©t thĂȘi gian vĂ­i lÖnh sleep 150 7.2.5. Xem c©y tiÕn tr×nh vĂ­i lÖnh pstree 150 7.2.6. LÖnh thiÕt ¼Æt lÂči Ÿé −u tiÂȘn cña tiÕn tr×nh nice v” lÖnh renice 152 Ch−¬ng 8. Midnight Commander 8.1. GiĂ­i thiÖu vÒ Midnight Commander (MC) 154 8.2. KhĂ«i Ÿéng MC 154 8.3. Giao diÖn cña MC 154 8.4. DĂŻng chuĂ©t trong MC 155 8.5. Cžc thao tžc b”n phÝm 155 8.6. ThĂčc Ÿn thanh ngang (menu bar) 157 8.7. Cžc phÝm chĂžc nšng 160 8.8. BĂ© soÂčn th¶o cña Midnight Commander 160 * Thanh thĂčc Ÿn 160 ThĂčc Ÿn File: 160 ThĂčc Ÿn Edit: 161 ThĂčc Ÿn Sear/Repl: 161 ThĂčc Ÿn Command: 161 ThĂčc Ÿn Options: 161 * Cžc phÝm chĂžc nšng 162 Ch−¬ng 9. Mtools - tiÖn Ých truy cËp ĂŠ ¼Üa DOS trong Linux 9.1 PhÇn giĂ­i thiÖu 163 9.2 Cžc thuĂ©c tÝnh chung cña cžc lÖnh mtools 163 9.2.1 Cžc tuĂș chĂ€n v” tÂȘn cžc tËp tin 163 TÂȘn ĂŠ ¼Üa 163 Th− mĂŽc l”m viÖc hiÖn thĂȘi 163 TÂȘn tËp tin d”i kiÓu VFAT 163 Xung Ÿét tÂȘn tËp tin 164 §Þnh dÂčng dung l−üng lĂ­n 166 NhiÒu sector hÂŹn 166
  • 8. 8 Sectors lĂ­n hÂŹn 166 §Þnh dÂčng 2m 167 §Þnh dÂčng XDF 167 M· thožt ra 167 V−íng mŸc 167 Cžc lÖnh hay sö dĂŽng 168 * LÖnh floppyd_installtest 168 * LÖnh mattrib 168 * LÖnh mbadblocks 169 * LÖnh mcat 169 LÖnh mcd 169 *LÖnh mcopy 170 V−íng mŸc 171 LÖnh mdel 171 LÖnh mdeltree 171 LÖnh mdir 171 LÖnh mdu 172 LÖnh mformat 172 LÖnh mkmanifest 174 V−íng mŸc 176 LÖnh minfo 176 LÖnh mlabel 176 LÖnh mmd 176 LÖnh mmount 176 LÖnh mmove 177 LÖnh mpartition 177 LÖnh mrd 179 LÖnh mren 179 LÖnh mshowfat 179 LÖnh mtoolstest 179 LÖnh mtype 180 LÖnh mzip 180 LÖnh xcopy 181 V−íng mŸc 182 A.1. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux 183 A.2. ChuÈn bÞ cho viÖc c”i ¼Æt 183
  • 9. 9 A.3. TÂčo ¼Üa mÒm khĂ«i Ÿéng 184 A.4. Ph©n vĂŻng lÂči ĂŠ ¼Üa DOS/Windows hiÖn thĂȘi 184 A.5. Cžc b−íc c”i ¼Æt (b¶n RedHat 6.2 v” khĂ«i Ÿéng tĂ” CD-ROM) 184 A.5.1. LĂča chĂ€n chÕ Ÿé c”i ¼Æt 184 A.5.2. LĂča chĂ€n ng«n ngĂ· hiÓn thÞ. 185 A.5.3. LĂča chĂ€n cÊu h×nh b”n phÝm 185 A.5.4. ChĂ€n cÊu h×nh chuĂ©t. 185 A.5.5. HÖ thĂšng ¼−a ra lĂȘi giĂ­i thiÖu vÒ b¶n Red Hat Âźang c”i ¼Æt. 185 A.5.6. LĂča chĂ€n kiÓu c”i ¼Æt. 185 A.5.7. Xžc ¼Þnh cžc Partition 187 A.5.8. ChĂ€n Partition ¼Ó Format. 188 A.5.9. ChĂ€n cÊu h×nh LILO (Linux Loader) 188 A.5.10. ChĂ€n mĂłi giĂȘ 189 A.5.11. ThiÕt ¼Æt cÊu h×nh Account (ng−ĂȘi sö dĂŽng) 189 A.5.12. ThiÕt ¼Æt cÊu h×nh quyÒn hÂčn (Authentication Configuration) 190 A.5.13. LĂča chĂ€n cžc gĂŁi phÇn mÒm c”i ¼Æt (Pakage Selection) 190 A.5.14. ThiÕt ¼Æt cÊu h×nh X (X Configuration) 191 A.5.15. BŸt ¼Çu quž tr×nh copy tĂ” ¼Üa CD v”o ĂŠ cĂžng 192 A.6. Cžc hÂčn chÕ vÒ phÇn cĂžng ŸÚi vĂ­i Linux 192 A.6.1. Cžc bĂ© vi xö lĂœ m” Linux hç trĂź 192 A.6.2. Cžc yÂȘu cÇu vÒ kh«ng gian ĂŠ cĂžng 193 A.6.3. Cžc yÂȘu cÇu vÒ bĂ© nhĂ­ 193 A.6.4. SĂč t−¬ng thÝch vĂ­i cžc hÖ ÂźiÒu h”nh khžc: DOS, OS/2, 386BSD, Win95 193
  • 10. 10 Ch−¬ng 1. GiĂ­i thiÖu chung vÒ lÖnh trong linux 1.1. GiĂ­i thiÖu vÒ UNIX v” Linux 1.1.1. SÂŹ bĂ© vÒ hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng UNIX (v” Linux) l” hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng (multi-users). HÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng thuĂ©c v”o loÂči hÖ ÂźiÒu h”nh Âźa ch−¬ng tr×nh ¼Þnh h−íng "th©n thiÖn vĂ­i ng−ĂȘi dĂŻng". TÂči cĂŻng mĂ©t thĂȘi ÂźiÓm, cĂŁ nhiÒu ng−ĂȘi dĂŻng cĂŻng sö dĂŽng mžy tÝnh v” ŸÚi vĂ­i mçi ng−ĂȘi dĂŻng nh− vËy ¼Òu cĂŁ c¶m gižc nh− ¼−üc sö dĂŽng mžy tÝnh mĂ©t cžch "Ÿéc quyÒn" v× hĂ€ ¼−üc trĂčc tiÕp liÂȘn kÕt vĂ­i ch−¬ng tr×nh cña m×nh Âźang thĂčc hiÖn trong mžy tÝnh. §iÒu n”y t−¬ng Ăžng vĂ­i mĂ©t chĂžc nšng cña hÖ ÂźiÒu h”nh l” "hÖ ÂźiÒu h”nh nh− mĂ©t mžy tÝnh ¶o" theo gĂŁc Ÿé cña ng−ĂȘi sö dĂŽng. Nh− vËy, trong mžy tÝnh ŸÄng thĂȘi xuÊt hiÖn nhiÒu ch−¬ng tr×nh ng−ĂȘi dĂŻng, cžc ch−¬ng tr×nh n”y chia nhau sö dĂŽng cžc t”i nguyÂȘn cña hÖ thĂšng, trong Ÿã cĂŁ cžc t”i nguyÂȘn quan trĂ€ng nhÊt l” CPU, bĂ© nhĂ­ trong v” hÖ thĂšng tËp tin (hÖ thĂšng File). Mçi ng−ĂȘi dĂŻng h−íng ¼Õn t”i nguyÂȘn chung qua trÂčm cuĂši (terminal) cña m×nh (cžc trÂčm cuĂši n”y ¼−üc ¼Æt tÂȘn v” ¼−üc hÖ thĂšng qu¶n lĂœ). Trong tr−ĂȘng hĂźp Ÿn gi¶n, trÂčm cuĂši chØ bao gĂ„m hai thiÕt bÞ l” m”n h×nh (¼Ó hiÖn th«ng tin cho ng−ĂȘi dĂŻng) v” b”n phÝm (¼Ó ng−ĂȘi dĂŻng ¼−a yÂȘu cÇu ŸÚi vĂ­i hÖ ÂźiÒu h”nh). Trong nhiÒu tr−ĂȘng hĂźp khžc, cĂŁ thÓ sö dĂŽng mĂ©t mžy tÝnh cž nh©n Ÿãng vai trß cña mĂ©t trÂčm cuĂši v” nh− vËy mçi ng−ĂȘi dĂŻng vĂ”a ¼−üc phÐp sö dĂŽng t”i nguyÂȘn riÂȘng vĂ”a ¼−üc phÐp sö dĂŽng t”i nguyÂȘn chung. §iÓn h×nh nhÊt trong c«ng viÖc ph©n chia t”i nguyÂȘn cña hÖ thĂšng mžy tÝnh trong hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng l” viÖc ph©n chia CPU theo mĂ©t chu kĂș thĂȘi gian m” mçi ng−ĂȘi dĂŻng ¼−üc sö dĂŽng CPU trong mĂ©t kho¶ng thĂȘi gian nhÊt ¼Þnh (¼−üc gĂ€i l” l−üng tö thĂȘi gian) v” sau khi mçi ng−ĂȘi Ÿ· ¼−üc ph©n chia CPU th× lÂči chuyÓn ¼Õn l−üt ph©n chia tiÕp theo. Nh− vËy, ph©n chia thĂȘi gian (Time shared system) l” cžch thĂžc cña hÖ Âźa ng−ĂȘi dĂŻng khi ÂźiÒu phĂši CPU. L” mĂ©t hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, UNIX Ÿ· khž phĂŠ biÕn trong cžc lÜnh vĂčc hoÂčt Ÿéng CNTT, cĂŁ thÓ ¼−üc sö dĂŽng tĂ” mžy vi tÝnh cho tĂ­i mžy tÝnh mainframe. NĂŁ ¼Æc biÖt thÝch hĂźp ŸÚi vĂ­i cžc hÖ Client-Server v” mÂčng mžy tÝnh diÖn rĂ©ng. 1.1.2. XuÊt xĂž, sĂč phžt triÓn v” mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh UNIX Nšm 1965, ViÖn c«ng nghÖ Massachusetts (MIT: Massachusetts Institute of Technology) v” Phßng thÝ nghiÖm Bell cña h·ng AT&T thĂčc hiÖn dĂč žn x©y dĂčng mĂ©t hÖ ÂźiÒu h”nh cĂŁ tÂȘn gĂ€i l” Multics (MULTiplexed Information and Computing Service) vĂ­i mĂŽc tiÂȘu: tÂčo lËp ¼−üc mĂ©t hÖ ÂźiÒu h”nh phñ trÂȘn vĂŻng l·nh thĂŠ rĂ©ng (hoÂčt Ÿéng trÂȘn tËp cžc mžy tÝnh ¼−üc kÕt nĂši), Âźa ng−ĂȘi dĂŻng, cĂŁ nšng lĂčc cao vÒ tÝnh tožn v” l−u trĂ·. DĂč žn nĂŁi trÂȘn th”nh c«ng Ă« mĂžc Ÿé hÕt sĂžc khiÂȘm tĂšn v” ng−ĂȘi ta Ÿ· biÕt ¼Õn mĂ©t sĂš khiÕm khuyÕt khĂŁ khŸc phĂŽc cña Multics. Nšm1969, Ken Thompson, mĂ©t chuyÂȘn viÂȘn tÂči phßng thÝ nghiÖm Bell, ng−ĂȘi Ÿ· tham gia dĂč žn Multics, cĂŻng Dennics Richie viÕt lÂči hÖ ÂźiÒu h”nh Âźa-b”i tožn trÂȘn mžy PDP-7 vĂ­i tÂȘn l” UNICS (UNiplexed Information and Computing Service) tĂ” mĂ©t c©u gĂ€i Ÿïa cña mĂ©t ŸÄng nghiÖp. Trong hÖ ÂźiÒu h”nh UNICS, mĂ©t sĂš khĂ«i th¶o ¼Çu tiÂȘn vÒ HÖ thĂšng tËp tin Ÿ· ¼−üc Ken Thompson v” Dennis Ritchie thĂčc hiÖn. §Õn nšm 1970 hÖ ÂźiÒu h”nh ¼−üc viÕt trÂȘn assembler cho mžy PDP-11/20 v” mang tÂȘn l” UNIX.
  • 11. 11 Nšm 1973, Riche v” Thompson viÕt lÂči nh©n cña hÖ ÂźiÒu h”nh UNIX trÂȘn ng«n ngĂ· C, v” hÖ ÂźiÒu h”nh Ÿ· trĂ« nÂȘn dÔ d”ng c”i ¼Æt tĂ­i cžc loÂči mžy tÝnh khžc nhau; tÝnh chÊt nh− thÕ ¼−üc gĂ€i l” tÝnh kh¶ chuyÓn (portable) cña UNIX. Tr−íc Ÿã, kho¶ng nšm 1971, hÖ ÂźiÒu h”nh ¼−üc thÓ hiÖn trÂȘn ng«n ngĂ· B (m” dĂča trÂȘn ng«n ngĂ· B, Ritche Ÿ· phžt triÓn th”nh ng«n ngĂ· C). H·ng AT&T phĂŠ biÕn ch−¬ng tr×nh nguĂ„n UNIX tĂ­i cžc tr−ĂȘng ÂźÂči hĂ€c, cžc c«ng ty th−¬ng mÂči v” chÝnh phñ vĂ­i giž kh«ng Ÿžng kÓ. Nšm 1982, hÖ thĂšng UNIX-3 l” b¶n UNIX th−¬ng mÂči ¼Çu tiÂȘn cña AT&T. Nšm 1983, AT&T giĂ­i thiÖu HÖ thĂšng UNIX-4 phiÂȘn b¶n thĂž nhÊt trong Ÿã Ÿ· cĂŁ tr×nh soÂčn th¶o vi, th− viÖn qu¶n lĂœ m”n h×nh ¼−üc phžt triÓn tĂ” §Âči hĂ€c TĂŠng hĂźp California, Berkley. Giai ÂźoÂčn 1985-1987, UNIX-5 phiÂȘn b¶n 2 v” 3 t−¬ng Ăžng ¼−üc ¼−a ra v”o cžc nšm 1985 v” 1987. Trong giai ÂźoÂčn n”y, cĂŁ kho¶ng 100000 b¶n UNIX Ÿ· ¼−üc phĂŠ biÕn trÂȘn thÕ giĂ­i, c”i ¼Æt tĂ” mžy vi tÝnh ¼Õn cžc hÖ thĂšng lĂ­n. §Çu thËp kĂ» 1990. UNIX-5 phiÂȘn b¶n 4 ¼−üc ¼−a ra nh− l” mĂ©t chuÈn cña UNIX. §©y l” sĂč kÕt hĂźp cña cžc b¶n sau: AT&T UNIX-5 phiÂȘn b¶n 3, Berkley Software Distribution (BSD), XENIX cña MicroSoft SUN OS Trong thĂȘi gian gÇn Ÿ©y (kho¶ng nšm 1997) mĂ©t sĂš phiÂȘn b¶n mĂ­i cña UNIX ¼−üc giĂ­i thiÖu v” phĂŠ biÕn trÂȘn Internet. CĂŁ thÓ t×m thÊy cžc nĂ©i dung liÂȘn quan tÂči ¼Þa chØ website http://problem.rice.edu/. Cžc nhĂŁm nh” cung cÊp khžc nhau vÒ UNIX Âźang hoÂčt Ÿéng trong thĂȘi gian hiÖn nay ¼−üc kÓ ¼Õn nh− sau: Unix International (viÕt tŸt l” UI). UI l” mĂ©t tĂŠ chĂžc gĂ„m cžc nh” cung cÊp thĂčc hiÖn viÖc chuyÓn nh−üng hÖ thĂšng UNIX-5 v” cung cÊp b¶n AT&T theo cžc nhu cÇu v” th«ng bžo phžt h”nh mĂ­i, chÂŒng hÂčn nh− ÂźiÒu chØnh b¶n quyÒn. Giao diÖn ŸÄ hĂ€a ng−ĂȘi dĂŻng l” Open Look. Open Software Foundation (OSF). OSF ¼−üc hç trĂź bĂ«i IBM, DEC, HP ... theo h−íng phžt triÓn mĂ©t phiÂȘn b¶n cña Unix nh»m tranh Âźua vĂ­i hÖ thĂšng UNIX-5 phiÂȘn b¶n 4. PhiÂȘn b¶n n”y cĂŁ tÂȘn l” OSF/1 vĂ­i giao diÖn ŸÄ hĂ€a ng−ĂȘi dĂŻng ¼−üc gĂ€i l” MOTIF. Free SoftWare Foundation: mĂ©t tĂŠ chĂžc chñ tr−¬ng phžt h”nh mĂ©t dßng cña UNIX m· nguĂ„n mĂ«, miÔn phÝ: Ÿã l” hÖ ÂźiÒu h”nh Linux. B¶ng sau Ÿ©y liÖt kÂȘ mĂ©t sĂš c”i ¼Æt UNIX khž phĂŠ biÕn (th−ĂȘng thÊy cĂŁ chĂ· X Ă« cuĂši tÂȘn gĂ€i cña HÖ ÂźiÒu h”nh): TÂȘn hÖ Nh” cung cÊp NÒn phžt triÓn AIX International Business Machines AT&T System V A/UX Apple Computer AT&T System V Dynix Sequent BSD (Berkeley SoftWare Distribution) HP-UX Hewlett-Packard BSD
  • 12. 12 Irix Silicon Graphics AT&T System V Linux Free SoftWare Foundation NextStep Next BSD OSF/1 Digital Equipment Corporation BSD SCO UNIX Santa Cruz Operation AT&T System V Solaris Sun Microsystems AT&T System V SunOS Sun Microsystems BSD UNIX Ultrix Digital Equipment Corporation BSD UNIX Unicos Cray AT&T System V UnixWare Novell AT&T System V XENIX MicroSoft AT&T System III-MS D−íi Ÿ©y liÖt kÂȘ mĂ©t sĂš ¼Æc tr−ng cña hÖ ÂźiÒu h”nh UNIX: HÖ ÂźiÒu h”nh ¼−üc viÕt trÂȘn ng«n ngĂ· bËc cao; bĂ«i vËy, rÊt dÔ ŸÀc, dÔ hiÓu, dÔ thay ŸÊi ¼Ó c”i ¼Æt trÂȘn loÂči mžy mĂ­i (tÝnh dÔ mang chuyÓn, nh− Ÿ· nĂŁi), CĂŁ giao diÖn ng−ĂȘi dĂŻng Ÿn gi¶n Ÿñ nšng lĂčc cung cÊp cžc dÞch vĂŽ m” ng−ĂȘi dĂŻng mong muĂšn (so sžnh vĂ­i cžc hÖ ÂźiÒu h”nh cĂŁ tĂ” tr−íc Ÿã th× giao diÖn cña UNIX l” mĂ©t tiÕn bĂ© v−üt bËc), ThĂĄa m·n nguyÂȘn tŸc x©y dĂčng cžc ch−¬ng tr×nh phĂžc tÂčp tĂ” nhĂ·ng ch−¬ng tr×nh Ÿn gi¶n hÂŹn: tr−íc hÕt cĂŁ cžc m«Ÿun cÂŹ b¶n nhÊt cña nh©n sau Ÿã phžt triÓn ¼Ó cĂŁ to”n bĂ© hÖ ÂźiÒu h”nh, Sö dĂŽng duy nhÊt mĂ©t hÖ thĂšng File cĂŁ cÊu trĂłc cho phÐp dÔ d”ng b¶o qu¶n v” sö dĂŽng hiÖu qu¶, Sö dĂŽng phĂŠ biÕn mĂ©t dÂčng Ÿn gi¶n tr×nh b”y nĂ©i tÂči cña File nh− mĂ©t dßng cžc byte cho phÐp dÔ d”ng khi viÕt cžc ch−¬ng tr×nh Ăžng dĂŽng truy nhËp, thao tžc vĂ­i cžc dĂ· liÖu trong File, CĂŁ kÕt nĂši Ÿn gi¶n vĂ­i thiÕt bÞ ngoÂči vi: cžc file thiÕt bÞ Ÿ· ¼−üc ¼Æt sÂœn trong HÖ thĂšng File tÂčo ra mĂ©t kÕt nĂši Ÿn gi¶n giĂ·a ch−¬ng tr×nh ng−ĂȘi dĂŻng vĂ­i cžc thiÕt bÞ ngoÂči vi, L” hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, Âźa tiÕn tr×nh, trong Ÿã mçi ng−ĂȘi dĂŻng cĂŁ thÓ thĂčc hiÖn cžc tiÕn tr×nh cña m×nh mĂ©t cžch Ÿéc lËp. MĂ€i thao tžc v”o - ra cña hÖ ÂźiÒu h”nh ¼−üc thĂčc hiÖn trÂȘn hÖ thĂšng File: mçi thiÕt bÞ v”o ra t−¬ng Ăžng vĂ­i mĂ©t file. Ch−¬ng tr×nh ng−ĂȘi dĂŻng l”m viÖc vĂ­i file Ÿã m” kh«ng cÇn quan t©m cĂŽ thÓ tÂȘn file Ÿã ¼−üc ¼Æt cho thiÕt bÞ n”o trong hÖ thĂšng. Che khuÊt cÊu trĂłc mžy ŸÚi vĂ­i ng−ĂȘi dĂŻng, ٦m b¶o tÝnh Ÿéc lËp t−¬ng ŸÚi cña ch−¬ng tr×nh ŸÚi vĂ­i dĂ· liÖu v” phÇn cĂžng, tÂčo ÂźiÒu kiÖn thuËn lĂźi hÂŹn cho ng−ĂȘi lËp tr×nh khi viÕt cžc ch−¬ng tr×nh chÂčy UNIX vĂ­i cžc ÂźiÒu kiÖn phÇn cĂžng ho”n to”n khžc biÖt nhau.
  • 13. 13 1.1.3. GiĂ­i thiÖu sÂŹ bĂ© vÒ Linux Linus Tovalds (mĂ©t sinh viÂȘn PhÇn lan) Ÿ· ¼−a ra phiÂȘn b¶n ¼Çu tiÂȘn cña hÖ ÂźiÒu h”nh Linux v”o thžng 8 nšm 1991. Linus Tovalds Ÿ· x©y dĂčng hÖ ÂźiÒu h”nh Linux dĂča trÂȘn mĂ©t phiÂȘn b¶n nhĂĄ cña UNIX cĂŁ tÂȘn Minix (Minix do mĂ©t chuyÂȘn gia h”ng ¼Çu vÒ hÖ ÂźiÒu h”nh l” Gižo s− Andrew S. Tanenbaum x©y dĂčng) theo h−íng hoÂčt Ÿéng trÂȘn mžy tÝnh cž nh©n. TĂ” thĂȘi ÂźiÓm Ÿã, theo t− tâˆ’Ă«ng GNU, h”ng ngh×n chuyÂȘn gia trÂȘn to”n thÕ giĂ­i Ÿ· tham gia v”o quž tr×nh phžt triÓn Linux v” v× vËy Linux ng”y c”ng Ÿžp Ăžng nhu cÇu cña ng−ĂȘi dĂŻng. CĂŁ thÓ kÓ ra mĂ©t sĂš ¼Æc ÂźiÓm sau Ÿ©y cña hÖ ÂźiÒu h”nh Linux hiÖn tÂči: Linux t−¬ng thÝch vĂ­i nhiÒu hÖ ÂźiÒu h”nh nh− DOS, MicroSoft Windows ...: CĂŁ thÓ c”i Linux cĂŻng vĂ­i cžc hÖ ÂźiÒu h”nh khžc trÂȘn cĂŻng mĂ©t ĂŠ cĂžng: Linux cĂŁ thÓ truy nhËp ¼Õn cžc file cña cžc hÖ ÂźiÒu h”nh cĂŻng mĂ©t ĂŠ ¼Üa. Linux cho phÐp chÂčy m« phĂĄng cžc ch−¬ng tr×nh thuĂ©c cžc hÖ ÂźiÒu h”nh khžc. Do giĂ· ¼−üc chuÈn cña UNIX nÂȘn sĂč chuyÓn ŸÊi giĂ·a Linux v” cžc hÖ UNIX khžc l” dÔ d”ng. Linux l” mĂ©t hÖ ÂźiÒu h”nh UNIX tiÂȘu biÓu: Âźa ng−ĂȘi dĂŻng, Âźa ch−¬ng tr×nh v” Âźa xö lĂœ. Linux cĂŁ giao diÖn ŸÄ hoÂč (GUI) qua X-Window. Linux hç trĂź nhiÒu giao thĂžc mÂčng. Linux cßn hç trĂź tÝnh thĂȘi gian thĂčc. Linux khž mÂčnh v” chÂčy rÊt nhanh ngay c¶ khi nhiÒu quž tr×nh hoÆc nhiÒu cöa sĂŠ. Linux ¼−üc c”i ¼Æt trÂȘn nhiÒu chñng loÂči mžy tÝnh khžc nhau: PC, mini v” viÖc c”i ¼Æt khž thuËn lĂźi song ch−a xuÊt hiÖn trÂȘn mžy tÝnh lĂ­n (mainframe). Linux ng”y c”ng ¼−üc hç trĂź bĂ«i cžc phÇn mÒm Ăžng dĂŽng: soÂčn th¶o, qu¶n lĂœ mÂčng, qu¶n trÞ cÂŹ sĂ« dĂ· liÖu, b¶ng tÝnh v.v. Linux hç trĂź tĂšt cho tÝnh tožn song song v” mžy tÝnh cĂŽm (PC-cluster) l” mĂ©t h−íng nghiÂȘn cĂžu triÓn khai Ăžng dĂŽng nhiÒu triÓn vĂ€ng hiÖn nay. L” mĂ©t hÖ ÂźiÒu h”nh vĂ­i m· nguĂ„n mĂ«, ¼−üc phžt triÓn qua Free SoftWare Foundation nÂȘn Linux phžt triÓn nhanh v” l” mĂ©t hÖ ÂźiÒu h”nh ¼−üc quan t©m nhiÒu nhÊt trÂȘn thÕ giĂ­i hiÖn nay. Linux l” mĂ©t hÖ ÂźiÒu h”nh hç trĂź Âźa ng«n ngĂ· mĂ©t cžch to”n diÖn nhÊt. Do Linux cho phÐp hç trĂź cžc bĂ© m· chuÈn tĂ” 16 bit trĂ« lÂȘn (trong Ÿã cĂŁ cžc bĂ© m· Unicode, ISO10646) cho nÂȘn viÖc b¶n ¼Þa hĂŁa trÂȘn Linux l” triÖt ¼Ó nhÊt trong cžc hÖ ÂźiÒu h”nh. Tuy nhiÂȘn cĂČng cßn mĂ©t sĂš khĂŁ khšn l”m cho Linux ch−a thĂčc sĂč trĂ« th”nh mĂ©t hÖ ÂźiÒu h”nh phĂŠ dĂŽng, trong Ÿã cĂŁ thÓ kÓ ¼Õn mĂ©t sĂš khĂŁ khšn nh− sau: KhĂŁ khšn khi c”i ¼Æt Linux v” kh¶ nšng t−¬ng thÝch cña Linux vĂ­i mĂ©t sĂš loÂči thiÕt bÞ phÇn cĂžng cßn thÊp do ch−a cĂŁ cžc tr×nh ÂźiÒu khiÓn cho nhiÒu thiÕt bÞ, PhÇn mÒm Ăžng dĂŽng chÂčy trÂȘn nÒn Linux tuy Ÿ· phong phĂł song so vĂ­i cžc hÖ ÂźiÒu h”nh khžc nh− MS Windows th× vÉn cßn cĂŁ kho¶ng cžch. VĂ­i sĂč hç trĂź cña nhiÒu c«ng ty Tin hĂ€c h”ng ¼Çu (IBM, SUN, HP ...) v” sĂč tham gia phžt triÓn cña h”ng vÂčn chuyÂȘn gia trÂȘn to”n thÕ giĂ­i, cžc khĂŁ khšn cña Linux chŸc chŸn sÏ nhanh chĂŁng ¼−üc khŸc phĂŽc. ChÝnh v× lÏ Ÿã Ÿ· h×nh th”nh mĂ©t sĂš nh” cung
  • 14. 14 cÊp Linux trÂȘn thÕ giĂ­i. B¶ng d−íi Ÿ©y l” tÂȘn cña mĂ©t sĂš nh” cung cÊp Linux cĂŁ tiÕng nhÊt v” ¼Þa chØ website cña hĂ€. §žng chĂł Ăœ nhÊt l” Red Hat Linux v” Red Flag Linux. Red Hat ¼−üc coi l” l©u ÂźĂȘi v” tin cËy, cßn Red Flag l” mĂ©t c«ng ty Linux cña Trung quĂšc, cĂŁ quan hÖ vĂ­i cĂ©ng ŸÄng Linux ViÖt nam v” chĂłng ta cĂŁ thÓ hĂ€c hĂĄi mĂ©t cžch trĂčc tiÕp kinh nghiÖm cho quž tr×nh ¼−a Linux v”o ViÖt nam. TÂȘn c«ng ty §Þa chØ website Caldera OpenLinux www.caldera.com Corel Linux www.corel.com Debian GNU/Linux www.debian.com Linux Mandrake www.mandrake.com Red Hat Linux www.redhat.com Red Flag Linux www.redflag-linux.com Slackware Linux www.slackware.com SuSE Linux www.suse.com TurboLinux www.turbolinux.com 1.2. SÂŹ bĂ© vÒ cžc th”nh phÇn cña Linux HÖ ÂźiÒu h”nh Linux ¼−üc chia th”nh 4 th”nh phÇn nh− sau: Nh©n (system kernel), Shell, HÖ thĂšng tËp tin (File system), Cžc tiÖn Ých (utilities) hay l” hÖ thĂšng lÖnh cña Linux. TiÖn Ých chÝnh l” lÖnh Ÿ· cĂŁ sÂœn trong hÖ ÂźiÒu h”nh (d−íi Ÿ©y tiÖn Ých ¼−üc coi l” lÖnh th−ĂȘng trĂčc). NĂ©i dung chÝnh yÕu cña cuĂšn sžch n”y giĂ­i thiÖu chi tiÕt vÒ mĂ©t sĂš lÖnh th«ng dĂŽng nhÊt cña Linux. HÖ thĂšng tËp tin sÏ ¼−üc giĂ­i thiÖu trong ch−¬ng 3. Trong cžc ch−¬ng sau cña cuĂšn sžch ¼Ò cËp tĂ­i nhiÒu nĂ©i dung liÂȘn quan ¼Õn nh©n v” shell, song ngay sau Ÿ©y th× mĂ©t sĂš nÐt sÂŹ bĂ© vÒ chĂłng sÏ ¼−üc giĂ­i thiÖu. 1.2.1. SÂŹ bĂ© vÒ nh©n Nh©n (cßn ¼−üc gĂ€i l” hÖ lĂąi) cña Linux, l” mĂ©t bĂ© cžc m«dun ch−¬ng tr×nh cĂŁ vai trß ÂźiÒu khiÓn cžc th”nh phÇn cña mžy tÝnh, ph©n phĂši cžc t”i nguyÂȘn cho ng−ĂȘi dĂŻng (cžc tiÕn tr×nh ng−ĂȘi dĂŻng). Nh©n chÝnh l” cÇu nĂši giĂ·a ch−¬ng tr×nh Ăžng dĂŽng vĂ­i phÇn cĂžng. Ng−ĂȘi dĂŻng sö dĂŽng b”n phÝm gĂą nĂ©i dung yÂȘu cÇu cña m×nh v” yÂȘu cÇu Ÿã ¼−üc nh©n göi tĂ­i shell: Shell ph©n tÝch lÖnh v” gĂ€i cžc ch−¬ng tr×nh t−¬ng Ăžng vĂ­i lÖnh ¼Ó thĂčc hiÖn. MĂ©t trong nhĂ·ng chĂžc nšng quan trĂ€ng nhÊt cña nh©n l” gi¶i quyÕt b”i tožn lËp lÞch, tĂžc l” hÖ thĂšng cÇn ph©n chia CPU cho nhiÒu tiÕn tr×nh hiÖn thĂȘi cĂŻng tĂ„n tÂči. §Úi vĂ­i Linux, sĂš l−üng tiÕn tr×nh cĂŁ thÓ lÂȘn tĂ­i con sĂš h”ng ngh×n. VĂ­i sĂš l−üng tiÕn tr×nh ŸÄng thĂȘi nhiÒu nh− vËy, cžc thuËt tožn lËp lÞch cÇn ph¶i Ÿñ hiÖu qu¶: Linux th−ĂȘng lËp lÞch theo chÕ Ÿé Round Robin (RR) thĂčc hiÖn viÖc lu©n chuyÓn CPU theo l−üng tö thĂȘi gian. Th”nh phÇn quan trĂ€ng thĂž hai trong nh©n l” hÖ thĂšng cžc m«Ÿun ch−¬ng tr×nh (¼−üc gĂ€i l” lĂȘi gĂ€i hÖ thĂšng) l”m viÖc vĂ­i hÖ thĂšng tËp tin. Linux cĂŁ hai cžch thĂžc
  • 15. 15 l”m viÖc vĂ­i cžc tËp tin: l”m viÖc theo byte (kÝ tĂč) v” l”m viÖc theo khĂši. MĂ©t ¼Æc ÂźiÓm Ÿžng chĂł Ăœ l” viÖc tËp tin trong Linux cĂŁ thÓ ¼−üc nhiÒu ng−ĂȘi cĂŻng truy nhËp tĂ­i nÂȘn cžc lĂȘi gĂ€i hÖ thĂšng l”m viÖc vĂ­i tËp tin cÇn ٦m b¶o viÖc tËp tin ¼−üc truy nhËp theo quyÒn v” ¼−üc chia xÎ cho ng−ĂȘi dĂŻng. 1.2.2. SÂŹ bĂ© vÒ shell MĂ©t sĂš nĂ©i dung chi tiÕt vÒ shell (cßn ¼−üc gĂ€i l” hÖ vĂĄ) trong Linux ¼−üc tr×nh b”y trong ch−¬ng "LËp tr×nh trÂȘn shell". NhĂ·ng nĂ©i dung tr×nh b”y d−íi Ÿ©y cho chĂłng ta mĂ©t cžch nh×n sÂŹ bĂ© vÒ shell v” vai trß cña nĂŁ trong hoÂčt Ÿéng chung cña hÖ ÂźiÒu h”nh. Ng−ĂȘi dĂŻng mong muĂšn mžy tÝnh thĂčc hiÖn mĂ©t c«ng viÖc n”o Ÿã th× cÇn gĂą lÖnh t−¬ng Ăžng thÓ hiÖn yÂȘu cÇu cña m×nh ¼Ó hÖ thĂšng Ÿžp Ăžng yÂȘu cÇu Ÿã. Shell l” bĂ© dÞch lÖnh v” hoÂčt Ÿéng nh− mĂ©t kÕt nĂši trung gian giĂ·a nh©n vĂ­i ng−ĂȘi dĂŻng: Shell nhËn dßng lÖnh do ng−ĂȘi dĂŻng ¼−a v”o; v” tĂ” dßng lÖnh nĂŁi trÂȘn nh©n tžch ra cžc bĂ© phËn ¼Ó nhËn ¼−üc mĂ©t hay mĂ©t sĂš lÖnh t−¬ng Ăžng vĂ­i cžc ÂźoÂčn všn b¶n cĂŁ trong dßng lÖnh. MĂ©t lÖnh bao gĂ„m tÂȘn lÖnh v” tham sĂš: tĂ” ¼Çu tiÂȘn l” tÂȘn lÖnh, cžc tĂ” tiÕp theo (nÕu cĂŁ) l” cžc tham sĂš. TiÕp theo, shell sö dĂŽng nh©n ¼Ó khĂ«i sinh mĂ©t tiÕn tr×nh mĂ­i (khĂ«i tÂčo tiÕn tr×nh) v” sau Ÿã, shell chĂȘ Ÿßi tiÕn tr×nh con n”y tiÕn h”nh, ho”n thiÖn v” kÕt thĂłc. Khi shell sÂœn s”ng tiÕp nhËn dßng lÖnh cña ng−ĂȘi dĂŻng, mĂ©t dÊu nhŸc shell (cßn gĂ€i l” dÊu nhŸc nhËp lÖnh) xuÊt hiÖn trÂȘn m”n h×nh. Linux cĂŁ hai loÂči shell phĂŠ biÕn l”: C-shell (dÊu nhŸc %), Bourne-shell (dÊu nhŸc $) v” mĂ©t sĂš shell phžt triÓn tĂ” cžc shell nĂŁi trÂȘn (chÂŒng hÂčn, TCshell - tcsh vĂ­i dÊu nhŸc ngÇm ¼Þnh > phžt triÓn tĂ” C-shell v” GNU Bourne - bash vĂ­i dÊu nhŸc bash # phžt triÓn tĂ” Bourne-shell). DÊu mĂȘi ph©n biÖt shell nĂŁi Ă« trÂȘn kh«ng ph¶i ho”n to”n rĂą r”ng do Linux cho phÐp ng−ĂȘi dĂŻng thay ŸÊi lÂči dÊu nhŸc shell nhĂȘ viÖc thay giž trÞ cžc biÕn m«i tr−ĂȘng PS1 v” PS2. Trong cuĂšn sžch n”y, chĂłng ta sö dĂŽng kÝ hiÖu "h”ng r”o #" ¼Ó biÓu thÞ dÊu nhŸc shell. C-shell cĂŁ tÂȘn gĂ€i nh− vËy l” do cžch viÕt lÖnh v” ch−¬ng tr×nh lÖnh Linux tĂča nh− ng«n ngĂ· C. Bourne-shell mang tÂȘn tžc gi¶ cña nĂŁ l” Steven Bourne. MĂ©t sĂš lÖnh trong C-shell (chÂŒng hÂčn lÖnh alias) kh«ng cßn cĂŁ trong Bourne-shell v” v× vËy ¼Ó nhËn biÕt hÖ thĂšng Âźang l”m viÖc vĂ­i shell n”o, chĂłng ta gĂą lÖnh: # alias NÕu mĂ©t danh sžch xuÊt hiÖn th× shell Âźang sö dĂŽng l” C-shell; ng−üc lÂči, nÕu xuÊt hiÖn th«ng bžo "Command not found" th× shell Ÿã l” Bourne-shell. LÖnh ¼−üc chia th”nh 3 loÂči lÖnh: LÖnh th−ĂȘng trĂčc (cĂŁ sÂœn cña Linux). TuyÖt ÂźÂči Âźa sĂš lÖnh ¼−üc giĂ­i thiÖu trong cuĂšn sžch n”y l” lÖnh th−ĂȘng trĂčc. ChĂłng bao gĂ„m cžc lÖnh ¼−üc chĂža sÂœn trong shell v” cžc lÖnh th−ĂȘng trĂčc khžc. TËp tin ch−¬ng tr×nh ng«n ngĂ· mžy: chÂŒng hÂčn, ng−ĂȘi dĂŻng viÕt tr×nh trÂȘn ng«n ngĂ· C qua bĂ© dÞch gcc (bao gĂ„m c¶ tr×nh kÕt nĂši link) ¼Ó tÂčo ra mĂ©t ch−¬ng tr×nh trÂȘn ng«n ngĂ· mžy. TËp tin ch−¬ng tr×nh shell (Shell Scrip). Khi kÕt thĂłc mĂ©t dßng lÖnh cÇn gĂą phÝm ENTER ¼Ó shell ph©n tÝch v” thĂčc hiÖn lÖnh.
  • 16. 16 1.3. GiĂ­i thiÖu vÒ viÖc sö dĂŽng lÖnh trong Linux Nh− Ÿ· giĂ­i thiÖu Ă« phÇn trÂȘn, Linux l” mĂ©t hÖ ÂźiÒu h”nh Âźa ng−ĂȘi dĂŻng, Âźa nhiÖm, ¼−üc phžt triÓn bĂ«i h”ng ngh×n chuyÂȘn gia Tin hĂ€c trÂȘn to”n thÕ giĂ­i nÂȘn hÖ thĂšng lÖnh cĂČng ng”y c”ng phong phĂł; ¼Õn thĂȘi ÂźiÓm hiÖn nay (nšm 2000) Linux cĂŁ kho¶ng hÂŹn mĂ©t ngh×n lÖnh. Tuy nhiÂȘn chØ cĂŁ kho¶ng v”i chĂŽc lÖnh l” th«ng dĂŽng nhÊt ŸÚi vĂ­i ng−ĂȘi dĂŻng. CuĂšn sžch n”y cĂČng hÂčn chÕ giĂ­i thiÖu kho¶ng v”i chĂŽc lÖnh Ÿã. ChĂłng ta ŸÔng e ngÂči vÒ sĂš l−üng lÖnh ¼−üc giĂ­i thiÖu chØ chiÕm mĂ©t phÇn nhĂĄ trong tËp hĂźp lÖnh bĂ«i v× Ÿ©y l” nhĂ·ng lÖnh th«ng dĂŽng nhÊt v” chĂłng cung cÊp mĂ©t phÂčm vi Ăžng dĂŽng rĂ©ng lĂ­n, Ÿñ thĂĄa m·n yÂȘu cÇu cña chĂłng ta. CĂČng nh− Ÿ· nĂŁi Ă« trÂȘn, ng−ĂȘi dĂŻng l”m viÖc vĂ­i mžy tÝnh th«ng qua viÖc sö dĂŽng trÂčm cuĂši: ng−ĂȘi dĂŻng ¼−a yÂȘu cÇu cña m×nh b»ng cžch gĂą "lÖnh" tĂ” b”n phÝm v” giao cho hÖ ÂźiÒu h”nh xö lĂœ. Khi c”i ¼Æt Linux lÂȘn mžy tÝnh cž nh©n th× mžy tÝnh cž nh©n vĂ”a Ÿãng vai trß trÂčm cuĂši, vĂ”a Ÿãng vai trß mžy tÝnh xö lĂœ. DÂčng tĂŠng qužt cña lÖnh Linux cĂŁ thÓ ¼−üc viÕt nh− sau: # <TÂȘn lÖnh> [<cžc tham sĂš>] ↔ trong Ÿã: TÂȘn lÖnh l” mĂ©t d·y kĂœ tĂč, kh«ng cĂŁ dÊu cžch, biÓu thÞ cho mĂ©t lÖnh cña Linux hay mĂ©t ch−¬ng tr×nh. Ng−ĂȘi dĂŻng cÇn hÖ ÂźiÒu h”nh Ÿžp Ăžng yÂȘu cÇu g× cña m×nh th× ph¶i chĂ€n Ÿóng tÂȘn lÖnh. TÂȘn lÖnh l” bŸt buĂ©c ph¶i cĂŁ khi gĂą lÖnh. Cžc tham sĂš cĂŁ thÓ cĂŁ hoÆc kh«ng cĂŁ, ¼−üc viÕt theo quy ¼Þnh cña lÖnh m” chĂłng ta sö dĂŽng, nh»m cung cÊp th«ng tin vÒ cžc ŸÚi t−üng m” lÖnh tžc Ÿéng tĂ­i. Ăœ nghÜa cña cžc dÊu [, <, >, ] ¼−üc gi¶i thÝch Ă« phÇn quy tŸc viÕt lÖnh. Cžc tham sĂš ¼−üc ph©n ra th”nh hai loÂči: tham sĂš khĂŁa v” tham sĂš vÞ trÝ. Tham sĂš vÞ trÝ th−ĂȘng l” tÂȘn tËp tin, th− mĂŽc v” th−ĂȘng l” cžc ŸÚi t−üng chÞu sĂč tžc Ÿéng cña lÖnh. Khi gĂą lÖnh, tham sĂš vÞ trÝ ¼−üc thay b»ng nhĂ·ng ŸÚi t−üng m” ng−ĂȘi dĂŻng cÇn h−íng tžc Ÿéng tĂ­i. Tham sĂš khĂŁa chÝnh l” nhĂ·ng tham sĂš ÂźiÒu khiÓn hoÂčt Ÿéng cña lÖnh theo cžc tr−ĂȘng hĂźp riÂȘng. Trong Linux, tham sĂš khĂŁa th−ĂȘng bŸt ¼Çu bĂ«i dÊu trĂ” "-" hoÆc hai dÊu trĂ” liÂȘn tiÕp "--". Khi gĂą lÖnh, cĂČng giĂšng nh− tÂȘn lÖnh, tham sĂš khĂŁa ph¶i ¼−üc viÕt chÝnh xžc nh− tr×nh b”y trong m« t¶ lÖnh. MĂ©t lÖnh cĂŁ thÓ cĂŁ mĂ©t sĂš hoÆc rÊt nhiÒu tham sĂš khĂŁa. PhĂŽ thuĂ©c v”o yÂȘu cÇu cĂŽ thÓ cña m×nh, ng−ĂȘi dĂŻng cĂŁ thÓ chĂ€n mĂ©t hoÆc mĂ©t sĂš cžc tham sĂš khĂŁa khi gĂą lÖnh. Trong cžc m« t¶ lÖnh, phĂŠ biÕn xuÊt hiÖn cžc tĂŻy chĂ€n lÖnh m” ¼−üc viÕt tŸt l” tĂŻy-chĂ€n. Cžc tĂŻy chĂ€n lÖnh (hÇu hÕt l” cžc tham sĂš khĂŁa) cho phÐp ÂźiÒu chØnh hoÂčt Ÿéng cña lÖnh trong Linux, l”m cho lÖnh cĂŁ tÝnh phĂŠ dĂŽng cao. Cžc tuĂș chĂ€n lÖnh cho phÐp lÖnh cĂŁ thÓ Ÿžp Ăžng Ăœ muĂšn cña ng−ĂȘi dĂŻng ŸÚi vĂ­i hÇu hÕt (tuy kh«ng ph¶i lĂłc n”o cĂČng vËy) cžc t×nh huĂšng ¼Æt ra cho thao tžc Ăžng vĂ­i lÖnh. KĂœ hiÖu "↔" biÓu thÞ viÖc gĂą phÝm hÕt dßng <Enter>. §Ó kÕt thĂłc mĂ©t yÂȘu cÇu, ng−ĂȘi dĂŻng nhÊt thiÕt ph¶i gĂą phÝm "↔". VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą lÖnh xem th«ng tin vÒ cžc tËp tin: # ls -l g*↔ trong lÖnh n”y:
  • 17. 17 ls l” tÂȘn lÖnh thĂčc hiÖn viÖc ¼−a danh sžch cžc tÂȘn tËp tin/ th− mĂŽc con trong mĂ©t th− mĂŽc, -l l” tham sĂš khĂŁa, cho biÕt yÂȘu cÇu xem ¼Çy Ÿñ th«ng tin vÒ cžc ŸÚi t−üng hiÖn ra. ChĂł Ăœ, trong tham sĂš khĂŁa chĂ· cži (chĂ· "l") ph¶i Âźi ngay sau dÊu trĂ” "- ". T−¬ng Ăžng vĂ­i lÖnh ls cßn cĂŁ cžc tham sĂš khĂŁa -a, -L, ... v” chĂłng cĂČng l” cžc tĂŻy chĂ€n lÖnh. Trong mĂ©t sĂš tham sĂš khĂŁa cĂŁ nhiÒu chĂ· cži thay cho mĂ©t dÊu "-" l” hai dÊu "--" Ă« ¼Çu tham sĂš. VÝ dĂŽ, nh− tr−ĂȘng hĂźp tham sĂš --file cña lÖnh date. g* l” tham sĂš vÞ trÝ chØ rĂą ng−ĂȘi dĂŻng cÇn xem th«ng tin vÒ cžc tËp tin cĂŁ tÂȘn gĂ€i bŸt ¼Çu l” chĂ· cži "g". Trong cuĂšn sžch n”y, chĂłng ta quy −íc r»ng khi viÕt mĂ©t lÖnh (trong m« t¶ lÖnh v” gĂą lÖnh) th× kh«ng cÇn ph¶i viÕt dÊu "↔" Ă« cuĂši dßng lÖnh Ÿã, song lu«n ghi nhĂ­ r»ng phÝm ENTER ("↔") l” bŸt buĂ©c khi gĂą lÖnh. L−u Ăœ: Linux (v” UNIX nĂŁi chung) ¼−üc x©y dĂčng trÂȘn ng«n ngĂ· lËp tr×nh C, v× vËy khi gĂą lÖnh ph¶i ph©n biÖt chĂ· th−ĂȘng vĂ­i chĂ· hoa. NgoÂči trĂ” mĂ©t sĂš ngoÂči lÖ, trong Linux chĂłng ta thÊy phĂŠ biÕn l”: Cžc tÂȘn lÖnh l” chĂ· th−ĂȘng, MĂ©t sĂš tham sĂš cĂŁ thÓ l” chĂ· th−ĂȘng hoÆc chĂ· hoa (vÝ dĂŽ, trong lÖnh date vÒ thĂȘi gian hÖ thĂšng th× hai tham sĂš -r v” -R cĂŁ Ăœ nghÜa ho”n to”n khžc nhau). TÂȘn cžc biÕn m«i tr−ĂȘng cĂČng th−ĂȘng dĂŻng chĂ· hoa. Trong cuĂšn sžch n”y, tÂči nhĂ·ng dßng všn b¶n diÔn gi¶i, chĂłng t«i viÕt tÂȘn lÖnh, cžc tham sĂš khĂŁa b»ng kiÓu chĂ· kh«ng ch©n, ¼Ëm nh− date, -R, -r ... Linux ph©n biÖt siÂȘu ng−ĂȘi dĂŻng (tiÕng Anh l” superuser hoÆc root, cßn ¼−üc gĂ€i l” ng−ĂȘi qu¶n trÞ hay ng−ĂȘi dĂŻng tĂši cao hoÆc ng−ĂȘi dĂŻng cao cÊp) vĂ­i ng−ĂȘi dĂŻng th«ng th−ĂȘng. Trong tËp hĂźp lÖnh cña Linux, cĂŁ mĂ©t sĂš lÖnh m” chØ siÂȘu ng−ĂȘi dĂŻng mĂ­i ¼−üc phÐp sö dĂŽng cßn ng−ĂȘi dĂŻng th«ng th−ĂȘng th× kh«ng ¼−üc phÐp (vÝ dĂŽ nh− lÖnh adduser thĂčc hiÖn viÖc bĂŠ sung thÂȘm ng−ĂȘi dĂŻng). MÆt khžc trong mĂ©t sĂš lÖnh, vĂ­i mĂ©t sĂš tham sĂš khĂŁa th× chØ siÂȘu ng−ĂȘi dĂŻng ¼−üc phÐp dĂŻng, cßn vĂ­i mĂ©t sĂš tham sĂš khžc th× mĂ€i ng−ĂȘi dĂŻng ¼Òu ¼−üc phÐp (vÝ dĂŽ nh− lÖnh passwd thay ŸÊi mËt khÈu ng−ĂȘi dĂŻng). MĂ©t dßng lÖnh cĂŁ thÓ cĂŁ nhiÒu hÂŹn mĂ©t lÖnh, trong Ÿã lÖnh sau ¼−üc ngšn cžch bĂ«i vĂ­i lÖnh Âźi ngay tr−íc b»ng dÊu ";" hoÆc dÊu "|". VÝ dĂŽ vÒ mĂ©t sĂš dßng lÖnh dÂčng n”y: # ls -l; date # head Filetext | sort >temp Ch−¬ng vÒ lËp tr×nh shell sÏ giĂ­i thiÖu chi tiÕt hÂŹn vÒ cžc cžch thĂžc nĂŁi trÂȘn. Sau khi ng−ĂȘi dĂŻng gĂą xong dßng lÖnh, shell tiÕp nhËn dßng lÖnh n”y v” ph©n tÝch nĂ©i dung všn b¶n cña lÖnh. NÕu lÖnh ¼−üc gĂą Ÿóng th× lÖnh ¼−üc thĂčc hiÖn; ng−üc lÂči, trong tr−ĂȘng hĂźp cĂŁ sai sĂŁt khi gĂą lÖnh th× shell sÏ th«ng bžo vÒ sai sĂŁt v” dÊu nhŸc shell lÂči hiÖn ra ¼Ó chĂȘ lÖnh tiÕp theo cña ng−ĂȘi dĂŻng. VÒ phĂŠ biÕn, nÕu nh− sau khi ng−ĂȘi dĂŻng gĂą lÖnh, kh«ng thÊy th«ng bžo sai sĂŁt hiÖn ra th× cĂŁ nghÜa lÖnh Ÿ· ¼−üc thĂčc hiÖn mĂ©t cžch b×nh th−ĂȘng.
  • 18. 18 Tr−íc khi Âźi v”o nĂ©i dung chi tiÕt cžc lÖnh th«ng dĂŽng, chĂłng ta xem xÐt vÒ mĂ©t sĂš quy ¼Þnh dĂŻng trong m« t¶ lÖnh ¼−üc tr×nh b”y trong cuĂšn sžch n”y. 1.3.1. Cžc quy −íc khi viÕt lÖnh Trong cuĂšn sžch n”y, cžc lÖnh ¼−üc tr×nh b”y theo mĂ©t bĂ© quy tŸc cĂł phžp nhÊt qužn. BĂ© quy tŸc n”y cho phÐp ph©n biÖt trong mçi lÖnh cžc th”nh phÇn n”o l” bŸt buĂ©c ph¶i cĂŁ, cžc th”nh phÇn n”o cĂŁ thÓ cĂŁ hoÆc kh«ng ... D−íi Ÿ©y l” nĂ©i dung cña cžc quy tŸc trong bĂ© quy tŸc Ÿã. TÂȘn lÖnh l” bŸt buĂ©c, ph¶i l” tĂ” ¼Çu tiÂȘn trong bÊt kĂș lÖnh n”o, ph¶i ¼−üc gĂą Ÿóng nh− khi m« t¶ lÖnh. TÂȘn khži niÖm ¼−üc n»m trong cÆp dÊu ngoÆc quan hÖ (< v” >) biÓu thÞ cho mĂ©t lĂ­p ŸÚi t−üng v” l” tham sĂš bŸt buĂ©c ph¶i cĂŁ. Khi gĂą lÖnh th× tÂȘn khži niÖm (cĂŁ thÓ ¼−üc coi l” "tham sĂš h×nh thĂžc") ph¶i ¼−üc thay thÕ b»ng mĂ©t tĂ” (th−ĂȘng l” tÂȘn tËp tin, tÂȘn th− mĂŽc ... v” cĂŁ thÓ ¼−üc coi l” "tham sĂš thĂčc sĂč") ¼Ó chØ ŸÚi t−üng liÂȘn quan ¼Õn thao tžc cña lÖnh. VÝ dĂŽ, m« t¶ cĂł phžp cña lÖnh more xem nĂ©i dung tËp tin l” # more <tËp-tin> Th× tĂ” more l” tÂȘn lÖnh, cßn <tËp-tin> l” tham sĂš trong Ÿã tËp-tin l” tÂȘn khži niÖm v” l” tham sĂš bŸt buĂ©c ph¶i cĂŁ. LÖnh n”y cĂŁ tžc Ÿéng l” hiÖn lÂȘn m”n h×nh theo cžch thĂžc cuĂ©n nĂ©i dung cña tËp tin vĂ­i tÂȘn Ÿ· chØ trong lÖnh. §Ó xem nĂ©i dung tËp tin cĂŁ tÂȘn l” temp, ng−ĂȘi dĂŻng gĂą lÖnh: # more temp Nh− vËy, tÂȘn lÖnh more ¼−üc gĂą Ÿóng nh− m« t¶ cĂł phžp (c¶ nĂ©i dung v” vÞ trÝ) cßn "tËp-tin" Ÿ· ¼−üc thay thÕ b»ng tĂ” "temp" l” tÂȘn tËp tin m” ng−ĂȘi dĂŻng muĂšn xem nĂ©i dung. Cžc bĂ© phËn n»m giĂ·a cÆp dÊu ngoÆc vu«ng [ v” ] l” cĂŁ thÓ gĂą hoÆc kh«ng gĂą cĂČng ¼−üc. VÝ dĂŽ, m« t¶ cĂł phžp cña lÖnh halt l” # halt [tĂŻy-chĂ€n] VĂ­i cžc tĂŻy chĂ€n l” -w, -n, -d, -f, -i m· mçi tĂŻy chĂ€n cho mĂ©t cžch thĂžc hoÂčt Ÿéng khžc nhau cña lÖnh halt. LÖnh halt cĂŁ tžc Ÿéng chÝnh l” l”m ngĂ”ng hoÂčt Ÿéng cña hÖ ÂźiÒu h”nh, tuy nhiÂȘn khi ng−ĂȘi dĂŻng muĂšn cĂŁ mĂ©t cžch hoÂčt Ÿéng n”o Ÿã cña lÖnh n”y th× sÏ chĂ€n mĂ©t (hoÆc mĂ©t sĂš) tuĂș chĂ€n lÖnh t−¬ng Ăžng. MĂ©t sĂš cžch gĂą lÖnh halt cña ng−ĂȘi dĂŻng nh− sau Ÿ©y l” Ÿóng cĂł phžp: # halt # halt -w # halt -n # halt -f Cžc giž trÞ cĂŁ trong cÆp { v” } trong Ÿã cžc bĂ© phËn cžch nhau b»ng dÊu sĂŠ ŸÞng "|" cho biÕt cÇn chĂ€n mĂ©t v” chØ mĂ©t trong cžc giž trÞ n»m giĂ·a hai dÊu ngoÆc Ÿã.
  • 19. 19 VÝ dĂŽ, khi giĂ­i thiÖu vÒ tĂŻy chĂ€n lÖnh cña lÖnh tail xem phÇn cuĂši nĂ©i dung cña tËp tin, chĂłng ta thÊy: -f, --follow[={tÂȘn | ¼Æc t¶}] Nh− vËy, sau tham sĂš khĂŁa --follow, nÕu xuÊt hiÖn thÂȘm dÊu b»ng "=" th× ph¶i cĂŁ hoÆc tÂȘn hoÆc ¼Æc t¶. §©y l” tr−ĂȘng hĂźp cžc chĂ€n lĂča "loÂči trĂ” nhau". DÊu ba chÊm ... thÓ hiÖn viÖc lÆp lÂči th”nh phÇn cĂł phžp Âźi ngay tr−íc dÊu n”y, viÖc lÆp lÂči Ÿã cĂŁ thÓ tĂ” kh«ng ¼Õn nhiÒu lÇn (kh«ng kÓ chÝnh th”nh phÇn cĂł phžp Ÿã). Cžch thĂžc n”y th−ĂȘng ¼−üc dĂŻng vĂ­i cžc tham sĂš nh− tÂȘn tËp tin. VÝ dĂŽ, m« t¶ lÖnh chown nh− sau: chown [tĂŻy-chĂ€n]... <chñ>[,[nhĂŁm]]<tËp-tin>... Nh− vËy trong lÖnh chown cĂŁ thÓ kh«ng cĂŁ hoÆc cĂŁ mĂ©t sĂš tĂŻy chĂ€n lÖnh v” cĂŁ tĂ” mĂ©t ¼Õn nhiÒu tÂȘn tËp tin. Cžc bĂ© phËn trong m« t¶ lÖnh, nÕu kh«ng n»m trong cžc cÆp dÊu [ ], <>, {} th× khi gĂą lÖnh thĂčc sĂč ph¶i gĂą y Ÿóng nh− khi m« t¶ (chĂł Ăœ, quy tŸc viÕt tÂȘn lÖnh l” mĂ©t tr−ĂȘng hĂźp riÂȘng cña quy tŸc n”y). ViÖc kÕt hĂźp cžc dÊu ngoÆc vĂ­i nhau cho phÐp tÂčo ra cžch thĂžc sö dĂŽng quy tŸc tĂŠ hĂźp cžc tham sĂš trong lÖnh. VÝ dĂŽ, lÖnh more b×nh th−ĂȘng cĂŁ cĂł phžp l”: # more <tËp-tin> cĂŁ nghÜa l” thay <tËp-tin> b»ng tÂȘn tËp tin cÇn xem nĂ©i dung, nÕu kÕt hĂźp thÂȘm dÊu ngoÆc vu«ng [ v” ], tĂžc l” cĂŁ dÂčng sau (chÝnh l” dÂčng tĂŠng qužt cña lÖnh more): # more [<tËp-tin>] th× <tËp-tin> nĂŁi chung ph¶i cĂŁ trong lÖnh more, tuy nhiÂȘn trong mĂ©t sĂš tr−ĂȘng hĂźp cĂŁ thÓ bĂĄ qua tham sĂš tËp-tin. L−u Ăœ: §Úi vĂ­i nhiÒu lÖnh, cho phÐp ng−ĂȘi dĂŻng gĂą tham sĂš khĂŁa kÕt hĂźp t−¬ng Ăžng vĂ­i tĂŻy-chĂ€n trong m« t¶ lÖnh. Tham sĂš khĂŁa kÕt hĂźp ¼−üc viÕt theo cžch -<x©u-kÝ-tĂč>, trong Ÿã x©u-kÝ-tĂč gĂ„m cžc chĂ· cži trong tham sĂš khĂŁa. VÝ dĂŽ, trong m« t¶ lÖnh in lÞch cal: cal [tĂŻy-chĂ€n] [thžng [nšm] ] cĂŁ ba tham sĂš khĂŁa l” -m, -j, -y. Khi gĂą lÖnh cĂŁ thÓ gĂą mĂ©t tĂŠ hĂźp n”o Ÿã tĂ” ba tham sĂš khĂŁa n”y ¼Ó ¼−üc t×nh huĂšng sö dĂŽng lÖnh theo Ăœ muĂšn. ChÂŒng hÂčn, nÕu gĂą lÖnh cal -mj 3 th× lÖnh cal thĂčc hiÖn theo ÂźiÒu khiÓn cña hai tham sĂš khĂŁa -m (chĂ€n ThĂž Hai l” ng”y ¼Çu tuÇn, thay v× cho ngÇm ¼Þnh l” Chñ NhËt) v” -j (hiÓn thÞ ng”y trong thžng d−íi dÂčng sĂš ng”y trong nšm kÓ tĂ” ¼Çu nšm). Trong mĂ©t sĂš lÖnh, cĂŁ hai tham sĂš khĂŁa cĂŻng t−¬ng Ăžng vĂ­i mĂ©t t×nh huĂšng thĂčc hiÖn lÖnh, trong Ÿã mĂ©t tham sĂš gĂ„m mĂ©t kÝ tĂč cßn tham sĂš kia lÂči l” mĂ©t tĂ”. Tham sĂš d”i mĂ©t tĂ” l” tham sĂš chuÈn cña lÖnh, cßn tham sĂš mĂ©t kÝ tĂč l” cžch viÕt ngŸn gĂ€n. Tham sĂš chuÈn dĂŻng ¼−üc trong mĂ€i Linux v” khi gĂą ph¶i cĂŁ Ÿñ kÝ tĂč trong tĂ”.
  • 20. 20 VÝ dĂŽ, khi m« t¶ lÖnh date cĂŁ tĂŻy chĂ€n: -d, --date=STRING nh− vËy hai tham sĂš -d v” --date=STRING cĂŁ cĂŻng Ăœ nghÜa. Ngo”i nhĂ·ng quy −íc trÂȘn Ÿ©y, ng−ĂȘi dĂŻng ŸÔng quÂȘn mĂ©t quy ¼Þnh cÂŹ b¶n l” cÇn ph©n biÖt chĂ· hoa vĂ­i chĂ· th−ĂȘng khi gĂą lÖnh. L”m Ÿn gi¶n thao tžc gĂą lÖnh: ViÖc sö dĂŽng b”n phÝm ¼Ó nhËp lÖnh tuy kh«ng ph¶i l” mĂ©t c«ng viÖc nÆng nÒ, song Linux cßn cho phÐp ng−ĂȘi dĂŻng sö dĂŽng mĂ©t sĂš cžch thĂžc ¼Ó thuËn tiÖn hÂŹn khi gĂą lÖnh. MĂ©t sĂš trong nhĂ·ng cžch thĂžc Ÿã l”: Sö dĂŽng viÖc kh«i phĂŽc dßng lÖnh, Sö dĂŽng cžc phÝm ¼Æc biÖt, Sö dĂŽng cžc kÝ hiÖu thay thÕ v” phÝm <Tab>, Sö dĂŽng thay thÕ alias, Sö dĂŽng ch−¬ng tr×nh lÖnh. Cžch thĂžc sö dĂŽng thay thÕ alias v” ch−¬ng tr×nh lÖnh (shell script) sÏ ¼−üc giĂ­i thiÖu chi tiÕt trong cžc ch−¬ng liÂȘn quan. D−íi Ÿ©y, chĂłng ta xem xÐt cžch thĂžc sö dĂŽng viÖc kh«i phĂŽc dßng lÖnh, phÝm ¼Æc biÖt v” kÝ hiÖu thay thÕ. ViÖc kh«i phĂŽc dßng lÖnh: Linux cung cÊp mĂ©t cžch thĂžc ¼Æc biÖt l” kh¶ nšng kh«i phĂŽc lÖnh. TÂči dÊu nhŸc shell: Ng−ĂȘi dĂŻng sö dĂŽng cžc phÝm mĂČi tÂȘn lÂȘn/xuĂšng (↑/↓) trÂȘn b”n phÝm ¼Ó nhËn lÂči cžc dßng lÖnh Ÿ· ¼−üc ¼−a v”o tr−íc Ÿ©y tÂči dÊu nhŸc shell, chĂ€n mĂ©t trong cžc dßng lÖnh Ÿã v” biÂȘn tËp lÂči nĂ©i dung dßng lÖnh theo Ÿóng yÂȘu cÇu mĂ­i cña m×nh. VÝ dĂŽ, ng−ĂȘi dĂŻng vĂ”a gĂą xong dßng lÖnh: # ls -l tenfile* sau Ÿã muĂšn gĂą lÖnh ls -l tentaptin th× tÂči dÊu nhŸc cña shell, ng−ĂȘi dĂŻng sö dĂŽng cžc phÝm di chuyÓn lÂȘn (↑) hoÆc xuĂšng (↓) ¼Ó nhËn ¼−üc: # ls -l tenfile* dĂŻng cžc phÝm tŸt ¼Ó di chuyÓn, xož kÝ tĂč (xem phÇn sau) ¼Ó cĂŁ ¼−üc: # ls -l ten v” gĂą tiÕp cžc kÝ tĂč "taptin" ¼Ó nhËn ¼−üc: # ls -l tentaptin chÝnh l” kÕt qu¶ mong muĂšn. Trong tr−ĂȘng hĂźp sĂš l−üng kÝ tĂč thay thÕ l” rÊt Ýt so vĂ­i sĂš l−üng kÝ tĂč cña to”n dßng lÖnh th× hiÖu qu¶ cña cžch thĂžc n”y rÊt cao. L−u Ăœ: ViÖc nhÊn liÂȘn tiÕp cžc phÝm di chuyÓn lÂȘn (↑) hoÆc xuĂšng (↓) cho phÐp ng−ĂȘi dĂŻng nhËn ¼−üc cžc dßng lÖnh Ÿ· gĂą tĂ” tr−íc m” kh«ng chØ dßng lÖnh mĂ­i ¼−üc gĂą. Cžch thĂžc n”y t−¬ng tĂč vĂ­i cžch thĂžc sö dĂŽng tiÖn Ých DOSKEY trong hÖ ÂźiÒu h”nh MS-DOS.
  • 21. 21 MĂ©t sĂš phÝm ¼Æc biÖt khi gĂą lÖnh: Khi ng−ĂȘi dĂŻng gĂą lÖnh cĂŁ thÓ xÈy ra mĂ©t sĂš t×nh huĂšng nh− sau: Dßng lÖnh Âźang gĂą cĂŁ chç sai sĂŁt, kh«ng Ÿóng theo yÂȘu cÇu cña ng−ĂȘi dĂŻng v× vËy cÇn ph¶i söa lÂči Ÿ«i chĂłt nĂ©i dung trÂȘn dßng lÖnh Ÿã. Trong tr−ĂȘng hĂźp Ÿã cÇn sö dĂŽng cžc phÝm ¼Æc biÖt (cßn gĂ€i l” phÝm viÕt tŸt hay phÝm tŸt) ¼Ó di chuyÓn, xož bĂĄ, bĂŠ sung v”o nĂ©i dung dßng lÖnh. Sau khi sö dĂŽng cžch thĂžc kh«i phĂŽc dßng lÖnh, chĂłng ta nhËn ¼−üc dßng lÖnh t−¬ng tĂč vĂ­i lÖnh cÇn gĂą v” sau Ÿã sö dĂŽng cžc phÝm tŸt ¼Ó ho”n thiÖn lÖnh. D−íi Ÿ©y giĂ­i thiÖu cžc phÝm tŸt v” Ăœ nghÜa cña viÖc sö dĂŽng chĂłng: ‱ NhÊn phÝm → ¼Ó di chuyÓn con trĂĄ sang bÂȘn ph¶i mĂ©t vÞ trÝ ‱ NhÊn phÝm ← ¼Ó di chuyÓn con trĂĄ sang bÂȘn trži mĂ©t vÞ trÝ ‱ NhÊn phÝm <ESC-BACKSPACE> ¼Ó xož mĂ©t tĂ” bÂȘn trži con trĂĄ ‱ NhÊn phÝm <ESC-D> ¼Ó xož mĂ©t tĂ” bÂȘn ph¶i con trĂĄ ‱ NhÊn phÝm <ESC-F> ¼Ó di chuyÓn con trĂĄ sang bÂȘn ph¶i mĂ©t tĂ” ‱ NhÊn phÝm <ESC-B> ¼Ó di chuyÓn con trĂĄ sang bÂȘn trži mĂ©t tĂ” ‱ NhÊn phÝm <CTRL-A> ¼Ó di chuyÓn con trĂĄ vÒ ¼Çu dßng lÖnh ‱ NhÊn phÝm <CTRL-E> ¼Ó di chuyÓn con trĂĄ vÒ cuĂši dßng ‱ NhÊn phÝm <CTRL-U> ¼Ó xĂŁa dßng lÖnh CĂŁ thÓ dĂŻng phÝm <ALT> thay cho phÝm <ESC>. Cžc kÝ hiÖu m« t¶ nhĂŁm tËp tin v” phÝm <Tab>: Khi gĂą lÖnh thĂčc sĂč nhiÒu tr−ĂȘng hĂźp ng−ĂȘi dĂŻng mong muĂšn mĂ©t tham sĂš trong lÖnh kh«ng chØ xžc ¼Þnh mĂ©t tËp tin m” lÂči liÂȘn quan ¼Õn mĂ©t nhĂŁm cžc tËp tin m” tÂȘn gĂ€i cña cžc tËp tin trong nhĂŁm cĂŁ chung mĂ©t tÝnh chÊt n”o Ÿã. Trong nhĂ·ng tr−ĂȘng hĂźp nh− vËy, ng−ĂȘi dĂŻng cÇn sö dĂŽng cžc kÝ hiÖu m« t¶ nhĂŁm tËp tin (wildcards), chĂłng ta gĂ€i l” kÝ hiÖu m« t¶ nhĂŁm (cßn ¼−üc gĂ€i l” kÝ hiÖu thay thÕ). Ng−ĂȘi ta sö dĂŽng cžc kÝ tĂč *, ? v” cÆp hai dÊu [ v” ] ¼Ó m« t¶ nhĂŁm tËp tin. Cžc kÝ tĂč n”y mang Ăœ nghÜa nh− sau khi viÕt v”o tham sĂš tÂȘn tËp tin thĂčc sĂč: ‱ "*" : l” kĂœ tĂč m« t¶ nhĂŁm gĂ„m mĂ€i x©u kÝ tĂč (thay thÕ mĂ€i x©u). M« t¶ n”y cho mĂ©t nhĂŁm lĂ­n nhÊt trong ba m« t¶. ‱ "?" : m« t¶ nhĂŁm gĂ„m mĂ€i x©u vĂ­i Ÿé d”i kh«ng quž 1 (thay thÕ mĂ©t kÝ tĂč). NhĂŁm n”y l” tËp con cña nhĂŁm ¼Çu tiÂȘn (theo kÝ tĂč "*"). ‱ [x©u-kÝ-tĂč] : m« t¶ nhĂŁm gĂ„m mĂ€i x©u cĂŁ Ÿé d”i 1 l” mçi kÝ tĂč thuĂ©c x©u nĂŁi trÂȘn. M« t¶ n”y cho mĂ©t nhĂŁm cĂŁ lĂčc l−üng bÐ nhÊt trong ba m« t¶. NhĂŁm n”y l” tËp con cña nhĂŁm thĂž hai (theo kÝ tĂč "?"). Khi gĂą lÖnh ph¶i gĂą c¶ hai dÊu [ v” ]. MĂ©t dÂčng khžc cña m« t¶ nhĂŁm n”y l” [<kÝ_tĂč_1>-<kÝ_tĂč_2>] nghÜa l” giĂ·a cÆp dÊu ngoÆc cĂŁ ba kÝ tĂč trong Ÿã kÝ tĂč Ă« giĂ·a l” dÊu nĂši (dÊu -) th× cžch viÕt n”y t−¬ng ¼−¬ng vĂ­i viÖc liÖt kÂȘ mĂ€i kÝ tĂč tĂ” <kÝ_tĂč_1> ¼Õn <kÝ _tĂč_2>. ChÂŒng hÂčn, cžch viÕt [a-d] t−¬ng ¼−¬ng vĂ­i cžch viÕt [abcd].
  • 22. 22 VÝ dĂŽ, gi¶ sö khi muĂšn l”m viÖc vĂ­i tÊt c¶ cžc tËp tin trong mĂ©t th− mĂŽc n”o Ÿã, ng−ĂȘi dĂŻng gĂą * thay thÕ tham sĂš tËp-tin th× xžc ¼Þnh ¼−üc cžc tÂȘn tËp tin sau (chĂłng ta viÕt bĂšn tÂȘn tËp tin trÂȘn mĂ©t dßng): info-dir initlog.conf inittab lynx.cfg mail.rc mailcap minicom.users motd mtab mtools.conf services shadow shadow- shells smb.conf sysctl.conf syslog.conf temp termcap up2date.conf temp termcap NÕu ng−ĂȘi dĂŻng gĂą s* (¼Ó chØ cžc tÂȘn cĂŁ chĂ· cži ¼Çu l” s) thay thÕ tham sĂš tËp-tin th× xžc ¼Þnh ¼−üc cžc tÂȘn tËp tin sau: shadow shadow- shells sysctl.conf syslog.conf NÕu ng−ĂȘi dĂŻng gĂą [si]* (¼Ó chØ cžc tÂȘn cĂŁ chĂ· cži ¼Çu l” s hoÆc i, chĂł Ăœ dĂŻng c¶ hai kÝ tĂč [ v” ]) thay thÕ tham sĂš tËp-tin th× xžc ¼Þnh cžc tÂȘn tËp tin sau: info-dir initlog.conf inittab services shadow shadow- shells smb.conf sysctl.conf syslog.conf L−u Ăœ: Nh− vËy, Linux (v” UNIX nĂŁi chung) kh«ng chØ sö dĂŽng hai kÝ tĂč m« t¶ nhĂŁm * v” ? m” cßn cĂŁ cžch thĂžc sö dĂŽng cÆp kÝ tĂč [ v” ]. CÇn ph©n biÖt cÆp dÊu [ v” ] ¼−üc sö dĂŽng khi ng−ĂȘi dĂŻng gĂą lÖnh cĂŁ Ăœ nghÜa ho”n to”n khžc vĂ­i Ăœ nghÜa cña chĂłng khi ¼−üc sö dĂŽng trong m« t¶ lÖnh. HÂŹn thÕ nĂ·a, Linux cßn cung cÊp cho ng−ĂȘi dĂŻng cžch thĂžc sö dĂŽng phÝm <TAB> ¼Ó ho”n th”nh nĂšt tÂȘn tËp tin (tÂȘn th− mĂŽc) trong lÖnh. VÝ dĂŽ, khi chĂłng ta gĂą dßng lÖnh # ls /u<TAB>local<TAB>b<TAB> th× nĂŁ cĂČng t−¬ng ¼−¬ng nh− gĂą dßng lÖnh (v” Ÿ©y chÝnh l” nĂ©i dung xuÊt hiÖn tÂči dÊu nhŸc shell): # ls /usr/local/bin vĂ­i ÂźiÒu kiÖn trong th− mĂŽc /usr chØ cĂŁ th− mĂŽc local ¼−üc bŸt ¼Çu bĂ«i chĂ· "l" v” trong th− mĂŽc local cĂČng chØ cĂŁ th− mĂŽc bin ¼−üc bŸt ¼Çu bĂ«i chĂ· "b". Trong tr−ĂȘng hĂźp nÕu nh− mĂ©t kÝ tĂč ch−a Ÿñ xžc ¼Þnh, ng−ĂȘi dĂŻng cÇn gĂą thÂȘm kÝ tĂč tiÕp theo trong tÂȘn tËp tin (tÂȘn th− mĂŽc) v” nhÊn phÝm <TAB> ¼Ó ho”n th”nh dßng lÖnh. 1.3.2. TiÕp nĂši dßng lÖnh Nh− Ÿ· l−u Ăœ trÂȘn Ÿ©y, mĂ©t dßng lÖnh cĂŁ thÓ gĂ„m mĂ©t hoÆc mĂ©t sĂš lÖnh, mÆt khžc tham sĂš cña lÖnh cĂŁ thÓ l” rÊt d”i kh«ng thÓ trong khu«n khĂŠ cña mĂ©t dßng všn b¶n ¼−üc. Khi gĂą lÖnh, nÕu dßng lÖnh quž d”i, Linux cho phÐp ngŸt dßng lÖnh xuĂšng dßng d−íi b»ng cžch thÂȘm kÝ tĂč bžo hiÖu chuyÓn dßng " " tÂči cuĂši dßng; trong tr−ĂȘng hĂźp Ÿã, kÝ tĂč " " ph¶i l” kĂœ tĂč cuĂši cĂŻng thuĂ©c dßng lÖnh tr−íc.
  • 23. 23 VÝ dĂŽ, # cd vsd thumuc th× dßng thĂž hai l” phÇn tiÕp theo cña dßng thĂž nhÊt v” kÕt hĂźp c¶ hai dßng n”y thĂčc chÊt l” mĂ©t dßng lÖnh Linux. 1.4. Trang Man (Man Page) ChĂłng ta cĂŁ thÓ nĂŁi r»ng Linux l” mĂ©t hÖ ÂźiÒu h”nh rÊt phĂžc tÂčp vĂ­i h”ng ngh×n lÖnh v” mçi lÖnh lÂči cĂŁ thÓ cĂŁ tĂ­i v”i hoÆc v”i chĂŽc t×nh huĂšng sö dĂŽng do chĂłng cho phÐp cĂŁ nhiÒu tĂŻy chĂ€n lÖnh. §Ó thuĂ©c hÕt ¼−üc nĂ©i dung tÊt c¶ cžc lÖnh cña Linux l” mĂ©t ÂźiÒu hÕt sĂžc khĂŁ khšn, cĂŁ thÓ nĂŁi l” kh«ng thÓ. Linux cho phÐp ng−ĂȘi dĂŻng sö dĂŽng cžch thĂžc gĂ€i cžc trang Man ¼Ó cĂŁ ¼−üc cžc th«ng tin ¼Çy Ÿñ giĂ­i thiÖu nĂ©i dung cžc lÖnh. D−íi Ÿ©y l” mĂ©t sĂš nĂ©i dung vÒ cžch thĂžc sö dĂŽng trang Man. "Man" trong "trang Man" l” tĂ” viÕt tŸt cña "manual", ¼−üc coi l” t”i liÖu trĂčc tuyÕn trong Linux Ÿ· l−u trĂ· to”n bĂ© cžc lÖnh cĂŁ sÂœn vĂ­i cžc th«ng tin tham kh¶o khž ¼Çy Ÿñ cho phÐp ng−ĂȘi dĂŻng cĂŁ thÓ mĂ« ra ¼Ó nhËn ¼−üc trĂź giĂłp. §Ó mĂ« trang Man cña mĂ©t lÖnh, chĂłng ta sö dĂŽng lÖnh man cña Linux v” gĂą: # man <tÂȘn-lÖnh> NĂ©i dung cña trang Man nĂŁi chung l” kh«ng quž khĂŁ hiÓu, song ¼Ó hiÓu hÕt ¼−üc nĂŁ cĂČng ¼ßi hĂĄi kh«ng Ýt thĂȘi gian. Tuy nhiÂȘn, khi quÂȘn nĂ©i dung mĂ©t lÖnh n”o Ÿã th× cžch tĂšt nhÊt l” h·y sö dĂŽng trang Man. CÊu trĂłc chung cña mĂ©t trang Man nh− sau: COMMAND(1) Linux Programmer's Manual COMMAND(1) NAME tÂȘn lÖnh - khži qužt tžc dĂŽng cña lÖnh SYNOPSIS cĂł phžp cña lÖnh DESCRIPTION m« t¶ cĂŽ thÓ hÂŹn vÒ tžc dĂŽng cña lÖnh OPTIONS liÖt kÂȘ cžc tĂŻy chĂ€n lÖnh v” tžc dĂŽng cña chĂłng FILES liÖt kÂȘ cžc tËp tin m” lÖnh sö dĂŽng hoÆc tham chiÕu ¼Õn SEE ALSO liÖt kÂȘ cžc lÖnh, cžc t”i liÖu, ..., cĂŁ liÂȘn quan ¼Õn lÖnh REPORTING BUGS ¼Þa chØ liÂȘn hÖ nÕu gÆp lçi khi sö dĂŽng lÖnh AUTHOR tÂȘn tžc gi¶ cña lÖnh
  • 24. 24 Ng−ĂȘi dĂŻng thËm chÝ kh«ng nhĂ­ chÝnh xžc tÂȘn lÖnh. Linux cßn cĂŁ mĂ©t cžch thĂžc hç trĂź ng−ĂȘi dĂŻng cĂŁ thÓ nhanh chĂŁng t×m ¼−üc lÖnh cÇn sö dĂŽng trong tr−ĂȘng hĂźp chØ nhĂ­ nhĂ·ng chĂ· cži ¼Çu cña tÂȘn lÖnh, Ÿã l” cžch thĂžc sö dĂŽng phÝm TAB. Trong cžch thĂžc n”y, ng−ĂȘi dĂŻng cÇn nhĂ­ mĂ©t sĂš chĂ· cži ¼Çu tiÂȘn cña tÂȘn lÖnh. CĂŁ thÓ tr×nh b”y cžch thĂžc Ÿã theo cĂł phžp sau Ÿ©y: # <d∙y-chĂ·-cži><TAB><TAB> Trong Ÿã d·y-chĂ·-cži cĂŁ tĂ” mĂ©t ¼Õn mĂ©t v”i chĂ· cži thuĂ©c phÇn ¼Çu cña tÂȘn lÖnh. ChĂł Ăœ r»ng, cžc chĂ· cži v” hai phÝm <TAB> ph¶i ¼−üc gĂą liÂȘn tiÕp nhau. KÕt hĂźp cžch thĂžc n”y vĂ­i cžch thĂžc sö dĂŽng lÖnh man (vĂ­i sĂč phong phĂł vÒ tĂŻy chĂ€n cña lÖnh man) nhËn ¼−üc mĂ©t cžch thĂžc khž tuyÖt vĂȘi trĂź giĂłp ng−ĂȘi dĂŻng. VÝ dĂŽ, muĂšn sö dĂŽng lÖnh history nh−ng lÂči kh«ng nhĂ­ chÝnh xžc tÂȘn lÖnh ¼−üc viÕt ra nh− thÕ n”o m” chØ nhĂ­ nĂŁ ¼−üc bŸt ¼Çu bĂ«i chĂ· h, h·y gĂą chĂ· h Ÿã tÂči dÊu nhŸc shell v” nhÊn phÝm TAB hai lÇn, sÏ thÊy mĂ©t danh sžch cžc lÖnh cĂŁ chĂ· cži ¼Çu tiÂȘn l” h ¼−üc hiÖn ra trÂȘn m”n h×nh: # h<TAB><TAB> h2ph hboot help hexdump history hostname htdigest h2xs hcc helpme hf77 hltest hoststat htpasswd halt hcp helptool hinotes host hpcdtoppm hash head hexbin hipstopgm hostid hpftodit Nh− vËy, tÊt c¶ cžc lÖnh cĂŁ tÂȘn bŸt ¼Çu vĂ­i chĂ· h ¼−üc hiÓn thÞ trÂȘn m”n h×nh v” cho phÐp ng−ĂȘi dĂŻng cĂŁ thÓ xžc ¼Þnh ¼−üc lÖnh cÇn quan t©m. Tr−ĂȘng hĂźp tĂ„n tÂči mĂ©t sĂš l−üng lĂ­n cžc lÖnh cĂŁ cĂŻng chĂ· cži ¼Çu tiÂȘn m” ng−ĂȘi dĂŻng Ÿ· gĂą, thay v× hiÖn hÕt mĂ€i tÂȘn lÖnh, hÖ ÂźiÒu h”nh cho ra mĂ©t th«ng bžo hĂĄi ng−ĂȘi dĂŻng cĂŁ muĂšn xem to”n bĂ© cžc lÖnh Ÿã hay kh«ng. Ng−ĂȘi dĂŻng Ÿžp Ăžng th«ng bžo Ÿã tuĂș theo Ăœ muĂšn cña m×nh. VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą nĂ©i dung nh− sau: # p<TAB><TAB> th× hÖ thĂšng Ÿžp lÂči l”: There are 289 possibilities. Do you really wish to see them all? (y or n) Ng−ĂȘi dĂŻng gĂą phÝm "y" nÕu muĂšn xem, hoÆc gĂą "n" nÕu bĂĄ qua. Ng−ĂȘi dĂŻng cĂŁ thÓ gĂą nhiÒu hÂŹn mĂ©t chĂ· cži Ă« ¼Çu tÂȘn lÖnh v” ÂźiÒu Ÿã cho phÐp gi¶m bĂ­t sĂš tÂȘn lÖnh m” hÖ thĂšng t×m ¼−üc v” hiÓn thÞ. ChÂŒng hÂčn, khi biÕt hai chĂ· cži ¼Çu l” "pw" v” ng−ĂȘi dĂŻng gĂą: # pw<TAB><TAB> th× hÖ thĂšng sÏ hiÖn ra danh sžch cžc tÂȘn lÖnh bŸt ¼Çu bĂ«i "pw": pwck pwconv pwd pwdb_ chkpwd pwunconv
  • 25. 25 Trong tr−ĂȘng hĂźp n”y, ng−ĂȘi dĂŻng sÏ nhËn biÕt ¼−üc tÂȘn lÖnh Âźang cÇn t×m thuËn tiÖn hÂŹn.
  • 26. 26 Ch−¬ng 2. lÖnh thao tžc vĂ­i hÖ thĂšng 2.1. Quž tr×nh khĂ«i Ÿéng Linux Quž tr×nh c”i ¼Æt Linux ¼−üc tr×nh b”y trong phĂŽ lĂŽc A cña cuĂšn sžch n”y. Trong phÇn n”y, chĂłng ta xem xÐt sÂŹ bĂ© quž tr×nh khĂ«i Ÿéng hÖ ÂźiÒu h”nh Linux. MĂ©t trong nhĂ·ng cžch thĂžc khĂ«i Ÿéng Linux phĂŠ biÕn nhÊt l” cžch thĂžc do ch−¬ng tr×nh LILO (LInux LOader) thĂčc hiÖn. Ch−¬ng tr×nh LILO ¼−üc nÂčp lÂȘn ¼Üa cña mžy tÝnh khi c”i ¼Æt hÖ ÂźiÒu h”nh Linux. LILO ¼−üc nÂčp v”o Master Boot Record cña ¼Üa cĂžng hoÆc v”o Boot Sector tÂči ph©n vĂŻng khĂ«i Ÿéng (trÂȘn ¼Üa cĂžng hoÆc ¼Üa mÒm). Gi¶ sö mžy tÝnh cña chĂłng ta Ÿ· c”i ¼Æt Linux v” sö dĂŽng LILO ¼Ó khĂ«i Ÿéng hÖ ÂźiÒu h”nh. LILO thÝch hĂźp vĂ­i viÖc trÂȘn mžy tÝnh ¼−üc c”i ¼Æt mĂ©t sĂš hÖ ÂźiÒu h”nh khžc nhau v” theo Ÿã, LILO cßn cho phÐp ng−ĂȘi dĂŻng chĂ€n lĂča hÖ ÂźiÒu h”nh ¼Ó khĂ«i Ÿéng. Giai ÂźoÂčn khĂ«i Ÿéng Linux tĂŻy thuĂ©c v”o cÊu h×nh LILO Ÿ· ¼−üc lĂča chĂ€n trong tiÕn tr×nh c”i ¼Æt Linux. Trong t×nh huĂšng Ÿn gi¶n nhÊt, Linux ¼−üc khĂ«i Ÿéng tĂ” ¼Üa cĂžng hay ¼Üa mÒm khĂ«i Ÿéng. Quž tr×nh khĂ«i Ÿéng Linux cĂŁ thÓ ¼−üc m« t¶ theo sÂŹ ŸÄ sau: Theo sÂŹ ŸÄ n”y, LILO ¼−üc t¶i v”o mžy ¼Ó thĂčc hiÖn m” viÖc ¼Çu tiÂȘn l” ¼−a nh©n v”o bĂ© nhĂ­ trong v” sau Ÿã t¶i ch−¬ng tr×nh init ¼Ó thĂčc hiÖn viÖc khĂ«i Ÿéng Linux. NÕu c”i ¼Æt nhiÒu phiÂȘn b¶n Linux hay c”i Linux cĂŻng cžc hÖ ÂźiÒu h”nh khžc (trong cžc tr−ĂȘng hĂźp nh− thÕ, mçi phiÂȘn b¶n Linux hoÆc hÖ ÂźiÒu h”nh khžc ¼−üc gžn nh·n - label ¼Ó ph©n biÖt), th× th«ng bžo sau Ÿ©y ¼−üc LILO ¼−a ra: LILO boot: cho phÐp nhËp x©u l” nh·n cña mĂ©t trong nhĂ·ng hÖ ÂźiÒu h”nh hiÖn cĂŁ trÂȘn mžy ¼Ó khĂ«i Ÿéng nĂŁ. TÂči thĂȘi ÂźiÓm Ÿã, ng−ĂȘi dĂŻng cÇn gĂą nh·n cña hÖ ÂźiÒu h”nh cÇn khĂ«i Ÿéng v”o, vÝ dĂŽ, gĂą LILO boot: linux nÕu chĂ€n khĂ«i Ÿéng ¼Ó l”m viÖc trong Linux, hoÆc gĂą LILO boot: dos nÕu chĂ€n khĂ«i Ÿéng ¼Ó l”m viÖc trong MS-DOS, Windows. L−u Ăœ: NÕu chĂłng ta kh«ng nhĂ­ ¼−üc nh·n cña hÖ ÂźiÒu h”nh cĂŁ trong mžy ¼Ó chĂ€n, h·y gĂą phÝm <TAB> ¼Ó ¼−üc LILO cho biÕt nh·n cña cžc hÖ ÂźiÒu h”nh. LILO boot: <TAB> sÏ hiÖn ra danh sžch cžc nh·n (vÝ dĂŽ nh−): linux dos ... v” hiÖn lÂči th«ng bžo nĂŁi trÂȘn ¼Ó ta gĂą nh·n cña hÖ ÂźiÒu h”nh. LILO cĂČng cho phÐp ¼Æt chÕ Ÿé chĂ€n ngÇm ¼Þnh hÖ ÂźiÒu h”nh ¼Ó khĂ«i Ÿéng m” theo Ÿã nÕu chĂłng ta kh«ng cĂŁ tžc Ÿéng g× sau th«ng bžo chĂ€n hÖ ÂźiÒu h”nh th× LILO sÏ tĂč Ÿéng chĂ€n hÖ ÂźiÒu h”nh ngÇm ¼Þnh ra ¼Ó khĂ«i Ÿéng. NÕu chĂłng ta kh«ng can thiÖp v”o cžc tËp tin t−¬ng Ăžng cña tr×nh LILO th× hÖ ÂźiÒu h”nh Linux l” hÖ ÂźiÒu h”nh ngÇm ¼Þnh. LILO Nh©n init
  • 27. 27 Gi¶ sö Linux Ÿ· ¼−üc chĂ€n ¼Ó khĂ«i Ÿéng. Khi init thĂčc hiÖn, chĂłng ta sÏ thÊy mĂ©t chuçi (kho¶ng v”i chĂŽc) dßng th«ng bžo cho biÕt hÖ thĂšng phÇn cĂžng ¼−üc Linux nhËn diÖn v” thiÕt lËp cÊu h×nh cĂŻng vĂ­i tÊt c¶ tr×nh ÂźiÒu khiÓn phÇn mÒm ¼−üc nÂčp khi khĂ«i Ÿéng. Quž tr×nh init l” quž tr×nh khĂ«i thñy, l” cha cña mĂ€i quž tr×nh. TÂči thĂȘi ÂźiÓm khĂ«i Ÿéng hÖ thĂšng init thĂčc hiÖn vai trß ¼Çu tiÂȘn cña m×nh l” chÂčy ch−¬ng tr×nh shell trong tËp tin /etc/inittab v” cžc dßng th«ng bžo trÂȘn Ÿ©y chÝnh l” kÕt qu¶ cña viÖc chÂčy ch−¬ng tr×nh shell Ÿã. Sau khi ch−¬ng tr×nh shell nĂŁi trÂȘn ¼−üc thĂčc hiÖn xong, quž tr×nh ng−ĂȘi dĂŻng Ÿšng nhËp (login) v”o hÖ thĂšng ¼−üc tiÕn h”nh. 2.2. Thñ tĂŽc Ÿšng nhËp v” cžc lÖnh thožt khĂĄi hÖ thĂšng 2.2.1. §šng nhËp Sau khi hÖ thĂšng Linux (lÊy Red Hat 6.2 l”m vÝ dĂŽ) khĂ«i Ÿéng xong, trÂȘn m”n h×nh xuÊt hiÖn nhĂ·ng dßng sau: Ret Hat Linux release 6.2 (Zoot) Kernel 2.2.14-5.0 on an i686 May1 login: Dßng thĂž nhÊt v” dßng thĂž hai cho biÕt loÂči phiÂȘn b¶n Linux, phiÂȘn b¶n cña nh©n v” kiÕn trĂłc phÇn cĂžng cĂŁ trÂȘn mžy, dßng thĂž ba l” dÊu nhŸc Ÿšng nhËp ¼Ó ng−ĂȘi dĂŻng thĂčc hiÖn viÖc Ÿšng nhËp. ChĂł Ăœ l” cžc dßng trÂȘn Ÿ©y cĂŁ thÓ thay ŸÊi chĂłt Ýt tĂŻy thuĂ©c v”o phiÂȘn b¶n Linux. TÂči dÊu nhŸc Ÿšng nhËp, h·y nhËp tÂȘn ng−ĂȘi dĂŻng (cßn gĂ€i l” tÂȘn Ÿšng nhËp): Ÿ©y l” tÂȘn kÝ hiÖu Ÿ· cung cÊp cho Linux nh»m nhËn diÖn mĂ©t ng−ĂȘi dĂŻng cĂŽ thÓ. TÂȘn ChĂłng ta cĂŁ thÓ thay ŸÊi cžc dßng hiÓn thÞ nh− tr×nh b”y trÂȘn Ÿ©y b»ng cžch söa ŸÊi tËp tin /etc/rc.d/rc.local nh− sau: Thay ÂźoÂčn ch−¬ng tr×nh echo "" > /etc/issue echo "$R" >> /etc/issue echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue cp -f /etc/issue /etc/issue.net echo >> /etc/issue th”nh echo "" > /etc/issue echo "Th«ng bžo muĂšn hiÓn thÞ" >> /etc/issue vÝ dĂŽ söa th”nh: echo "" > /etc/issue echo "This is my computer" >> /etc/issue th× trÂȘn m”n h×nh Ÿšng nhËp sÏ cĂŁ dÂčng sau: This is my computer hostname login:
  • 28. 28 Ÿšng nhËp Ăžng vĂ­i mçi ng−ĂȘi dĂŻng trÂȘn hÖ thĂšng l” duy nhÊt, kÌm theo mĂ©t mËt khÈu Ÿšng nhËp. May1 login: root Password: Khi nhËp xong tÂȘn Ÿšng nhËp, hÖ thĂšng sÏ hiÖn ra th«ng bžo hĂĄi mËt khÈu v” di chuyÓn con trĂĄ xuĂšng dßng tiÕp theo ¼Ó ng−ĂȘi dĂŻng nhËp mËt khÈu. MËt khÈu khi ¼−üc nhËp sÏ kh«ng hiÓn thÞ trÂȘn m”n h×nh v” chÝnh ÂźiÒu Ÿã giĂłp tržnh khĂĄi sĂč "nhßm ngĂŁ" cña ng−ĂȘi khžc. NÕu nhËp sai tÂȘn Ÿšng nhËp hoÆc mËt khÈu, hÖ thĂšng sÏ ¼−a ra mĂ©t th«ng bžo lçi: May1 login: root Password: Login incorrect May1 login: NÕu Ÿšng nhËp th”nh c«ng, ng−ĂȘi dĂŻng sÏ nh×n thÊy mĂ©t sĂš th«ng tin vÒ hÖ thĂšng, mĂ©t v”i tin tĂžc cho ng−ĂȘi dĂŻng... LĂłc Ÿã, dÊu nhŸc shell xuÊt hiÖn ¼Ó ng−ĂȘi dĂŻng bŸt ¼Çu phiÂȘn l”m viÖc cña m×nh. May1 login: root Password: Last login: Fri Oct 27 14:16:09 on tty2 root@may1 /root]# D·y kÝ tĂč trong dßng cuĂši cĂŻng chÝnh l” dÊu nhŸc shell. Trong dÊu nhŸc n”y, root l” tÂȘn ng−ĂȘi dĂŻng Ÿšng nhËp, may1 l” tÂȘn mžy v” /root tÂȘn th− mĂŽc hiÖn thĂȘi (v× Ÿ©y l” ng−ĂȘi dĂŻng root). Khi dÊu nhŸc shell xuÊt hiÖn trÂȘn m”n h×nh th× ÂźiÒu Ÿã cĂŁ nghÜa l” hÖ ÂźiÒu h”nh Ÿ· sÂœn s”ng tiÕp nhËn mĂ©t yÂȘu cÇu mĂ­i cña ng−ĂȘi dĂŻng. DÊu nhŸc shell cĂŁ thÓ khžc vĂ­i tr×nh b”y trÂȘn Ÿ©y (MĂŽc 2.8 sÏ cung cÊp cžch thĂžc thay ŸÊi dÊu nhŸc shell), nh−ng cĂŁ thÓ hiÓu nĂŁ l” chuçi kÝ tĂč bŸt ¼Çu mĂ©t dßng cĂŁ chĂža trĂĄ chuĂ©t v” lu«n xuÊt hiÖn mçi khi hÖ ÂźiÒu h”nh ho”n th”nh mĂ©t c«ng viÖc n”o Ÿã. 2.2.2. Ra khĂĄi hÖ thĂšng §Ó kÕt thĂłc phiÂȘn l”m viÖc ng−ĂȘi dĂŻng cÇn thĂčc hiÖn thñ tĂŽc ra khĂĄi hÖ thĂšng. CĂŁ rÊt nhiÒu cžch cho phÐp thožt khĂĄi hÖ thĂšng, Ă« Ÿ©y chĂłng ta xem xÐt mĂ©t sĂš cžch th«ng dĂŽng nhÊt. Cžch Ÿn gi¶n nhÊt ¼Ó ٦m b¶o thožt khĂĄi hÖ thĂšng Ÿóng ÂźÂŸn l” nhÊn tĂŠ hĂźp phÝm CTRL+ALT+DEL. Khi Ÿã, trÂȘn m”n h×nh sÏ hiÓn thÞ mĂ©t sĂš th«ng bžo cña hÖ thĂšng v” cuĂši cĂŻng l” th«ng bžo thožt tr−íc khi tŸt mžy. CÇn chĂł Ăœ l”: NÕu Âźang l”m viÖc trong m«i tr−ĂȘng X Window System, h·y nhÊn tĂŠ hĂźp phÝm CTRL+ALT+BACKSPACE tr−íc rĂ„i sau Ÿã h·y nhÊn CTRL+ALT+DEL. Cžch thĂž hai l” sö dĂŽng lÖnh shutdown vĂ­i cĂł phžp nh− sau: shutdown [tĂŻy-chĂ€n] <time> [c¶nh-bžo] LÖnh n”y cho phÐp dĂ”ng tÊt c¶ cžc dÞch vĂŽ Âźang chÂčy trÂȘn hÖ thĂšng.
  • 29. 29 Cžc tĂŻy-chĂ€n cña lÖnh n”y nh− sau: -k kh«ng thĂčc sĂč shutdown m” chØ c¶nh bžo. -r khĂ«i Ÿéng lÂči ngay sau khi shutdown. -h tŸt mžy thĂčc sĂč sau khi shutdown. -f khĂ«i Ÿéng lÂči nhanh v” bĂĄ qua viÖc kiÓm tra ¼Üa. -F khĂ«i Ÿéng lÂči v” thĂčc hiÖn viÖc kiÓm tra ¼Üa. -c bĂĄ qua kh«ng chÂčy lÖnh shutdown. Trong tĂŻy chĂ€n n”y kh«ng thÓ ¼−a ra tham sĂš thĂȘi gian nh−ng cĂŁ thÓ ¼−a ra th«ng bžo gi¶i thÝch trÂȘn dßng lÖnh göi cho tÊt c¶ cžc ng−ĂȘi dĂŻng. -t sĂš-gi©y qui ¼Þnh init(8) chĂȘ kho¶ng thĂȘi gian sĂš-gi©y tÂčm dĂ”ng giĂ·a quž tr×nh göi c¶nh bžo v” tÝn hiÖu kill, tr−íc khi chuyÓn sang mĂ©t mĂžc chÂčy khžc. v” hai tham sĂš vÞ trÝ cßn lÂči: time ¼Æt thĂȘi ÂźiÓm shutdown. Tham sĂš time cĂŁ hai dÂčng. DÂčng tuyÖt ŸÚi l” gg:pp (gg: giĂȘ trong ng”y, pp: phĂłt) th× hÖ thĂšng sÏ shutdown khi ŸÄng hĂ„ mžy trĂŻng vĂ­i giž trÞ tham sĂš. DÂčng t−¬ng ŸÚi l” +<sĂš> l” hÑn sau thĂȘi kho¶ng <sĂš> phĂłt sÏ shutdown; coi shutdown lËp tĂžc t−¬ng ¼−¬ng vĂ­i +0. c¶nh-bžo th«ng bžo göi ¼Õn tÊt c¶ ng−ĂȘi dĂŻng trÂȘn hÖ thĂšng. Khi lÖnh thĂčc hiÖn tÊt c¶ cžc mžy ng−ĂȘi dĂŻng ¼Òu nhËn ¼−üc c¶nh bžo. VÝ dĂŽ, khi ng−ĂȘi dĂŻng gĂą lÖnh: shutdown +1 Sau mot phut nua he thong se shutdown! trÂȘn m”n h×nh cña tÊt c¶ ng−ĂȘi dĂŻng xuÊt hiÖn th«ng bžo "Sau mot phut nua he thong se shutdown! " v” sau mĂ©t phĂłt th× hÖ thĂšng shutdown thĂčc sĂč. Cžch thĂž ba l” sö dĂŽng lÖnh halt vĂ­i cĂł phžp nh− sau: halt [tĂŻy-chĂ€n] LÖnh n”y thĂčc hiÖn viÖc tŸt hÂŒn mžy. Cžc tuĂș chĂ€n cña lÖnh halt: -w
  • 30. 30 kh«ng thĂčc sĂč tŸt mžy nh−ng vÉn ghi cžc th«ng tin lÂȘn tËp tin /var/log/wtmp (Ÿ©y l” tËp tin l−u trĂ· danh sžch cžc ng−ĂȘi dĂŻng Ÿšng nhËp th”nh c«ng v”o hÖ thĂšng). -d kh«ng ghi th«ng tin lÂȘn tËp tin /var/log/wtmp. TĂŻy chĂ€n -n cĂŁ Ăœ nghÜa t−¬ng tĂč song kh«ng tiÕn h”nh viÖc ŸÄng bĂ© hĂŁa. -f thĂčc hiÖn tŸt mžy ngay m” kh«ng thĂčc hiÖn lÇn l−üt viÖc dĂ”ng cžc dÞch vĂŽ cĂŁ trÂȘn hÖ thĂšng. -i chØ thĂčc hiÖn dĂ”ng tÊt c¶ cžc dÞch vĂŽ mÂčng tr−íc khi tŸt mžy. ChĂłng ta cÇn nhĂ­ r»ng, nÕu thožt khĂĄi hÖ thĂšng kh«ng Ÿóng cžch th× dÉn ¼Õn hËu qu¶ l” mĂ©t sĂš tËp tin hay to”n bĂ© hÖ thĂšng tËp tin cĂŁ thÓ bÞ h− hĂĄng. L−u Ăœ: CĂŁ thÓ sö dĂŽng lÖnh exit ¼Ó trĂ« vÒ dÊu nhŸc Ÿšng nhËp hoÆc kÕt thĂłc phiÂȘn l”m viÖc b»ng lÖnh logout. 2.2.3. KhĂ«i Ÿéng lÂči hÖ thĂšng Ngo”i viÖc thožt khĂĄi hÖ thĂšng nhĂȘ cžc cžch thĂžc trÂȘn Ÿ©y (Ên tĂŠ hĂźp ba phÝm Ctrl+Alt+Del, dĂŻng lÖnh shutdown hoÆc lÖnh halt), khi cÇn thiÕt (chÂŒng hÂčn, gÆp ph¶i t×nh huĂšng mĂ©t tr×nh Ăžng dĂŽng chÂčy quÈn) cĂŁ thÓ khĂ«i Ÿéng lÂči hÖ thĂšng nhĂȘ lÖnh reboot. CĂł phžp lÖnh reboot: reboot [tĂŻy-chĂ€n] LÖnh n”y cho phÐp khĂ«i Ÿéng lÂči hÖ thĂšng. NĂŁi chung th× chØ siÂȘu ng−ĂȘi dĂŻng mĂ­i ¼−üc phÐp sö dĂŽng lÖnh reboot, tuy nhiÂȘn, nÕu hÖ thĂšng chØ cĂŁ duy nhÊt mĂ©t ng−ĂȘi dĂŻng Âźang l”m viÖc th× lÖnh reboot vÉn ¼−üc thĂčc hiÖn song hÖ thĂšng ¼ßi hĂĄi viÖc xžc nhËn mËt khÈu. Cžc tĂŻy chĂ€n cña lÖnh reboot nh− sau l” -w, -d, -n, -f, -i cĂŁ Ăœ nghÜa t−¬ng tĂč nh− trong lÖnh halt. 2.3. LÖnh thay ŸÊi mËt khÈu MËt khÈu l” vÊn ¼Ò rÊt quan trĂ€ng trong cžc hÖ thĂšng Âźa ng−ĂȘi dĂŻng v” ¼Ó ٦m b¶o tÝnh b¶o mËt tĂši Âźa, cÇn thiÕt ph¶i chĂł Ăœ tĂ­i viÖc thay ŸÊi mËt khÈu. ThËm chÝ trong tr−ĂȘng hĂźp hÖ thĂšng chØ cĂŁ mĂ©t ng−ĂȘi sö dĂŽng th× viÖc thay ŸÊi mËt khÈu vÉn l” rÊt cÇn thiÕt. MËt khÈu l” mĂ©t x©u kÝ tĂč Âźi kÌm vĂ­i tÂȘn ng−ĂȘi dĂŻng ¼Ó ٦m b¶o cho phÐp mĂ©t ng−ĂȘi v”o l”m viÖc trong hÖ thĂšng vĂ­i quyÒn hÂčn Ÿ· ¼−üc quy ¼Þnh. Trong quž tr×nh Ÿšng nhËp, ng−ĂȘi dĂŻng ph¶i gĂą Ÿóng tÂȘn v” mËt khÈu, trong Ÿã gĂą mËt khÈu l” c«ng viÖc bŸt buĂ©c ph¶i thĂčc hiÖn. TÂȘn ng−ĂȘi dĂŻng cĂŁ thÓ ¼−üc c«ng khai song mËt khÈu th× tuyÖt ŸÚi ph¶i ¼−üc ٦m b¶o bÝ mËt. ‱ ViÖc Ÿšng kĂœ tÂȘn v” mËt khÈu cña siÂȘu ng−ĂȘi dĂŻng ¼−üc tiÕn h”nh trong quž tr×nh khĂ«i tÂčo hÖ ÂźiÒu h”nh Linux.
  • 31. 31 ‱ ViÖc Ÿšng kĂœ tÂȘn v” mËt khÈu cña mĂ©t ng−ĂȘi dĂŻng th«ng th−ĂȘng ¼−üc tiÕn h”nh khi mĂ©t ng−ĂȘi dĂŻng mĂ­i Ÿšng kĂœ tham gia sö dĂŽng hÖ thĂšng. Th«ng th−ĂȘng siÂȘu ng−ĂȘi dĂŻng cung cÊp tÂȘn v” mËt khÈu cho ng−ĂȘi dĂŻng mĂ­i (cĂŁ thÓ do ng−ĂȘi dĂŻng ¼Ò nghÞ) v” dĂŻng lÖnh adduser (hoÆc lÖnh useradd) ¼Ó Ÿšng kĂœ tÂȘn v” mËt khÈu Ÿã vĂ­i hÖ thĂšng. Sau Ÿã, ng−ĂȘi dĂŻng mĂ­i nhÊt thiÕt cÇn thay ŸÊi mËt khÈu ¼Ó b¶o ٦m viÖc giĂ· bÝ mËt cž nh©n tuyÖt ŸÚi. LÖnh passwd cho phÐp thay ŸÊi mËt khÈu Ăžng vĂ­i tÂȘn Ÿšng nhËp ng−ĂȘi dĂŻng. CĂł phžp lÖnh passwd nh− sau: passwd [tĂŻy-chĂ€n] [tÂȘn-ng−ĂȘi-dĂŻng] vĂ­i cžc tĂŻy chĂ€n nh− sau: -k thay ŸÊi mËt khÈu ng−ĂȘi dĂŻng. LÖnh ¼ßi hĂĄi ph¶i xžc nhËn quyÒn b»ng viÖc gĂą mËt khÈu Âźang dĂŻng tr−íc khi thay ŸÊi mËt khÈu. Cho phÐp ng−ĂȘi dĂŻng thay ŸÊi mËt khÈu cña m×nh Ÿéc lËp vĂ­i siÂȘu ng−ĂȘi dĂŻng. -f ¼Æt mËt khÈu mĂ­i cho ng−ĂȘi dĂŻng song kh«ng cÇn tiÕn h”nh viÖc kiÓm tra mËt khÈu Âźang dĂŻng. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y. -l khĂŁa mĂ©t t”i kho¶n ng−ĂȘi dĂŻng. ViÖc khĂŁa t”i kho¶n thĂčc chÊt l” viÖc dÞch b¶n m· hĂŁa mËt khÈu th”nh mĂ©t x©u kĂœ tĂč v« nghÜa bŸt ¼Çu bĂ«i kÝ hiÖu "!". ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y. -stdin viÖc nhËp mËt khÈu ng−ĂȘi dĂŻng chØ ¼−üc tiÕn h”nh tĂ” thiÕt bÞ v”o chuÈn kh«ng thÓ tiÕn h”nh tĂ” ¼−ĂȘng dÉn (pipe). NÕu kh«ng cĂŁ tham sĂš n”y cho phÐp nhËp mËt khÈu c¶ tĂ” thiÕt bÞ v”o chuÈn hoÆc tĂ” ¼−ĂȘng dÉn. -u mĂ« khĂŁa (thžo bĂĄ khĂŁa) mĂ©t t”i kho¶n (ŸÚi ngÉu vĂ­i tham sĂš -l). ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y. -d xĂŁa bĂĄ mËt khÈu cña ng−ĂȘi dĂŻng. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y. -S hiÓn thÞ th«ng tin ngŸn gĂ€n vÒ trÂčng thži mËt khÈu cña ng−ĂȘi dĂŻng ¼−üc ¼−a ra. ChØ siÂȘu ng−ĂȘi dĂŻng mĂ­i cĂŁ quyÒn sö dĂŽng tham sĂš n”y. NÕu tÂȘn-ng−ĂȘi-dĂŻng kh«ng cĂŁ trong lÖnh th× ngÇm ¼Þnh l” chÝnh ng−ĂȘi dĂŻng Ÿ· gĂą lÖnh n”y. VÝ dĂŽ khi ng−ĂȘi dĂŻng user1 gĂą lÖnh: # passwd user1 hÖ thĂšng th«ng bžo: Changing password for user user1
  • 32. 32 New UNIX password: ¼Ó ng−ĂȘi dĂŻng nhËp mËt khÈu mĂ­i cña m×nh v”o. Sau khi ng−ĂȘi dĂŻng gĂą xong mËt khÈu mĂ­i, hÖ thĂšng cho ra th«ng bžo: BAD PASSWORD: it is derived from your password entry Retype new UNIX password: ¼Ó ng−ĂȘi dĂŻng khÂŒng ¼Þnh mĂ©t lÇn nĂ·a mËt khÈu vĂ”a gĂą dßng trÂȘn (nhĂ­ ph¶i gĂą lÂči Ÿóng hÖt nh− lÇn tr−íc). ChĂ­ nÂȘn quž ph©n v©n v× th«ng bžo Ă« dßng phÝa trÂȘn v× hÇu hÕt khi gĂą mËt khÈu mĂ­i lu«n gÆp nhĂ·ng th«ng bžo kiÓu ÂźÂči loÂči nh− vËy, chÂŒng hÂčn nh−: BAD PASSWORD: it is too simplistic/systematic V” sau khi chĂłng ta khÂŒng ¼Þnh lÂči mËt khÈu mĂ­i, hÖ thĂšng cho ra th«ng bžo: Passwd: all authentication tokens updated successfully. cho biÕt viÖc thay ŸÊi mËt khÈu th”nh c«ng v” dÊu nhŸc shell lÂči hiÖn ra. Khi siÂȘu ng−ĂȘi dĂŻng gĂą lÖnh: # passwd -S root sÏ hiÖn ra th«ng bžo Changing password for user root Password set, MD5 encryption cho biÕt thuËt tožn m· hĂŁa mËt khÈu m” Linux sö dĂŽng l” mĂ©t thuËt tožn h”m bšm cĂŁ tÂȘn l” MD5. L−u Ăœ: CĂŁ mĂ©t lĂȘi khuyÂȘn ŸÚi vĂ­i ng−ĂȘi dĂŻng l” nÂȘn chĂ€n mËt khÈu kh«ng quž Ÿn gi¶n quž (nh»m tržnh ng−ĂȘi khžc dÔ dß t×m ra) hoÆc kh«ng quž phĂžc tÂčp (tržnh khĂŁ khšn cho chÝnh ng−ĂȘi dĂŻng khi ph¶i ghi nhĂ­ v” gĂą mËt khÈu). §Æc biÖt kh«ng nÂȘn sö dĂŽng hĂ€ tÂȘn, ng”y sinh, sĂš ÂźiÖn thoÂči ... cña b¶n th©n hoÆc ng−ĂȘi th©n l”m mËt khÈu v× Ÿ©y l” mĂ©t trong nhĂ·ng tr−ĂȘng hĂźp mËt khÈu Ÿn gi¶n nhÊt. NÕu th«ng bžo mËt khÈu quž Ÿn gi¶n ¼−üc lÆp Âźi lÆp lÂči mĂ©t v”i lÇn v” kh«ng cĂŁ th«ng bžo mËt khÈu mĂ­i th”nh c«ng Ÿ· quay vÒ dÊu nhŸc shell th× nÂȘn gĂą lÂči lÖnh v” chĂ€n mĂ©t mËt khÈu mĂ­i phĂžc tÂčp hÂŹn Ÿ«i chĂłt. 2.4. LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ hiÖn tÂči v” xem lÞch trÂȘn hÖ thĂšng 2.4.1 LÖnh xem, thiÕt ¼Æt ng”y, giĂȘ LÖnh date cho phÐp cĂŁ thÓ xem hoÆc thiÕt ¼Æt lÂči ng”y giĂȘ trÂȘn hÖ thĂšng. CĂł phžp cña lÖnh gĂ„m hai dÂčng, dÂčng xem th«ng tin vÒ ng”y, giĂȘ: date [tĂŻy-chĂ€n] ... [+¼Þnh-dÂčng] v” dÂčng thiÕt ¼Æt lÂči ng”y giĂȘ cho hÖ thĂšng: date [tĂŻy-chĂ€n] [MMDDhhmm[ [CC]YY] [.ss]] Cžc tĂŻy-chĂ€n nh− sau: -d, --date=x©u-všn-b¶n
  • 33. 33 hiÓn thÞ thĂȘi gian d−íi dÂčng x©u-všn-b¶n, m” kh«ng lÊy "thĂȘi gian hiÖn tÂči cña hÖ thĂšng” nh− theo ngÇm ¼Þnh; x©u-všn-b¶n ¼−üc ¼Æt trong hai dÊu nhžy Ÿn hoÆc hai dÊu nhžy kÐp. -f, --file=tËp-tin-všn-b¶n giĂšng nh− mĂ©t tham sĂš --date nh−ng Ăžng vĂ­i nhiÒu ng”y cÇn xem: mçi dßng cña tËp-tin-všn-b¶n cĂŁ vai trß nh− mĂ©t x©u-všn-b¶n trong tr−ĂȘng hĂźp tham sĂš --date. -I, --iso-8601[=m«-t¶] hiÓn thÞ ng”y giĂȘ theo chuÈn ISO-8601 (vÝ dĂŽ: 2000-11-8). -I t−¬ng ¼−¬ng vĂ­i tham sĂš --iso-8601='date' VĂ­i --iso-8601: nÕu m«-t¶ l” 'date' (hoÆc kh«ng cĂŁ) th× hiÓn thÞ ng”y, nÕu m«-t¶ l” 'hours' hiÓn thÞ ng”y+giĂȘ, nÕu m«-t¶ l” 'minutes': ng”y+giĂȘ+phĂłt; nÕu m«-t¶ l” 'seconds': ng”y + giĂȘ + phĂłt + gi©y. -r, --reference= tËp-tin hiÓn thÞ thĂȘi gian söa ŸÊi tËp-tin lÇn gÇn Ÿ©y nhÊt. -R, --rfc-822 hiÓn thÞ ng”y theo RFC-822 (vÝ dĂŽ: Wed, 8 Nov 2000 09:21:46 -0500). -s, --set=x©u-všn-b¶n thiÕt ¼Æt lÂči thĂȘi gian theo kiÓu x©u-všn-b¶n. -u, --utc, --universal hiÓn thÞ hoÆc thiÕt ¼Æt thĂȘi gian theo UTC (vÝ dĂŽ: Wed Nov 8 14:29:12 UTC 2000). --help hiÓn thÞ th«ng tin trĂź giĂłp v” thožt. Trong dÂčng lÖnh date cho xem th«ng tin ng”y, giĂȘ th× tham sĂš ¼Þnh-dÂčng ÂźiÒu khiÓn cžch hiÓn thÞ th«ng tin kÕt qu¶. §Þnh-dÂčng l” d·y cĂŁ tĂ” mĂ©t ¼Õn nhiÒu cÆp gĂ„m hai kÝ tĂč, trong mçi cÆp kÝ tĂč ¼Çu tiÂȘn l” % cßn kÝ tĂč thĂž hai m« t¶ ¼Þnh dÂčng. Do sĂš l−üng ¼Þnh dÂčng l” rÊt nhiÒu v× vËy chĂłng ta chØ xem xÐt mĂ©t sĂš ¼Þnh dÂčng ÂźiÓn h×nh (¼Ó xem ¼Çy Ÿñ cžc ¼Þnh dÂčng, sö dĂŽng lÖnh man date). D−íi Ÿ©y l” mĂ©t sĂš ¼Þnh dÂčng ÂźiÓn h×nh: %% HiÖn ra chÝnh kÝ tĂč %. %a HiÖn ra th«ng tin tÂȘn ng”y trong tuÇn viÕt tŸt theo ng«n ngĂ· b¶n ¼Þa. %A HiÖn ra th«ng tin tÂȘn ng”y trong tuÇn viÕt ¼Çy Ÿñ theo ng«n ngĂ· b¶n ¼Þa. %b HiÖn ra th«ng tin tÂȘn thžng viÕt tŸt theo ng«n ngĂ· b¶n ¼Þa.
  • 34. 34 %B HiÖn ra th«ng tin tÂȘn thžng viÕt ¼Çy Ÿñ theo ng«n ngĂ· b¶n ¼Þa. Trong dÂčng lÖnh date cho phÐp thiÕt ¼Æt lÂči ng”y giĂȘ cho hÖ thĂšng th× tham sĂš [MMDDhhmm[ [CC]YY] [.ss]] m« t¶ ng”y, giĂȘ mĂ­i cÇn thiÕt ¼Æt, trong Ÿã: MM: hai sĂš chØ thžng, DD: hai sĂš chØ ng”y trong thžng, hh: hai sĂš chØ giĂȘ trong ng”y, mm: hai sĂš chØ phĂłt, CC: hai sĂš chØ thÕ kØ, YY: hai sĂš chØ nšm trong thÕ kØ. Cžc dßng ngay d−íi Ÿ©y tr×nh b”y mĂ©t sĂš vÝ dĂŽ sö dĂŽng lÖnh date, mçi vÝ dĂŽ ¼−üc cho t−¬ng Ăžng vĂ­i mĂ©t cÆp hai dßng, trong Ÿã dßng trÂȘn m« t¶ lÖnh ¼−üc gĂą cßn dßng d−íi l” th«ng bžo cña Linux. # date Wed Jan 3 23:58:50 ICT 2001 # date -d='01/01/2000' Sat Jan 1 00:00:00 ICT 2000 # date -iso-8601='seconds' 2000-12-01T00:36:41-0500 # date -d='01/01/2001' Mon Jan 1 00:00:00 ICT 2001 # date 010323502001.50 Wed Jan 3 23:50:50 ICT 2001 # date +%a%A Wed Wednesday # date +%a%A%b%B Wed Wednesday Jan January # date +%D%%%j 01/05/01%005 2.4.2. LÖnh xem lÞch LÖnh cal cho phÐp xem lÞch trÂȘn hÖ thĂšng vĂ­i cĂł phžp nh− sau: cal [tĂŻy-chĂ€n] [<thžng> [<nšm>]] nÕu kh«ng cĂŁ tham sĂš, lÞch cña thžng hiÖn thĂȘi sÏ ¼−üc hiÓn thÞ. Cžc tuĂș-chĂ€n l”: -m
  • 35. 35 chĂ€n ng”y ThĂž hai l” ng”y ¼Çu tiÂȘn trong tuÇn (mÆc ¼Þnh l” ng”y Chñ nhËt). -j hiÓn thÞ sĂš ng”y trong thžng d−íi dÂčng sĂš ng”y trong nšm (vÝ dĂŽ: ng”y 1/11/2000 sÏ ¼−üc hiÓn thÞ d−íi dÂčng l” ng”y thĂž 306 trong nšm 2000, sĂš ng”y bŸt ¼Çu ¼−üc tÝnh tĂ” ng”y 1/1). -y hiÓn thÞ lÞch cña nšm hiÖn thĂȘi. VÝ dĂŽ: # cal 1 2001 January 2001 Su Mo Tu We Th Fr Sa 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 29 30 31 Khi nhËp dßng lÖnh trÂȘn, trÂȘn m”n h×nh sÏ hiÓn thÞ lÞch cña thžng 1 nšm 2001, mÆc ¼Þnh chĂ€n ng”y chñ nhËt l” ng”y bŸt ¼Çu cña tuÇn. D−íi Ÿ©y l” vÝ dĂŽ hiÓn thÞ sĂš ng”y trong thžng 3 d−íi dÂčng sĂš ng”y trong nšm 2001. # cal -j 3 2001 March 2001 Su Mo Tu We Th Fr Sa 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 2.5. LÖnh gĂ€i ng«n ngĂ· tÝnh tožn sĂš hĂ€c Linux cung cÊp mĂ©t ng«n ngĂ· tÝnh tožn vĂ­i Ÿé chÝnh xžc tĂŻy Ăœ th«ng qua lÖnh bc. Khi yÂȘu cÇu lÖnh n”y, ng−ĂȘi dĂŻng ¼−üc cung cÊp mĂ©t ng«n ngĂ· tÝnh tožn (v” cho phÐp lËp tr×nh tÝnh tožn cĂŁ dÂčng ng«n ngĂ· lËp tr×nh C) hoÂčt Ÿéng theo th«ng dÞch. Trong ng«n ngĂ· lËp tr×nh ¼−üc cung cÊp (tÂčm thĂȘi gĂ€i l” ng«n ngĂ· bc), tĂ„n tÂči rÊt nhiÒu c«ng cĂŽ hç trĂź tÝnh tožn v” lËp tr×nh tÝnh tožn: kiÓu phÐp tožn sĂš hĂ€c phong phĂł, phÐp tožn so sžnh, mĂ©t sĂš h”m chuÈn, biÕn chuÈn, cÊu trĂłc ÂźiÒu khiÓn, cžch thĂžc ¼Þnh nghÜa h”m, cžch thĂžc thay ŸÊi Ÿé chÝnh xžc, ¼Æt lĂȘi chĂł thÝch ... ChØ cÇn sö dĂŽng mĂ©t phÇn nhĂĄ tžc Ÿéng cña lÖnh bc, chĂłng ta Ÿ· cĂŁ mĂ©t "mžy tÝnh sĂš bÊm tay" hiÖu qu¶. CĂł phžp lÖnh bc: bc [tĂŻy-chĂ€n] [tËp-tin...] vĂ­i cžc tuĂș chĂ€n sau Ÿ©y: -l, --mathlib
  • 36. 36 thĂčc hiÖn phÐp tÝnh theo chuÈn th− viÖn tožn hĂ€c (vÝ dĂŽ: 5/5=1.00000000000000000000). -w, --warn khi thĂčc hiÖn phÐp tÝnh kh«ng tu©n theo chuÈn POSIX (POSIX l” mĂ©t chuÈn trong Linux) th× mĂ©t c¶nh bžo xuÊt hiÖn. -s, --standard thĂčc hiÖn phÐp tÝnh chÝnh xžc theo chuÈn cña ng«n ngĂ· POSIX bc. -q, --quiet kh«ng hiÖn ra lĂȘi giĂ­i thiÖu vÒ phÇn mÒm GNU khi dĂŻng bc. Tham sĂš tËp-tin l” tÂȘn tËp tin chĂža ch−¬ng tr×nh viÕt trÂȘn ng«n ngĂ· bc, khi lÖnh bc thĂčc hiÖn sÏ tĂč Ÿéng chÂčy cžc tËp tin ch−¬ng tr×nh n”y (NÕu cĂŁ nhiÒu tham sĂš th× cĂŁ nghÜa sÏ chÂčy nhiÒu ch−¬ng tr×nh liÂȘn tiÕp nhau). D−íi Ÿ©y l” mĂ©t vÝ dĂŽ sö dĂŽng lÖnh bc Ă« dÂčng Ÿn gi¶n nhÊt. Khi gĂą lÖnh tÂči dÊu nhŸc: # bc -l m”n h×nh xuÊt hiÖn lĂȘi giĂ­i thiÖu vÒ GNU khi dĂŻng bc v” ng«n ngĂ· bc ¼−üc kÝch hoÂčt ¼Ó phĂŽc vĂŽ ng−ĂȘi dĂŻng. bc 1.05 Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 5^3 125 12+12+78*7-62/4 554.50000000000000000000 a=4 a^a 256 a*78 312 b=45 a*b 180 a/b .08888888888888888888 a%b .00000000000000000040
  • 37. 37 Ă« Ÿ©y * l” phÐp nh©n, ^ l” phÐp tÝnh luĂŒ thĂ”a, / l” phÐp chia lÊy th−¬ng, % l” chia lÊy phÇn d−. L−u Ăœ: Ng«n ngĂ· lËp tr×nh tÝnh tožn bc l” mĂ©t ng«n ngĂ· rÊt mÂčnh cĂŁ nĂ©i dung hÕt sĂžc phong phĂł cho nÂȘn trong khu«n khĂŠ cña cuĂšn sžch n”y kh«ng thÓ m« t¶ hÕt cžc nĂ©i dung cña ng«n ngĂ· Ÿã ¼−üc. ChĂłng ta cÇn sö dĂŽng lÖnh man bc ¼Ó nhËn ¼−üc th«ng tin ¼Çy Ÿñ vÒ lÖnh bc v” ng«n ngĂ· tÝnh tožn bc. Ă« Ÿ©y tr×nh b”y sÂŹ bĂ© mĂ©t sĂš yÕu tĂš cÂŹ b¶n nhÊt cña ng«n ngĂ· Ÿã (bt l” viÕt tŸt cña biÓu thĂžc, b l” viÕt tŸt cña biÕn): Cžc phÐp tÝnh: - bt: lÊy ŸÚi; ++ b, --b, b ++, b --: phÐp tožn tšng, gi¶m b; cžc phÐp tožn hai ng«i cĂ©ng +, trĂ” -, nh©n *, chia /, lÊy phÇn d− %, lĂČy thĂ”a nguyÂȘn bËc ^; gžn =; gžn sau khi thao tžc <thao tžc>=; cžc phÐp tožn so sžnh <, <=, >, >=, b»ng ==, khžc != ... PhÐp so sžnh cho 1 nÕu Ÿóng, cho 0 nÕu sai. BĂšn biÕn chuÈn l” scale sĂš l−üng chĂ· sĂš phÇn thËp ph©n; last giž trÞ tÝnh tožn cuĂši cĂŻng; ibase cÂŹ sĂš hÖ ¼Õm ŸÚi vĂ­i input v” obase l” cÂŹ sĂš hÖ ¼Õm vĂ­i output (ngÇm ¼Þnh hai biÕn n”y cĂŁ giž trÞ 10). Cžc h”m chuÈn sin s (bt); cosin c (bt); arctg a (bt); l«garit tĂč nhiÂȘn l (bt); mĂČ cÂŹ sĂš tĂč nhiÂȘn e (bt); h”m Bessel bËc nguyÂȘn n cña bt l” j (n, bt). 2.6. Xem th«ng tin hÖ thĂšng LÖnh uname cho phÐp xem th«ng tin hÖ thĂšng vĂ­i cĂł phžp l”: uname [tĂŻy-chĂ€n] NÕu kh«ng cĂŁ tuĂș chĂ€n th× hiÖn tÂȘn hÖ ÂźiÒu h”nh. LÖnh cĂŁ cžc tĂŻy chĂ€n l”: -a, --all hiÖn tÊt c¶ cžc th«ng tin. -m, --machine kiÓu kiÕn trĂłc cña bĂ© xö lĂœ (i386, i486, i586, i686...). -n, --nodename hiÖn tÂȘn cña mžy. -r, --release hiÖn nh©n cña hÖ ÂźiÒu h”nh. -s, --sysname hiÖn tÂȘn hÖ ÂźiÒu h”nh. -p, --processor hiÖn kiÓu bĂ© xö lĂœ cña mžy chñ. VÝ dĂŽ, nÕu gĂą lÖnh # uname -a th× m”n h×nh sÏ hiÖn ra nh− sau:
  • 38. 38 Linux linuxsrv.linuxvn.net 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown # Th«ng tin hiÖn ra cĂŁ tÊt c¶ 6 tr−ĂȘng l”: TÂȘn hÖ ÂźiÒu h”nh: Linux TÂȘn mžy: linuxsrv.linuxvn.net TÂȘn nh©n cña hÖ ÂźiÒu h”nh: 2.2.14-5.0 Ng”y s¶n xuÊt: #1 Tue Mar 7 21:07:39 EST 2000 KiÓu kiÕn trĂłc bĂ© xö lĂœ: i686 KiÓu bĂ© xö lĂœ cña mžy chñ: unknown VÝ dĂŽ nÕu gĂą lÖnh: # uname -spr th× m”n h×nh sÏ hiÖn ra nh− sau: Linux 2.2.14-5.0 unknown l” tÂȘn hÖ ÂźiÒu h”nh, tÂȘn nh©n v” kiÓu bĂ© xö lĂœ cña mžy chñ. L−u Ăœ: ChĂłng ta l”m rĂą thÂȘm nĂ©i dung l−u Ăœ trong mĂŽc 1.3.1 vÒ tham sĂš khĂŁa kÕt hĂźp: Trong vÝ dĂŽ trÂȘn Ÿ©y khi viÕt tham sĂš -spr l” yÂȘu cÇu thĂčc hiÖn lÖnh usame vĂ­i nghÜa kÕt hĂźp t×nh huĂšng theo c¶ ba tham sĂš khĂŁa -s, -p, -r. ChĂł Ăœ r»ng, kh«ng thÓ viÕt -s -p -r thay cho -spr ¼−üc. Nh− Ÿ· l−u Ăœ Ă« mĂŽc 1.3.1 trong nhiÒu lÖnh cña Linux cho phÐp viÕt kÕt hĂźp cžc tham sĂš khĂŁa theo cžch thĂžc nh− trÂȘn miÔn l” cžc tham sĂš Ÿã kh«ng xung khŸc vĂ­i nhau. 2.7. HiÖn dßng všn b¶n LÖnh echo hiÖn ra dßng všn b¶n ¼−üc ghi ngay trong dßng lÖnh cĂŁ cĂł phžp: echo [tĂŻy-chĂ€n]...[x©u kĂœ tĂč]... vĂ­i cžc tuĂș chĂ€n nh− sau: -n hiÖn x©u kĂœ tĂč v” dÊu nhŸc trÂȘn cĂŻng mĂ©t dßng. -e bËt kh¶ nšng th«ng dÞch ¼−üc cžc kĂœ tĂč ÂźiÒu khiÓn. -E tŸt kh¶ nšng th«ng dÞch ¼−üc cžc kĂœ tĂč ÂźiÒu khiÓn. --help hiÖn hç trĂź v” thožt. MĂ©t sĂš b¶n Linux kh«ng hç trĂź tham sĂš n”y. VÝ dĂŽ, dĂŻng lÖnh echo vĂ­i tham sĂš -e # echo -e ‘thö dĂŻng lÖnh echo n’ sÏ thÊy hiÖn ra chÝnh dßng všn b¶n Ă« lÖnh:
  • 39. 39 thö dĂŻng lÖnh echo # Ă« Ÿ©y kĂœ tĂč ÂźiÒu khiÓn ‘n’ l” kĂœ tĂč xuĂšng dßng. 2.8. Thay ŸÊi nĂ©i dung dÊu nhŸc shell Trong Linux cĂŁ hai loÂči dÊu nhŸc: dÊu nhŸc cÊp mĂ©t (dÊu nhŸc shell) xuÊt hiÖn khi nhËp lÖnh v” dÊu nhŸc cÊp hai (dÊu nhŸc nhËp liÖu) xuÊt hiÖn khi lÖnh cÇn cĂŁ dĂ· liÖu ¼−üc nhËp tĂ” b”n phÝm v” t−¬ng Ăžng vĂ­i hai biÕn nhŸc tÂȘn l” PS1 v” PS2. PS1 l” biÕn hÖ thĂšng t−¬ng Ăžng vĂ­i dÊu nhŸc cÊp 1: Giž trÞ cña PS1 chÝnh l” nĂ©i dung hiÓn thÞ cña dÊu nhŸc shell. §Ó nhËn biÕt th«ng tin hÖ thĂšng hiÖn tÂči, mĂ©t nhu cÇu ¼Æt ra l” cÇn thay ŸÊi giž trÞ cña cžc biÕn hÖ thĂšng PS1 v” PS2. Linux cho phÐp thay ŸÊi giž trÞ cña biÕn hÖ thĂšng PS1 b»ng lÖnh gžn trÞ mĂ­i cho nĂŁ. LÖnh n”y cĂŁ dÂčng: # PS1='<d∙y kÝ tĂč>' Nšm (5) kÝ tĂč ¼Çu tiÂȘn cña lÖnh gžn trÂȘn Ÿ©y (PS1=') ph¶i ¼−üc viÕt liÂȘn tiÕp nhau. D·y kÝ tĂč n»m giĂ·a cÆp hai dÊu nhžy Ÿn (cĂŁ thÓ sö dĂŽng cÆp hai dÊu kÐp ") v” kh«ng ¼−üc phÐp chĂža dÊu nhžy. D·y kÝ tĂč n”y bao gĂ„m cžc cÆp kÝ tĂč ÂźiÒu khiÓn v” cžc kÝ tĂč khžc, cho phÐp cĂŁ thÓ cĂŁ dÊu cžch. CÆp kÝ tĂč ÂźiÒu khiÓn gĂ„m hai kÝ tĂč, kÝ tĂč ¼Çu tiÂȘn l” dÊu sĂŠ xu«i "" cßn kÝ tĂč thĂž hai nhËn mĂ©t trong cžc tr−ĂȘng hĂźp liÖt kÂȘ trong b¶ng d−íi Ÿ©y. B¶ng d−íi Ÿ©y giĂ­i thiÖu mĂ©t sĂš cÆp kĂœ tĂč ÂźiÒu khiÓn cĂŁ thÓ ¼−üc sö dĂŽng khi muĂšn thay ŸÊi dÊu nhŸc lÖnh: KĂœ tĂč ÂźiÒu khiÓn Ăœ nghÜa ! HiÓn thÞ thĂž tĂč cña lÖnh trong lÞch sö # HiÓn thÞ thĂž tĂč cña lÖnh $ HiÓn thÞ dÊu Ÿ«-la ($). §Úi vĂ­i siÂȘu ng−ĂȘi dĂŻng (super user), th× hiÓn thÞ dÊu sĂš hiÖu (#) HiÓn thÞ dÊu sĂŠ () d HiÓn thÞ ng”y hiÖn tÂči h HiÓn thÞ tÂȘn mžy (hostname) n KĂœ hiÖu xuĂšng dßng s HiÓn thÞ tÂȘn hÖ shell t HiÓn thÞ giĂȘ hiÖn tÂči u HiÓn thÞ tÂȘn ng−ĂȘi dĂŻng W HiÓn thÞ tÂȘn thĂčc sĂč cña th− mĂŽc hiÖn thĂȘi (vÝ dĂŽ th− mĂŽc hiÖn thĂȘi l” /mnt/hda1 th× tÂȘn thĂčc sĂč cña nĂŁ l” /hda1) w HiÓn thÞ tÂȘn ¼Çy Ÿñ cña th− mĂŽc hiÖn thĂȘi (vÝ dĂŽ /mnt/hda1) VÝ dĂŽ, hiÖn thĂȘi dÊu nhŸc shell cĂŁ dÂčng: root@may1 /hda1]# Sau khi chĂłng ta gĂą lÖnh root@may1 /hda1]# PS1='[h@u w : d]$'
  • 40. 40 th× dÊu nhŸc shell ¼−üc thay ŸÊi l”: [may1@root /mnt/hda1 : Fri Oct 27 ]# ngo”i viÖc ŸÊi thĂž tĂč giĂ·a tÂȘn ng−ĂȘi dĂŻng v” mžy cßn cho chĂłng ta biÕt thÂȘm vÒ ng”y hÖ thĂšng qu¶n lĂœ v” tÂȘn ¼Çy Ÿñ cña th− mĂŽc hiÖn thĂȘi. Linux cung cÊp cžch thĂžc ho”n to”n t−¬ng tĂč nh− ŸÚi vĂ­i biÕn PS1 ¼Ó thay ŸÊi giž trÞ biÕn hÖ thĂšng PS2 t−¬ng Ăžng vĂ­i dÊu nhŸc cÊp hai.
  • 41. 41 Ch−¬ng 3. HÖ thĂšng tËp tin 3.1 TĂŠng quan vÒ hÖ thĂšng tËp tin 3.1.1. MĂ©t sĂš khži niÖm Ng−ĂȘi dĂŻng Ÿ· tĂ”ng l”m viÖc vĂ­i hÖ ÂźiÒu h”nh DOS/Windows th× rÊt quen biÕt vĂ­i cžc khži niÖm: tËp tin (File), th− mĂŽc, th− mĂŽc hiÖn thĂȘi ... §Ó cuĂšn sžch mang tÝnh hÖ thĂšng v” thuËn tiÖn cho ng−ĂȘi dĂŻng ch−a tĂ”ng l”m viÖc th”nh thÂčo vĂ­i mĂ©t hÖ ÂźiÒu h”nh n”o khžc, ch−¬ng n”y vÉn giĂ­i thiÖu vÒ cžc khži niÖm n”y mĂ©t cžch sÂŹ bĂ©. MĂ©t ŸÚi t−üng ÂźiÓn h×nh trong cžc hÖ ÂźiÒu h”nh Ÿã l” tËp tin. TËp tin l” mĂ©t tËp hĂźp dĂ· liÖu cĂŁ tĂŠ chĂžc ¼−üc hÖ ÂźiÒu h”nh qu¶n lĂœ theo yÂȘu cÇu cña ng−ĂȘi dĂŻng. Cžch tĂŠ chĂžc dĂ· liÖu trong tËp tin thuĂ©c vÒ chñ cña nĂŁ l” ng−ĂȘi dĂŻng Ÿ· tÂčo ra tËp tin. TËp tin cĂŁ thÓ l” mĂ©t všn b¶n (tr−ĂȘng hĂźp ¼Æc biÖt l” ch−¬ng tr×nh nguĂ„n trÂȘn C, PASCAL, shell script ...), mĂ©t ch−¬ng tr×nh ng«n ngĂ· mžy, mĂ©t tËp hĂźp dĂ· liÖu ... HÖ ÂźiÒu h”nh tĂŠ chĂžc viÖc l−u trĂ· nĂ©i dung tËp tin trÂȘn cžc thiÕt bÞ nhĂ­ l©u d”i (chÂŒng hÂčn ¼Üa tĂ”) v” ٦m b¶o cžc thao tžc lÂȘn tËp tin. ChÝnh v× cĂŁ hÖ ÂźiÒu h”nh ٦m b¶o cžc chĂžc nšng liÂȘn quan ¼Õn tËp tin nÂȘn ng−ĂȘi dĂŻng kh«ng cÇn biÕt tËp tin cña m×nh l−u Ă« vĂŻng n”o trÂȘn ¼Üa tĂ”, b»ng cžch n”o ŸÀc/ghi lÂȘn cžc vĂŻng cña ¼Üa tĂ” m” vÉn thĂčc hiÖn ¼−üc yÂȘu cÇu t×m kiÕm, xö lĂœ lÂȘn cžc tËp tin. HÖ ÂźiÒu h”nh qu¶n lĂœ tËp tin theo tÂȘn gĂ€i cña tËp tin (tÂȘn tËp tin) v” mĂ©t sĂš thuĂ©c tÝnh liÂȘn quan ¼Õn tËp tin. Tr−íc khi giĂ­i thiÖu mĂ© t sĂš nĂ©i dung liÂȘn quan ¼Õn tÂȘn tËp tin v” tÂȘn th− mĂŽc, chĂłng ta giĂ­i thiÖu sÂŹ bĂ© vÒ khži niÖm th− mĂŽc. §Ó l”m viÖc ¼−üc vĂ­i cžc tËp tin, hÖ ÂźiÒu h”nh kh«ng chØ qu¶n lĂœ nĂ©i dung tËp tin m” cßn ph¶i qu¶n lĂœ cžc th«ng tin liÂȘn quan ¼Õn cžc tËp tin. Th− mĂŽc (directory) l” ŸÚi t−üng ¼−üc dĂŻng ¼Ó chĂža th«ng tin vÒ cžc tËp tin, hay nĂŁi theo mĂ©t cžch khžc, th− mĂŽc chĂža cžc tËp tin. Cžc th− mĂŽc cĂČng ¼−üc hÖ ÂźiÒu h”nh qu¶n lĂœ trÂȘn vËt dÉn ngo”i v” v× vËy, theo nghÜa n”y, th− mĂŽc cĂČng ¼−üc coi l” tËp tin song trong mĂ©t sĂš tr−ĂȘng hĂźp ¼Ó ph©n biÖt vĂ­i "tËp tin" th− mĂŽc, chĂłng ta dĂŻng thuËt ngĂ· tËp tin th«ng th−ĂȘng. Khžc vĂ­i tËp tin th«ng th−ĂȘng, hÖ ÂźiÒu h”nh lÂči quan t©m ¼Õn nĂ©i dung cña th− mĂŽc. MĂ©t sĂš nĂ©i dung sau Ÿ©y liÂȘn quan ¼Õn tÂȘn tËp tin (bao gĂ„m c¶ tÂȘn th− mĂŽc): TÂȘn tÖp tin trong Linux cĂŁ thÓ d”i tĂ­i 256 kĂœ tĂč, bao gĂ„m cžc chĂ· cži, chĂ· sĂš, dÊu gÂčch nĂši, gÂčch ch©n, dÊu chÊm. TÂȘn th− mĂŽc/tËp tin trong Linux cĂŁ thÓ cĂŁ nhiÒu hÂŹn mĂ©t dÊu chÊm, vÝ dĂŽ: This_is.a.VERY_long.filename. NÕu trong tÂȘn tËp tin cĂŁ dÊu chÊm "." th× x©u con cña tÂȘn tËp tin tĂ” dÊu chÊm cuĂši cĂŻng ¼−üc gĂ€i l” phÇn mĂ« rĂ©ng cña tÂȘn tËp tin (hoÆc tËp tin). VÝ dĂŽ, tÂȘn tËp tin trÂȘn Ÿ©y cĂŁ phÇn mĂ« rĂ©ng l” .filename. ChĂł Ăœ r»ng khži niÖm phÇn mĂ« rĂ©ng Ă« Ÿ©y kh«ng mang Ăœ nghÜa nh− mĂ©t sĂš hÖ ÂźiÒu h”nh khžc. L−u Ăœ: ChĂłng ta nÂȘn l−u Ăœ r»ng, kh«ng ph¶i kĂœ tĂč n”o cĂČng cĂŁ nghÜa. NÕu cĂŁ hai tËp tin chØ khžc nhau Ă« kĂœ tĂč cuĂši cĂŻng, th× ŸÚi vĂ­i Linux, Ÿã l” hai tËp tin trĂŻng tÂȘn. BĂ«i lÏ, Linux chØ lÊy 32 hay 64 kĂœ tĂč ¼Çu tiÂȘn trong tÂȘn tËp tin m” th«i (tĂŻy theo phiÂȘn b¶n Linux), phÇn tÂȘn tËp tin cßn lÂči d”nh cho chñ cña tËp tin, Linux theo dĂąi th«ng tin, nh−ng th−ĂȘng kh«ng xem cžc kĂœ tĂč ŸÞng sau kĂœ tĂč thĂž 33 hay 65 l” quan trĂ€ng ŸÚi vĂ­i nĂŁ. Xin nhŸc lÂči l−u Ăœ vÒ ph©n biÖt chĂ· hoa v” chĂ· th−ĂȘng ŸÚi vĂ­i tÂȘn th− mĂŽc/tËp tin, vÝ dĂŽ hai tËp tin FILENAME.tar.gz v” filename.tar.gz l” hai tËp tin khžc nhau.
  • 42. 42 NÕu trong tÂȘn th− mĂŽc/tËp tin cĂŁ chĂža kho¶ng trĂšng, sÏ ph¶i ¼Æt tÂȘn th− mĂŽc/tËp tin v”o trong cÆp dÊu nhžy kÐp ¼Ó sö dĂŽng th− mĂŽc/tËp tin Ÿã. VÝ dĂŽ, ¼Ó tÂčo th− mĂŽc cĂŁ tÂȘn l” ”My document” chÂŒng hÂčn, h·y Ÿžnh dßng lÖnh sau: # mkdir "My document" MĂ©t sĂš kĂœ tĂč sau kh«ng ¼−üc sö dĂŽng trong tÂȘn th− mĂŽc/tËp tin: !, *, $, &, # ... Khi sö dĂŽng ch−¬ng tr×nh mc (Midnight Commander - ch−¬ng 8), cžc tËp tin kh¶ thi trong Linux cĂŁ dÊu "*" ¼−üc ¼Æt tr−íc tÂȘn tËp tin, cžc tËp tin sao l−u cĂŁ dÊu "~" v” cžc tËp tin cĂŁ tÂȘn bŸt ¼Çu bĂ«i dÊu "." l” cžc tËp tin Èn, cžc tËp tin cĂŁ dÊu "@" l” cžc tËp tin liÂȘn kÕt... TËp hĂźp tÊt c¶ cžc tËp tin cĂŁ trong hÖ ÂźiÒu h”nh ¼−üc gĂ€i l” hÖ thĂšng tËp tin l” mĂ©t hÖ thĂšng thĂšng nhÊt. BĂ«i chÝnh tĂ” cžch thĂžc sö dĂŽng th− mĂŽc, hÖ thĂšng tËp tin ¼−üc tĂŠ chĂžc l«gic theo dÂčng h×nh c©y: HÖ thĂšng tËp tin ¼−üc xuÊt phžt tĂ” mĂ©t th− mĂŽc gĂšc (¼−üc kÝ hiÖu l” "/") v” cho phÐp tÂčo ra th− mĂŽc con trong mĂ©t th− mĂŽc bÊt kĂș. Th«ng th−ĂȘng, khi khĂ«i tÂčo Linux Ÿ· cĂŁ ngay hÖ thĂšng tËp tin cña nĂŁ. H×nh 3.1. cho minh hĂ€a mĂ©t phÇn trong c©y l«gic cña hÖ thĂšng tËp tin. §Ó chØ mĂ©t tËp tin hay mĂ©t th− mĂŽc, chĂłng ta cÇn ¼−a ra mĂ©t ¼−ĂȘng dÉn, vÝ dĂŽ ¼Ó ¼−ĂȘng dÉn xžc ¼Þnh tËp tin Xclients trong h×nh 3.1. chĂłng ta viÕt nh− sau: /etc/X11/xinit/Xclients §−ĂȘng dÉn n”y cho biÕt Xclients n»m trong xinit, xinit n»m trong X11, X11 n»m trong etc v” etc n»m trong gĂšc /. TÂȘn tËp tin th−ĂȘng l” tham sĂš thĂčc sĂč khi gĂą lÖnh v” c«ng viÖc gĂą lÖnh trĂ« nÂȘn rÊt nÆng nÒ ŸÚi vĂ­i ng−ĂȘi dĂŻng nÕu nh− trong lÖnh ph¶i gĂą mĂ©t ¼−ĂȘng dÉn d”i theo dÂčng trÂȘn (¼−üc biÕt vĂ­i tÂȘn gĂ€i l” ¼−ĂȘng dÉn tuyÖt ŸÚi). V× vËy, Linux (cĂČng nh− nhiÒu hÖ ÂźiÒu h”nh khžc) sö dĂŽng khži niÖm th− mĂŽc hiÖn thĂȘi cña mçi ng−ĂȘi dĂŻng l”m viÖc trong hÖ thĂšng. Th− mĂŽc hiÖn thĂȘi l” mĂ©t th− mĂŽc trong hÖ thĂšng tËp tin m” hiÖn thĂȘi "ng−ĂȘi dĂŻng Âźang Ă« Ÿã". Qua th− mĂŽc hiÖn thĂȘi, Linux cho phÐp ng−ĂȘi dĂŻng chØ mĂ©t tËp tin trong lÖnh ngŸn gĂ€n hÂŹn nhiÒu. VÝ dĂŽ, nÕu th− mĂŽc hiÖn thĂȘi l” th− mĂŽc xinit th× ¼Ó chØ tËp tin Ÿ· nĂŁi, ng−ĂȘi dĂŻng chØ cÇn viÕt Xclients hoÆc ./Xclients trong Ÿã kÝ hiÖu "." ¼Ó chØ / root bin etc usr home dev peng office52 sh date who X11 src bin user1 user2 tty00 tty01 xinit Xclients Xmodmap H×nh 3.1. MĂ©t phÇn cÊu trĂłc l«gic dÂčng c©y cña hÖ thĂšng File
  • 43. 43 th− mĂŽc hiÖn thĂȘi. §−ĂȘng dÉn ¼−üc xžc ¼Þnh qua th− mĂŽc hiÖn thĂȘi ¼−üc gĂ€i l” ¼−ĂȘng dÉn t−¬ng ŸÚi. Khi mĂ©t ng−ĂȘi dĂŻng Ÿšng nhËp v”o hÖ thĂšng, Linux lu«n chuyÓn ng−ĂȘi dĂŻng v”o th− mĂŽc riÂȘng, v” tÂči thĂȘi ÂźiÓm Ÿã th− mĂŽc riÂȘng l” th− mĂŽc hiÖn thĂȘi cña ng−ĂȘi dĂŻng. Th− mĂŽc riÂȘng cña siÂȘu ng−ĂȘi dĂŻng l” /root, th− mĂŽc riÂȘng cña ng−ĂȘi dĂŻng cĂŁ tÂȘn l” user1 l” /home/user1 ... Linux cho phÐp dĂŻng lÖnh cd ¼Ó chuyÓn sang th− mĂŽc khžc (lÊy th− mĂŽc khžc l”m th− mĂŽc hiÖn thĂȘi). Hai dÊu chÊm ".." ¼−üc dĂŻng ¼Ó chØ th− mĂŽc ngay trÂȘn th− mĂŽc hiÖn thĂȘi (cha cña th− mĂŽc hiÖn thĂȘi). Linux cßn cho phÐp ghÐp mĂ©t hÖ thĂšng tËp tin trÂȘn mĂ©t thiÕt bÞ nhĂ­ (¼Üa mÒm, vĂŻng ¼Üa cĂžng ch−a ¼−üc ¼−a v”o hÖ thĂšng tËp tin) th”nh mĂ©t th− mĂŽc con trong hÖ thĂšng tËp tin cña hÖ thĂšng b»ng lÖnh mount. Cžc hÖ thĂšng tËp tin ¼−üc ghÐp thuĂ©c v”o cžc kiÓu khžc nhau. Hai mĂŽc tiÕp theo (3.1.2 v” 3.1.3.) giĂ­i thiÖu nhĂ·ng nĂ©i dung s©u hÂŹn vÒ hÖ thĂšng tËp tin Linux d”nh cho cžc bÂčn ŸÀc muĂšn t×m hiÓu thÂȘm vÒ hÖ thĂšng tËp tin cña mĂ©t hÖ ÂźiÒu h”nh UNIX ÂźiÓn h×nh. 3.1.2. SÂŹ bĂ© kiÕn trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin TrÂȘn ¼Üa tĂ”, hÖ thĂšng tËp tin ¼−üc coi l” d·y tuÇn tĂč cžc khĂši l«gic mçi khĂši chĂža hoÆc 512B hoÆc 1024B hoÆc bĂ©i cña 512B l” cĂš ¼Þnh trong mĂ©t hÖ thĂšng tËp tin. Trong hÖ thĂšng tËp tin, cžc khĂši dĂ· liÖu ¼−üc ¼Þa chØ hĂŁa b»ng cžch Ÿžnh chØ sĂš liÂȘn tiÕp, mçi ¼Þa chØ ¼−üc chĂža trong 4 byte (32 bit). CÊu trĂłc nĂ©i tÂči cña hÖ thĂšng tËp tin bao gĂ„m 4 th”nh phÇn kÕ tiÕp nhau: Boot block (dĂŻng ¼Ó khĂ«i Ÿéng hÖ thĂšng), SiÂȘu khĂši (Super block), Danh sžch inode v” VĂŻng dĂ· liÖu. D−íi Ÿ©y, chĂłng ta xem xÐt sÂŹ l−üc nĂ©i dung cžc th”nh phÇn cÊu trĂłc nĂ©i tÂči mĂ©t hÖ thĂšng tËp tin. SiÂȘu khĂši: SiÂȘu khĂši chĂža nhiÒu th«ng tin liÂȘn quan ¼Õn trÂčng thži cña hÖ thĂšng tËp tin. Trong siÂȘu khĂši cĂŁ cžc tr−ĂȘng sau Ÿ©y: KÝch th−íc cña danh sžch inode (khži niÖm inode sÏ ¼−üc gi¶i thÝch trong mĂŽc sau): ¼Þnh kÝch cĂŹ vĂŻng kh«ng gian trÂȘn HÖ thĂšng tËp tin qu¶n lĂœ cžc inode. KÝch th−íc cña hÖ thĂšng tËp tin. Hai kÝch th−íc trÂȘn Ÿ©y tÝnh theo Ÿn vÞ dung l−üng bĂ© nhĂ­ ngo”i vËt lĂœ, MĂ©t danh sžch chØ sĂš cžc khĂši rçi (th−ĂȘng trĂčc trÂȘn siÂȘu khĂši) trong hÖ thĂšng tËp tin. ChØ sĂš cžc khĂši rçi th−ĂȘng trĂčc trÂȘn siÂȘu khĂši ¼−üc dĂŻng ¼Ó Ÿžp Ăžng nhu cÇu ph©n phĂši mĂ­i. ChĂł Ăœ r»ng, danh sžch chØ sĂš cžc khĂši rçi cĂŁ trÂȘn siÂȘu khĂši chØ l” mĂ©t bĂ© phËn cña tËp tÊt c¶ cžc khĂši rçi cĂŁ trÂȘn hÖ thĂšng tËp tin. ChØ sĂš cña khĂši rçi tiÕp theo trong danh sžch cžc khĂši rçi. ChØ sĂš khĂši rçi tiÕp theo dĂŻng ¼Ó hç trĂź viÖc t×m kiÕm tiÕp cžc khĂši rçi: bŸt ¼Çu t×m tĂ” khĂši cĂŁ chØ sĂš n”y trĂ« Âźi. §iÒu Ÿã cĂŁ nghÜa l” mĂ€i khĂši cĂŁ chØ sĂš kh«ng lĂ­n hÂŹn chØ sĂš n”y hoÆc cĂŁ trong danh sžch cžc khĂši rçi th−ĂȘng trĂčc hoÆc Ÿ· ¼−üc cÊp phžt cho mĂ©t tËp tin n”o Ÿã.
  • 44. 44 NhiÒu thao tžc tÂčo tËp tin mĂ­i, xož tËp tin, thay ŸÊi nĂ©i dung tËp tin v.v. cËp nhËt cžc th«ng tin n”y. MĂ©t danh sžch cžc inode rçi (th−ĂȘng trĂčc trÂȘn siÂȘu khĂši) trong hÖ thĂšng tËp tin. Danh sžch n”y chĂža chØ sĂš cžc inode rçi ¼−üc dĂŻng ¼Ó ph©n phĂši ngay ¼−üc cho mĂ©t tËp tin mĂ­i ¼−üc khĂ«i tÂčo. Th«ng th−ĂȘng, danh sžch n”y chØ chĂža mĂ©t bĂ© phËn cžc inode rçi trÂȘn hÖ thĂšng tËp tin. ChØ sĂš inode rçi tiÕp theo trong danh sžch cžc inode rçi. ChØ sĂš inode rçi tiÕp theo ¼Þnh vÞ viÖc t×m kiÕm tiÕp thÂȘm inode rçi: bŸt ¼Çu t×m tĂ” inode cĂŁ chØ sĂš n”y trĂ« Âźi. §iÒu Ÿã cĂŁ nghÜa l” mĂ€i inode cĂŁ chØ sĂš kh«ng lĂ­n hÂŹn chØ sĂš n”y hoÆc cĂŁ trong danh sžch cžc inode rçi th−ĂȘng trĂčc hoÆc Ÿ· ¼−üc t−¬ng Ăžng vĂ­i mĂ©t tËp tin n”o Ÿã. Hai tham sĂš trÂȘn Ÿ©y tÂčo th”nh cÆp xžc ¼Þnh ¼−üc danh sžch cžc inode rçi trÂȘn hÖ thĂšng tËp tin cžc thao tžc tÂčo tËp tin mĂ­i, xož tËp tin cËp nhËt th«ng tin n”y. Cžc tr−ĂȘng khĂŁa (lock) danh sžch cžc khĂši rçi v” danh sžch inode rçi: Trong mĂ©t sĂš tr−ĂȘng hĂźp, chÂŒng hÂčn khi hÖ thĂšng Âźang l”m viÖc thĂčc sĂč vĂ­i ¼Üa tĂ” ¼Ó cËp nhËt cžc danh sžch n”y, hÖ thĂšng kh«ng cho phÐp cËp nhËt tĂ­i hai danh sžch nĂŁi trÂȘn. CĂȘ chØ dÉn vÒ viÖc siÂȘu khĂši Ÿ· ¼−üc biÕn ŸÊi: §Þnh kĂș thĂȘi gian siÂȘu khĂši Ă« bĂ© nhĂ­ trong ¼−üc cËp nhËt lÂči v”o siÂȘu khĂši Ă« ¼Üa tĂ” v” v× vËy cÇn cĂŁ th«ng tin vÒ viÖc siÂȘu khĂši Ă« bĂ© nhĂ­ trong khžc vĂ­i nĂ©i dung Ă« bĂ© nhĂ­ ngo”i: nÕu hai b¶n kh«ng giĂšng nhau th× cÇn ph¶i biÕn ŸÊi ¼Ó chĂłng ¼−üc ŸÄng nhÊt. CĂȘ chØ dÉn r»ng hÖ thĂšng tËp tin chØ cĂŁ thÓ ŸÀc (cÊm ghi): Trong mĂ©t sĂš tr−ĂȘng hĂźp, hÖ thĂšng Âźang cËp nhËt th«ng tin tĂ” bĂ© nhĂ­ ngo”i th× chØ cho phÐp ŸÀc ŸÚi vĂ­i hÖ thĂšng tËp tin, SĂš l−üng tĂŠng cĂ©ng cžc khĂši rçi trong hÖ thĂšng tËp tin, SĂš l−üng tĂŠng cĂ©ng cžc inode rçi trong hÖ thĂšng tËp tin, Th«ng tin vÒ thiÕt bÞ, KÝch th−íc khĂši (Ÿn vÞ ph©n phĂši dĂ· liÖu) cña hÖ thĂšng tËp tin. HiÖn tÂči kÝch th−íc phĂŠ biÕn cña khĂši l” 1KB. Trong thĂȘi gian mžy hoÂčt Ÿéng, theo tĂ”ng giai ÂźoÂčn, nh©n sÏ ¼−a siÂȘu khĂši lÂȘn ¼Üa nÕu nĂŁ Ÿ· ¼−üc biÕn ŸÊi ¼Ó phĂŻ hĂźp vĂ­i dĂ· liÖu trÂȘn hÖ thĂšng tËp tin. MĂ©t trong khži niÖm cĂšt lĂąi xuÊt hiÖn trong hÖ thĂšng tËp tin Ÿã l” inode. Cžc ŸÚi t−üng liÂȘn quan ¼Õn khži niÖm n”y sÏ ¼−üc tr×nh b”y trong cžc mĂŽc tiÕp theo. Inode: Mçi khi mĂ©t quž tr×nh khĂ«i tÂčo mĂ©t tËp tin mĂ­i, nh©n hÖ thĂšng sÏ gžn cho nĂŁ mĂ©t inode ch−a sö dĂŽng. §Ó hiÓu rĂą hÂŹn vÒ inode, chĂłng ta xem xÐt sÂŹ l−üc mĂši quan hÖ liÂȘn quan giĂ·a tËp tin dĂ· liÖu v” viÖc l−u trĂ· trÂȘn vËt dÉn ngo”i ŸÚi vĂ­i Linux. NĂ©i dung cña tËp tin ¼−üc chĂža trong vĂŻng dĂ· liÖu cña hÖ thĂšng tËp tin v” ¼−üc ph©n chia cžc khĂši dĂ· liÖu (nĂ©i dung tËp tin) v” h×nh ¶nh ph©n bĂš nĂ©i dung tËp tin cĂŁ trong mĂ©t inode t−¬ng Ăžng. LiÂȘn kÕt ¼Õn tËp hĂźp cžc khĂši dĂ· liÖu n”y l” mĂ©t inode, chØ th«ng qua inode mĂ­i cĂŁ thÓ l”m viÖc vĂ­i dĂ· liÖu tÂči cžc khĂši dĂ· liÖu: Inode chĂža dĂčng th«ng tin vÒ tËp hĂźp cžc khĂši dĂ· liÖu nĂ©i dung tËp tin. CĂŁ thÓ quan niÖm r»ng, tËp hĂźp bao gĂ„m inode v” tËp cžc khĂši dĂ· liÖu nh− vËy l” mĂ©t tËp tin vËt lĂœ: inode cĂŁ th«ng tin