More Related Content Similar to Linux giaotrinh
Similar to Linux giaotrinh (20) More from Integrated Circuit Design Research & Education Center (ICDREC)
More from Integrated Circuit Design Research & Education Center (ICDREC) (20) Linux giaotrinh1. 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