www.nhipsongcongnghe.net
I HC QUC GIA HÀ NI
TRNG I HC CÔNG NGH
=====================================
HÀ QUANG THY
NGUYN TRÍ THÀNH
Giáo trình:
H IU HÀNH UNIX - LINUX
Dành cho sinh viên ngành Công ngh thông tin,
in t - Vin thông, Toán tin ng dng
HÀ NI - 2004
2
MC LC
LI GII THIU ..................................................................................................... 9
CHƠNG 1. GII THIU CHUNG V LINUX...................................................... 10
1.1. Gii thiu v UNIX và Linux...................................................................................... 10
1.1.1. Xut x, quá trình tin hóa và mt s c trưng ca h iu hành UNIX ......... 10
1.1.2. Gii thiu sơ b v Linux................................................................................... 13
1.2. Sơ b v các thành phn ca Linux ........................................................................... 17
1.2.1. Sơ b v nhân ..................................................................................................... 18
1.2.2. Sơ b v shell ..................................................................................................... 18
1.3. Gii thiu v s dng lnh trong Linux..................................................................... 20
1.3.1. Các quy ưc khi vit lnh................................................................................... 22
1.3.3. Làm ơn gin thao tác gõ lnh ........................................................................... 25
1.3.4. Tip ni dòng lnh.............................................................................................. 29
1.4. Trang Man ................................................................................................................... 29
CHƠNG 2. THAO TÁC VI H THNG........................................................... 32
2.1. Quá trình khi ng Linux......................................................................................... 32
2.2. Th tc ng nhp và các lnh thoát khi h thng ................................................ 33
2.2.1. ng nhp........................................................................................................... 33
2.2.2. Ra khi h thng................................................................................................. 36
2.2.3. Khi ng li h thng ....................................................................................... 38
2.2.4. Khi ng vào ch   ho............................................................................. 38
2.3. Lnh thay i mt khu.............................................................................................. 42
2.4. Lnh xem, thit t ngày, gi hin ti và xem lch trên h thng ........................... 45
2.4.1 Lnh xem, thit t ngày, gi.............................................................................. 45
2.4.2. Lnh xem lch .................................................................................................... 47
2.5. Xem thông tin h thng .............................................................................................. 48
2.6. Thay i ni dung du nhc shell .............................................................................. 49
2.7. Lnh gi ngôn ng tính toán s hc .......................................................................... 50
CHƠNG 3. H THNG FILE ............................................................................. 53
3.1 Tng quan v h thng file........................................................................................... 53
3.1.1. Mt s khái nim................................................................................................ 53
3.1.2. Sơ b kin trúc ni ti ca h thng file............................................................. 57
3.1.3. Mt s thut toán làm vic vi inode ................................................................. 63
3.1.4. H tr nhiu h thng File.................................................................................. 66
3.1.5. Liên kt tưng trưng (lnh ln) ............................................................................ 71
3
3.2 Quyn truy nhp thư mc và file ................................................................................ 72
3.2.1 Quyn truy nhp .................................................................................................. 72
3.2.2. Các lnh cơ bn .................................................................................................. 75
3.3 Thao tác vi thư mc.................................................................................................... 80
3.3.1 Mt s thư mc c bit ...................................................................................... 80
3.3.2 Các lnh cơ bn v thư mc ................................................................................ 83
3.4. Các lnh làm vic vi file ............................................................................................ 87
3.4.1 Các kiu file có trong Linux................................................................................ 87
3.4.2. Các lnh to file.................................................................................................. 88
3.4.3 Các lnh thao tác trên file.................................................................................... 90
3.4.4 Các lnh thao tác theo ni dung file .................................................................... 98
3.4.5 Các lnh tìm file ................................................................................................ 106
3.5 Nén và sao lưu các file ................................................................................................ 115
3.5.1 Sao lưu các file (lnh tar) .................................................................................. 115
3.5.2 Nén d liu ....................................................................................................... 118
CHƠNG 4. QUN TR QUÁ TRÌNH................................................................. 122
4.1 Quá trình trong UNIX................................................................................................ 122
4.1.1. Sơ b v quá trình............................................................................................. 122
4.1.2. Sơ b cu trúc iu khin ca UNIX................................................................ 123
4.1.3. Các h thng con trong nhân............................................................................ 125
4.1.4. Sơ b v iu khin quá trình........................................................................... 129
4.1.5. Trng thái và chuyn dch trng thái ................................................................ 130
4.1.6. S ngưng hot ng và hot ng tr li ca quá trình.................................... 132
4.1.7. Sơ b v lnh i vi quá trình ........................................................................ 132
4.2. Các lnh cơ bn.......................................................................................................... 133
4.2.1. Lnh fg và lnh bg............................................................................................ 133
4.2.2. Hin th các quá trình ang chy vi lnh ps ................................................... 135
4.2.3. Hy quá trình vi lnh kill ............................................................................... 137
4.2.4. Cho máy ngng hot ng mt thi gian vi lnh sleep.................................. 139
4.2.5. Xem cây quá trình vi lnh pstree.................................................................... 139
4.2.6. Lnh thit t li  ưu tiên ca quá trình nice và lnh renice......................... 141
CHƠNG 5. QUN LÝ TÀI KHON NGI DÙNG......................................... 142
5.1 Tài khon ngưi dùng................................................................................................ 142
5.2 Các lnh cơ bn qun lý ngưi dùng ........................................................................ 142
5.2.1 File /etc/passwd ................................................................................................ 143
5.2.2 Thêm ngưi dùng vi lnh useradd................................................................... 143
5.2.3 Thay i thuc tính ngưi dùng ........................................................................ 146
5.2.4 Xóa b mt ngưi dùng (lnh userdel).............................................................. 147
4
5.3 Các lnh cơ bn liên quan n nhóm ngưi dùng ................................................... 148
5.3.1 Nhóm ngưi dùng và file /etc/group ................................................................. 148
5.3.2 Thêm nhóm ngưi dùng .................................................................................... 149
5.3.3 S!a i các thuc tính ca mt nhóm ngưi dùng (lnh groupmod) ................ 149
5.3.4 Xóa mt nhóm ngưi dùng (lnh groupdel)...................................................... 150
5.4 Các lnh cơ bn khác có liên quan n ngưi dùng................................................ 150
5.4.1 ng nhp vi tư cách mt ngưi dùng khác khi dùng lnh su ....................... 150
5.4.2 Xác nh ngưi dùng ang ng nhp (lnh who) ............................................ 151
5.4.3 Xác nh các quá trình ang ưc tin hành (lnh w)....................................... 153
CHƠNG 6. TRUYN THÔNG VÀ MNG UNIX-LINUX................................... 154
6.1. Lnh truyn thông ..................................................................................................... 154
6.1.1. Lnh write......................................................................................................... 154
6.1.2. Lnh mail.......................................................................................................... 155
6.1.3. Lnh talk........................................................................................................... 156
6.2 Cu hình Card giao tip mng .................................................................................. 156
6.3. Các dch v mng ...................................................................................................... 159
6.3.1 H thông tin mng NIS...................................................................................... 159
6.4 H thng file trên mng ............................................................................................. 164
6.4.1 Cài t NFS ....................................................................................................... 165
6.4.2 Khi ng và dng NFS.................................................................................... 166
6.4.3 Cu hình NFS server và Client.......................................................................... 167
6.4.4 S! dng mount................................................................................................... 167
6.4.5 Unmount............................................................................................................ 168
6.4.6 Mount t ng qua tp cu hình........................................................................ 168
CHƠNG 7. LP TRÌNH SHELL VÀ LP TRÌNH C TRÊN LINUX ................... 170
7.1. Cách thc pipes và các yu t cơ bn lp trình trên shell ..................................... 170
7.1.1. Cách thc pipes ................................................................................................ 170
7.1.2. Các yu t cơ bn  lp trình trong shell ........................................................ 171
7.2. Mt s lnh lp trình trên shell ................................................................................ 175
7.2.1. S! dng các toán t! bash.................................................................................. 175
7.2.2. iu khin lung .............................................................................................. 179
7.2.3 Các toán t! nh hưng vào ra........................................................................... 193
7.2.4. Hin dòng vn bn............................................................................................ 194
7.2.5. Lnh read c d liu cho bin ngưi dùng..................................................... 194
7.2.6. Lnh set ............................................................................................................ 195
7.2.7. Tính toán trên các bin ..................................................................................... 196
7.2.8. Chương trình ví d............................................................................................ 196
5
7.3. Lp trình C trên UNIX ............................................................................................. 197
7.3.1. Trình biên dch gcc........................................................................................... 197
7.3.2. Công c GNU make ......................................................................................... 201
7.3.3. Làm vic vi file............................................................................................... 203
7.3.4. Thư vin liên kt............................................................................................... 211
7.3.5 Các công c cho thư vin ................................................................................. 220
TÀI LIU THAM KHO ...................................................................................... 223
CHÚ THÍCH MT S THUT NG ................................................................... 224
PH LC A. QUÁ TRÌNH CÀI T REDHAT-LINUX ........................................ 227
AA. Cài t phiên bn RedHat 6.2 ................................................................................. 228
AA.1. To "a mm khi ng................................................................................... 228
AA.2. Phân vùng li #"a DOS/Windows hin thi.................................................. 228
AA.3. Các bưc cài t (bn RedHat 6.2 và khi ng t CD-ROM)....................... 229
AA.4. Các hn ch v ph$n cng i vi Linux ........................................................ 239
PH LC B. TRÌNH SON THO VIM .............................................................. 242
B.1 Khi ng vim............................................................................................................ 244
B.1.1 M chương trình son tho vim........................................................................ 244
B.1.2. Tính nng m nhiu c!a s .............................................................................. 245
B.1.3. Ghi và thoát trong vim..................................................................................... 246
B.2. Di chuy n tr son tho trong Vim ......................................................................... 247
B.2.1. Di chuyn trong vn bn.................................................................................. 247
B.2.2. Di chuyn theo các i tưng vn bn............................................................. 248
B.2.3. Cun màn hình................................................................................................. 248
B.3. Các thao tác trong vn bn ...................................................................................... 249
B.3.1. Các lnh %&'n vn bn trong vim..................................................................... 249
B.3.2. Các lnh xoá vn bn trong vim ...................................................................... 250
B.3.3. Các lnh khôi phc vn bn trong vim ............................................................ 250
6.3.4. Các lnh thay th vn bn trong vim................................................................ 250
B.3.5. Sao chép và di chuyn vn bn trong vim ....................................................... 252
B.3.6. Tìm kim và thay th vn bn trong vim......................................................... 253
B.3.7. ánh du trong vim ......................................................................................... 254
B.3.8. Các phím s! dng trong ch  %&'n............................................................... 255
B.3.9. Mt s lnh trong ch  o............................................................................. 256
B.3.10. Các lnh lp ................................................................................................... 256
B.4. Các lnh khác ............................................................................................................ 257
B.4.1. Cách thc hin các lnh bên trong Vim........................................................... 257
B.4.2. Các lnh liên quan n file............................................................................... 257
6
PH LC C. MIDNIGHT COMMANDER ............................................................ 259
C.1. Gii thiu v Midnight Commander (MC) ............................................................ 259
C.2. Khi ng MC .......................................................................................................... 259
C.3. Giao din ca MC..................................................................................................... 259
C.4. Dùng chut trong MC .............................................................................................. 260
C.5. Các thao tác bàn phím.............................................................................................. 261
C.6. Th!c ơn thanh ngang (menu bar)......................................................................... 263
C.7. Các phím chc nng ................................................................................................. 266
C.8. B son tho ca Midnight Commander................................................................ 267
PH LC D. SAMBA.......................................................................................... 270
D.1 Cài t Samba............................................................................................................ 270
D.2 Các thành phn ca Samba ...................................................................................... 271
D.3 File cu hình Samba .................................................................................................. 272
D.4 Các phn c bit ca file cu hình Samba............................................................. 275
D.5 Qun lý ngưi dùng trong Samba............................................................................ 282
D.6 Cách s dng Samba t" các máy trm.................................................................... 284
D.6.1 Cách s! dng t các máy trm là Linux........................................................... 284
D.6.2 Cách s! dng t các máy trm là Windows ..................................................... 287
7
LI GII THIU
Trong hơn mưi nm tr li ây h iu hành Linux ã
8
CHƠNG 1. GII THIU CHUNG V LINUX
1.1. Gii thiu v UNIX và Linux
1.1.1. Xut x, quá trình tin hóa và mt s c trưng ca h iu hành UNIX
Nm 1965, Vin công ngh Massachusetts (MIT: Massachusetts Institute of
Technology) Phòng thí nghim Bell ca hãng AT&T thc hin d án xây dng mt h
iu hành tên g(i Multics (MULTiplexed Information and Computing Service) vi
mc tiêu: to lp ưc mt h iu hành ph trên vùng lãnh th #rng (hot ng trên tp
các máy tính ưc kt ni), a ngưi dùng, nng lc cao v tính toán lưu tr. D án
nói trên thành công mc  ht sc khiêm tn ngưi ta ã bit n mt s khim
khuyt khó kh)c phc ca Multics.
Nm1969, Ken Thompson, mt chuyên viên ti phòng thí nghim Bell, ngưi ã tham
gia d án Multics, cùng Dennics Richie vit li h iu hành a-bài toán trên máy PDP-7
vi tên là UNICS (UNiplexed Information and Computing Service) t mt câu g(i ùa ca
mt ng nghip. Trong h iu hành UNICS, mt s khi tho $u tiên v H thng file
ã ưc Ken Thompson và Dennis Ritchie thc hin. n nm 1970 h iu hành ưc vit
trên assembler cho máy PDP-11/20 và mang tên là UNIX.
Nm 1973, Riche Thompson vit li nhân ca h iu hành UNIX trên ngôn ng C,
h iu hành ã tr nên d*#dàng cài t ti các loi máy tính khác nhau; tính cht như
th ưc g(i là tính kh chuyn (portable) ca UNIX. Trưc ó, khong nm 1971, h iu
hành ưc th hin trên ngôn ng B (mà da trên ngôn ng B, Ritche ã phát trin thành
ngôn ng C).
Hãng AT&T ph #bin chương trình ngun UNIX ti các trưng i h(c, các công ty
thương mi và chính ph vi giá không áng k.
Nm 1982, h thng UNIX-3 là bn UNIX thương mi $u tiên ca AT&T.
Nm 1983, AT&T gii thiu H thng UNIX-4 phiên bn th nht trong ó ã trình
son tho vi, thư vin qun màn nh ưc phát trin t i h(c T ng hp California,
Berkley.
Giai on 1985-1987, UNIX-5 phiên bn 2 3 tương ng ưc ưa ra vào các nm
1985 và 1987. Trong giai on này, có khong 100000 bn UNIX ã ưc ph #bin trên th
gii, cài t t máy vi tính n các h thng ln.
$u thp +,#1990. UNIX-5 phiên bn 4 ưc ưa ra như mt chu-n ca UNIX. ây
là s kt hp ca các bn sau:
AT&T UNIX-5 phiên bn 3,
Berkley Software Distribution (BSD),
XENIX ca MicroSoft
SUN OS
th tìm thy các ni dung liên quan ti mt s phiên bn mi ca UNIX ti a ch.
website http://problem.rice.edu/.
Các nhóm ncung cp khác nhau v UNIX ang hot ng trong thi gian hin nay
ưc k n như sau:
Unix International (vit t)t UI). UI mt t #chc gm các nhà cung cp
thc hin vic chuyn nhưng h thng UNIX-5 cung cp bn AT&T theo các
9
nhu c$u thông báo phát nh mi, ch/ng hn như iu ch.nh bn quyn. Giao
din #h(a ngưi dùng là Open Look.
Open Software Foundation (OSF). OSF ưc h tr bi IBM, DEC, HP ...
theo hưng phát trin mt phiên bn ca Unix nh0m tranh ua vi h thng UNIX-5
phiên bn 4. Phiên bn này tên OSF/1 vi giao din #h(a ngưi dùng ưc
g(i là MOTIF.
Free SoftWare Foundation (FSF): mt cng ng do Richard Stallman khi
xưng nm 1984 ch trương phát hành các ph$n mm s! dng t do, trên cơ s mt
h iu hành thuc loi UNIX.
Bng sau ây lit mt s cài t UNIX khá ph #bin (thưng thy ch X cui
tên g(i ca H iu hành):
Tên h Nhà cung cp Nn phát trin
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
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 lit kê mt s c trưng ca h iu hành UNIX:
H iu hành ưc vit trên ngôn ng bc cao; bi vy, rt d*#(c, d*#hiu,
d*#thay i  cài t trên loi máy mi (tính d*#mang chuyn, như ã nói),
giao din ngưi dùng ơn gin  nng lc cung cp c dch v
ngưi dùng mong mun (so sánh vi các h iu hành t trưc ó thì giao din
ca UNIX là mt tin b vưt bc),
Tha mãn nguyên t)c xây dng các chương trình phc tp t nhng chương
trình ơn gin hơn: trưc ht các un cơ bn nht ca nhân sau ó phát trin
 có toàn b h iu hành,
S! dng duy nht mt h thng File cu trúc cho phép d*#dàng bo qun
và s! dng hiu qu,
1
0
S! dng ph #bin mt dng ơn gin trình bày ni ti ca File như mt dòng
các byte cho phép d*#dàng khi vit các chương trình ng dng truy nhp, thao tác
vi các d liu trong File,
kt ni ơn gin vi thit b ngoi vi: các file thit b ã ưc t s1n
trong H thng File to ra mt kt ni ơn gin gia chương trình ngưi dùng vi
các thit b ngoi vi,
h iu hành a ngưi dùng, a quá trình, trong ó mi ngưi dùng
th thc hin các quá trình ca mình mt cách c lp.
M(i thao tác vào - ra ca h iu hành ưc thc hin trên h thng File:
mi thit b vào ra tương ng vi mt file. Chương trình ngưi dùng làm vic vi
file ó không c$n quan tâm c th tên file ó ưc t cho thit b nào trong h
thng.
Che khut cu trúc máy i vi ngưi dùng, m bo tính c lp tương i
ca chương trình i vi d liu ph$n cng, to iu kin thun li hơn cho
ngưi lp trình khi vit các chương trình chy UNIX vi các iu kin ph$n cng
hoàn toàn khác bit nhau.
1.1.2. Gii thiu sơ b v Linux
Linus Tovalds (mt sinh viên Ph$n lan) ưa ra nhân (phiên bn $u tiên) cho h iu hành
Linux vào tháng 8 nm 1991 trên cơ s ci tin mt phiên bn UNIX có tên Minix do Giáo
sư Andrew S. Tanenbaum y dng ph bin. Nhân Linux tuy nh song t óng gói.
Kt hp vi các thành ph$n trong h thng GNU, h iu hành Linux ã ưc hình thành.
c2ng t thi im ó, theo tư tưng GNU, hàng nghìn, hàng vn chuyên gia trên toàn
th gii (nhng ngưi này hình thành nên cng ng Linux) ã tham gia vào quá trình phát
trin Linux và vì vy Linux ngày càng áp ng nhu c$u ca ngưi dùng.
Dưi ây mt s mc thi gian quan tr(ng trong quá trình hình thành phát trin h
iu hành Linux.
Sau ba nm nhân Linux ra i, n ngày 14-3-1994, h iu hành Linux phiên bn
1.0 ưc ph bin. Thành công ln nht ca Linux 1.0 ã h tr giao thc mng
TCP/IP chu-n UNIX, sánh vi giao thc socket BSD- tương thích cho lp trình mng.
Trình iu khin thit b ã ưc b sung  chy IP trên mt mng Ethernet hoc trên
tuyn ơn hoc qua modem. H thng file trong Linux 1.0 ã vưt xa h thng file ca
Minix thông thưng, ngoài ra ã h tr iu khin SCSI truy nhp "a tc  cao. iu
khin b nh o ã ưc m rng h tr iu khin trang cho các file swap ánh x
b nh ca file c quyn (ch. mt ánh x b nh ch. (c ưc thi hành trong Linux
1.0).
Vào tháng 3-1995, nhân 1.2 ưc ph bin. iu áng k ca Linux 1.2 so vi
Linux 1.0 ch h tr mt phm vi rng phong phú ph$n cng, bao gm c kin
trúc tuyn ph$n cng PCI mi. Nhân Linux 1.2 nhân kt thúc dòng nhân Linux ch. h
tr PC.
Mt iu c$n lưu ý v c ánh ch. s các dòng nhân (h iu hành) Linux. H thng
ch. s ưc chia thành mt s mc, ch/ng hn hai mc như 2.4 hoc ba mc như 2.2.5.
Trong cách ánh ch. s như vy, quy ưc r0ng vi các ch. s t mc th hai tr i, nu
là s ch1n thì dòng nhân ó ã khá n nh và tương i hoàn thin, còn nu là s l3 thì
dòng nhân ó v4n ang ưc phát trin tip.
1
1
Tháng 6-1996, nhân Linux 2.0 ưc ph bin. hai c trưng n i bt ca Linux
2.0 h tr kin trúc phc hp, bao gm c c ng Alpha 64-bit $y , h tr kin
trúc a b x! lý. Phân phi nhân Linux 2.0 c2ng thi hành ưc trên b x! Motorola
68000 kin trúc SPARC ca SUN. Các thi hành ca Linux da trên vi nhân GNU
Mach c2ng chy trên PC và PowerMac.
Ti nm 2000, nhân Linux 2.4 ưc ph bin. Mt trong c im ưc quan tâm
ca nhân này h tr t Unicode 32 bít, rt thun li cho vic xây dng các
gii pháp toàn din trit  i vi vn  ngôn ng t nhiên trên phm vi toàn th
gii.
Vn  phân phi và giy phép Linux
V thuyt, m(i ngưi th khi to mt h thng Linux b0ng cách tip nhn bn mi
nht các thành ph$n c$n thit t các site ftp biên dch chúng. Trong thi k5 $u tiên,
ngưi dùng Linux phi tin hành toàn b các thao tác này và vì vy công vic là khá vt v.
Tuy nhiên, do s tham gia ông o ca các nhân nhóm phát trin Linux, ã tin
hành thc hin nhiu gii pháp nh0m làm cho ng vic khi to h thng 6 vt v. Mt
trong nhng gii pháp in hình nht cung cp tp các gói chương trình ã tin dch,
chu-n hóa.
Nhng tp hp như vy hay nhng bn phân phi ln hơn nhiu so vi h thng Linux
cơ s. Chúng thưng bao gm các tin ích b sung cho khi to h thng, c thư vin
qun lý, c2ng như nhiu gói ã ưc tin dch, s1n sàng khi to ca nhiu b công c
UNIX dùng chung, ch/ng hn như phc v tin, trình duyt web, công c x! lý, son tho
vn bn và thm chí các trò chơi.
Cách thc phân phi ban $u rt ơn gin song ngày càng ưc nâng cp hoàn thin
b0ng phương tin qun gói tiên tin. Các bn phân phi ngày nay bao gm các cơ s d
liu tin hóa gói, cho phép các gói d* dàng ưc khi to, nâng cp và loi b.
Nhà phân phi $u tiên thc hin theo phương châm này Slakware, và chính h( là nhng
chuyn bin mnh m7 trong cng ng Linux i vi công vic qun lý gói khi to Linux.
Tin ích qun gói RPM (RedHat Package Manager) ca công ty RedHat mt trong
nhng phương tin in hình.
Nhân Linux ph$n mm t do ưc phân phi theo Giy phép s hu công cng ph$n
mm GNU GPL.
Các thành phn tích h#p H iu hành Linux
Linux s! dng rt nhiu thành ph$n t D án ph$n mm t do GNU, t h iu hành BSD
ca i h(c Berkeley và t h thng X-Window ca MIT.
Thư vin h thng chính ca Linux ưc b)t ngun t D án GNU, sau ó ưc rt nhiu
ngưi trong cng ng Linux phát trin tip, nhng phát trin tip theo như vy ch yu
liên quan ti vic gii quyt các vn  như thiu v)ng a ch. (li trang), thiu hiu qu
g6 ri. Mt s thành ph$n khác ca D án GNU, ch/ng hn như trình biên dch GNU C
(gcc), vn là cht lưng cao nên ưc s! dng nguyên xy trong Linux.
Các tool qun mng ưc b)t ngun t 4.3BSD song sau ó ã ưc cng ng
Linux phát trin, ch/ng hn như thư vin toán h(c ng x! du chm ng Intel các
trình iu khin thit b ph$n cng âm thanh PC. Các tool qun mng này sau ó li
ưc b sung vào h thng BSD.
1
2
H thng Linux ưc duy trì g$n như bi mt mng lưi không cht ch7 các nhà phát trin
ph$n mm cng tác vi nhau qua Internet, mng lưi này gm các nhóm nh nhân
chu trách nhim duy trì tính toàn v8n ca tng thành ph$n. Mt lưng nh các site phân
cp ftp Internat công cng ã óng vai trò nhà kho theo chu-n de facto  cha các thành
ph$n này. Tài liu Chu-n phân cp h thng file (File System Hierarchy Standard) ưc
cng ng Linux duy trì nh0m gi tính tương thích xuyên qua s khác bit rt ln gia các
thành ph$n h thng.
Mt s c i m chính ca Linux
Dưi ây trình bày mt s c im chính ca ca h iu hành Linux hin ti:
Linux tương thích vi nhiu h iu hành như DOS, MicroSoft Windows ...:
Cho phép cài t Linux cùng vi các h iu hành khác trên cùng mt cng. Linux
th truy nhp n các file ca các h iu hành cùng mt "a. Linux cho phép chy
mô phng các chương trình thuc các h iu hành khác.
Do gi ưc chu-n ca UNIX nên s chuyn i gia Linux các h UNIX khác
là d* dàng.
Linux mt h iu hành UNIX tiêu biu vi các c trưng a ngưi dùng, a
chương trình và a x! lý.
Linux giao din  ho (GUI) tha hưng t h thng X-Window. Linux h tr
nhiu giao thc mng, b)t ngun phát trin t dòng BSD. Thêm vào ó, Linux còn h
tr tính toán thi gian thc.
Linux khá mnh và chy rt nhanh ngay c khi nhiu quá trình hoc nhiu c!a s .
Linux ưc cài t trên nhiu chng loi máy tính khác nhau như PC, Mini vic
cài t khá thun li. Tuy nhiên, hin nay chưa xut hin Linux trên máy tính ln
(mainframe).
Linux ngày càng ưc h tr bi các ph$n mm ng dng b sung như son tho,
qun lý mng, qun tr cơ s d liu, bng tính ...
Linux h tr tt cho tính toán song song và máy tính cm (PC-cluster) là mt hưng
nghiên cu trin khai ng dng nhiu trin v(ng hin nay.
mt h iu hành vi ngun m, ưc phát trin qua cng ng ngun m
(bao gm c Free Software Foundation) nên Linux phát trin nhanh. Linux mt trong
mt s ít các h iu hành ưc quan tâm nhiu nht trên th gii hin nay.
Linux mt h iu hành h tr a ngôn ng mt cách toàn din nht. Do Linux
cho phép h tr các b chu-n t 16 bit tr lên (trong ó các b ISO10646,
Unicode) cho nên vic bn a hóa trên Linux là trit  nht trong các h iu hành.
Tuy nhiên c2ng tn ti mt s khó khn làm cho Linux chưa thc s tr thành mt h iu
hành ph dng, dưi ây là mt s khó khn in hình:
Tuy ã công c h tr i t, tuy nhiên, vic cài t Linux còn tương i phc
tp khó khn. Kh nng tương thích ca Linux vi mt s loi thit b ph$n cng n
thp do chưa có các trình iu khin cho nhiu thit b,
1
3
Ph$n mm ng dng chy trên nn Linux tuy ã phong phú song so vi mt s h
iu hành khác, c bit là khi so sánh vi MS Windows, thì v4n còn có khong cách.
Vi s h tr ca nhiu công ty tin h(c hàng $u th gii (IBM, SUN, HP ...) s tham
gia phát trin ca hàng vn chuyên gia trên toàn th gii thuc cng ng Linux, các khó
khn ca Linux ch)c ch)n s7 nhanh chóng ưc kh)c phc.
Chính vì l7 ó ã hình thành mt s nhà cung cp Linux trên th gii. Bng dưi ây
tên ca mt s nhà cung cp Linux có ting nht và a ch. website ca h(.
áng cý nht Red Hat Linux (ti M9) Red Flag Linux (ti Trung Quc). Red
Hat ưc coi lâu i tin cy, còn Red Flag là mt công ty Linux ca Trung quc,
quan h vi cng ng Linux Vit nam chúng ta th h(c hi mt cách trc tip kinh
nghim cho quá trình ưa Linux vào Vit 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 phn ca Linux
H thng Linux, ưc thi hành như mt h iu hành UNIX truyn thng, gm shell ba
thành ph$n (ã dng mã chương trình) sau ây:
- Nhân h iu hành chu trách nhim duy trì các i tưng tru tưng quan tr(ng ca h
iu hành, bao gm b nh o quá trình. Các un chương trình trong nhân ưc
c quyn trong h thng, bao gm c quyn thưng trc b nh trong.
- Thư vin h thng xác nh mt tp chu-n các hàm  các ng dng tương tác vi
nhân, và thi hành nhiu chc nng ca h thng nhưng không c$n có các c quyn ca
un thuc nhân. Mt h thng con in hình ưc thi hành da trên thư viên h
thng là h thng file Linux.
- Tin ích h thng các chương trình thi hành các nhim v qun riêng r7, chuyên
bit. Mt s tin ích h thng ưc g(i ra ch. mt l$n  khi ng và cu hình phương
tin h thng, mt s tin ích khác, theo thut ng UNIX ưc g(i trình chy ng$m
(daemon), có th chy mt cách thưng xuyên (thưng theo chu k5), iu khin các bài
toán như hưng ng các kt ni mng mi n, tip nhn yêu c$u logon, hoc cp nht
các file log.
Tin ích (hay lnh) có s1n trong h iu hành (dưi ây tin ích ưc coi là lnh thưng
trc). Ni dung chính yu ca tài liu này gii thiu chi tit v mt s lnh thông dng nht
ca Linux. H thng file s7 ưc gii thiu trong chương 3. Trong các chương sau 
cp ti nhiu ni dung liên quan n nhân shell, song dưi ây mt s nét sơ b v
chúng.
1
4
1.2.1. Sơ b v nhân
Nhân (còn ưc g(i h lõi) ca Linux, là mt b các môdun chương trình vai trò
iu khin các thành ph$n ca máy tính, phân phi các tài nguyên cho ngưi dùng (các quá
trình ngưi dùng). Nhân chính c$u ni gia chương trình ng dng vi ph$n cng.
Ngưi dùng s! dng bàn phím ni dung yêu c$u ca mình yêu c$u ó ưc nhân g!i
ti shell: Shell phân tích lnh và g(i các chương trình tương ng vi lnh  thc hin.
Mt trong nhng chc nng quan tr(ng nht ca nhân là gii quyt bài toán lp lch, tc
là h thng c$n phân chia CPU cho nhiu quá trình hin thi cùng tn ti. i vi Linux, s
lưng quá trình th lên ti con s hàng nghìn. Vi s lưng quá trình ng thi nhiu
như vy, các thut toán lp lch c$n phi  hiu qu: Linux thưng lp lch theo ch 
Round Robin (RR) thc hin vic luân chuyn CPU theo lưng t! thi gian.
Thành ph$n quan tr(ng th hai trong nhân h thng các un chương trình (ưc
g(i li g(i h thng) làm vic vi h thng file. Linux hai cách thc làm vic vi các
file: làm vic theo byte (kí t) làm vic theo khi. Mt c im áng chú ý là file trong
Linux có th ưc nhiu ngưi cùng truy nhp ti nên các li g(i h thng làm vic vi file
c$n m bo vic file ưc truy nhp theo quyn và ưc chia x3 cho ngưi dùng.
1.2.2. Sơ b v shell
Mt s ni dung chi tit v shell (còn ưc g(i h v) trong Linux ưc trình bày
trong chương "Lp trình trên shell". Nhng ni dung trình bày dưi ây cung cp mt cách
nhìn sơ b v shell và vai trò ca nó trong hot ng chung ca h iu hành.
Ngưi dùng mong mun máy nh thc hin mt công vic nào ó thì c$n lnh th
hin yêu c$u ca mình  h thng áp ng yêu c$u ó. Shell b dch lnh hot ng
như mt kt ni trung gian gia nhân vi ngưi dùng: Shell nhn dòng lnh do ngưi dùng
ưa vào; t dòng lnh nói trên, nhân tách ra các b phn  nhn ưc mt hay mt s
lnh tương ng vi các on vn bn có trong dòng lnh. Mt lnh bao gm tên lnh
tham s: t $u tiên tên lnh, các t tip theo (nu có) là các tham s. Tip theo, shell s!
dng nhân  khi sinh mt quá trình mi (khi to quá trình) sau ó, shell ch i quá
trình con này tin hành, hoàn thin kt thúc. Khi shell s1n sàng tip nhn dòng lnh ca
ngưi dùng, mt du nh)c shell (còn g(i là du nh)c nhp lnh) xut hin trên màn hình.
Linux hai loi shell ph #bin là: C-shell (du nh)c %), Bourne-shell (du nh)c $)
mt s shell phát trin t các shell nói trên (ch/ng hn, TCshell - tcsh vi du nh)c ng$m
nh > phát trin t C-shell GNU Bourne - bash vi du nh)c bash # phát trin t
Bourne-shell). Du mi phân bit shell nói trên không phi hoàn toàn rõ ràng do Linux cho
phép ngưi dùng thay i li du nh)c shell nh vic thay giá tr các bin môi trưng PS1
PS2. Trong tài liu này, chúng ta s! dng hiu "hàng rào #"  biu th du nh)c
shell.
C-shell tên g(i như vy do cách vit lnh chương trình lnh Linux ta như
ngôn ng C. Bourne-shell mang tên tác gi ca Steven Bourne. Mt s lnh trong C-
shell (ch/ng hn lnh alias) không còn trong Bourne-shell vy  nhn bit h
thng ang làm vic vi shell nào, chúng ta gõ lnh:

Nu mt danh sách xut hin thì shell ang s! dng C-shell; ngưc li, nu xut hin
thông báo "Command not found" thì shell ó là Bourne-shell.
Lnh ưc chia thành 3 loi lnh:
1
5
Lnh thưng trc (có s1n ca Linux). Tuyt i a s lnh ưc gii thiu
trong tài liu này lnh thưng trc. Chúng bao gm các lnh ưc cha s1n trong
shell và các lnh thưng trc khác.
File chương trình ngôn ng máy: ch/ng hn, ngưi dùng vit trình trên ngôn
ng C qua b dch gcc (bao gm c trình kt ni link)  to ra mt chương trình
trên ngôn ng máy.
File chương trình shell (Shell Scrip).
Khi kt thúc mt dòng lnh c$n gõ phím ENTER  shell phân tích và thc hin lnh.
1.3. Gii thiu v s dng lnh trong Linux
Như ã gii thiu ph$n trên, Linux là mt h iu hành a ngưi dùng, a nhim,
ưc phát trin bi hàng nghìn chuyên gia Tin h(c trên toàn th gii nên h thng lnh
c2ng ngày càng phong phú; n thi im hin nay Linux có khong hơn mt nghìn lnh.
Tuy nhiên ch. khong vài chc lnh thông dng nht i vi ngưi dùng. Tài liu
này c2ng hn ch gii thiu khong vài chc lnh ó. Chúng ta ng e ngi v s lưng
lnh ưc gii thiu ch. chim mt ph$n nh trong tp hp lnh bi ây nhng lnh
thông dng nht chúng cung cp mt phm vi ng dng rng ln,  tha mãn u c$u
ca chúng ta.
C2ng như ã nói trên, ngưi dùng làm vic vi máy tính thông qua vic s! dng trm
cui: ngưi dùng ưa yêu c$u ca mình b0ng cách "lnh" t bàn phím giao cho h
iu 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 va óng vai trò trm cui,
va óng vai trò máy tính x! lý.
Dng t ng quát ca lnh Linux có th ưc vit như sau:
# <Tên lnh> [<các tham s>] 
trong ó:
Tên lnh mt dãy t, không du cách, biu th cho mt lnh ca
Linux hay mt chương trình. Ngưi dùng c$n h iu hành áp ng yêu c$u ca
mình thì phi ch(n úng tên lnh. Tên lnh là b)t buc phi có khi gõ lnh.
Các tham s th hoc không có, ưc vit theo quy nh ca lnh
chúng ta s! dng, nh0m cung cp thông tin v các i tưng mà lnh tác ng ti. Ý
ngh"a ca các du [, <, >, ] ưc gii thích ph$n quy t)c vit lnh.
Các tham s ưc phân ra thành hai loi: tham s khóa (sau ây thưng dùng là "tùy ch(n")
và tham s v trí. Tham s v trí thưng tên file, thư mc và thưng là các i tưng chu
s tác ng ca lnh. Khi gõ lnh, tham s v trí ưc thay b0ng nhng i tưng mà ngưi
dùng c$n hưng tác ng ti. Tham s khóa chính là nhng tham s iu khin hot ng
ca lnh theo các trưng hp riêng. Trong Linux, tham s khóa thưng b)t $u bi du tr
"-" hoc hai du tr liên tip "--". Khi lnh, c2ng ging như tên lnh, tham s khóa phi
ưc vit chính xác như trình bày trong t lnh. Mt lnh th mt s hoc rt
nhiu tham s khóa. Ph thuc vào yêu c$u c th ca mình, ngưi dùng th ch(n mt
hoc mt s các tham s khóa khi lnh. Trong t lnh, thưng xut hin thut ng
tùy-chn. Tùy ch(n lnh (thc cht tham s khóa) cho phép iu ch.nh hot ng ca
lnh trong Linux, làm cho lnh tính ph #dng cao. Tu5 ch(n lnh cho phép lnh th
áp ng ý mun ca ngưi dùng i vi h$u ht (tuy không phi lúc nào c2ng vy) các tình
hung t ra cho thao tác ng vi lnh.
1
6
hiu "" biu th vic phím ht dòng <Enter>.  kt thúc mt yêu
c$u, ngưi dùng nht thit phi gõ phím "".
Ví d, khi ngưi dùng gõ lnh xem thông tin v các file:


trong lnh này:
ls tên lnh thc hin vic ưa danh sách các tên file/ thư mc con trong
mt thư mc,
-l tham s khóa, cho bit yêu c$u xem $y  thông tin v các i tưng
hin ra. Chú ý, trong tham s khóa ch cái (ch "l") phi i ngay sau du tr "-".
Tương ng vi lnh ls còn các tham s khóa -a, -L, ... chúng c2ng các tùy
ch(n lnh. Trong mt s tham s khóa nhiu ch cái thay cho mt du "-" hai
du "--" $u tham s. Ví d, như trưng hp tham s --file ca lnh date.
g* tham s v trí ch. ngưi dùng c$n xem thông tin v các file tên
g(i b)t $u là ch cái "g".
Trong tài liu này, quy ưc r0ng khi vit mt lnh (trong t lnh lnh) thì
không c$n phi vit du "" cui dòng lnh ó, song luôn ghi nh r0ng phím ENTER
("") là b)t buc khi gõ lnh.
Lu ý:
Linux (và UNIX nói chung) ưc xây dng trên ngôn ng lp trình C, vì vy
khi lnh phi phân bit ch thưng vi ch hoa. Ngoi tr mt s ngoi l, trong
Linux chúng ta thy ph #bin là:
Các tên lnh là ch thưng,
Mt s tham sthch thưng hoc ch hoa (ví d, trong lnh date
v thi gian h thng thì hai tham s -r -R ý ngh"a hoàn toàn khác
nhau). Tên các bin môi trưng c2ng thưng dùng ch hoa.
Trong tài liu này, ti nhng dòng vn bn di*n gii, s! dng cách vit tên
lnh, các tham s khóa b0ng kiu ch không chân, m như date, -R, -r ...
Linux phân bit siêu ngưi dùng (ting Anh superuser hoc root, còn
ưc g(i ngi qun tr hay ngi dùng ti cao hoc siêu ngi dùng) vi
ngưi dùng thông thưng. Trong tp hp lnh ca Linux, có mt s lnh mà ch. siêu
ngưi dùng mi ưc phép s! dng còn ngưi dùng thông thưng thì không ưc
phép (d như lnh adduser thc hin vic b #sung thêm ngưi dùng). Mt khác
trong mt s lnh, vi mt s tham s khóa thì ch. siêu ngưi dùng ưc phép dùng,
còn vi mt s tham s khác thì m(i ngưi dùng u ưc phép (ví d như lnh
passwd thay i mt kh-u ngưi dùng).
Mt dòng lnh th nhiu hơn mt lnh, trong ó lnh sau ưc ngn
cách bi vi lnh i ngay trưc b0ng du ";" hoc du "|". Ví d v mt s dòng lnh
dng này:
# ls -l; date
# head Filetext | sort >temp
Sau khi ngưi dùng xong dòng lnh, shell tip nhn dòng lnh này
phân tích ni dung vn bn ca lnh. Nu lnh ưc úng thì ưc thc hin;
ngưc li, trong trưng hp sai sót khi lnh thì shell thông báo v sai sót
1
7
du nh)c shell li hin ra  ch lnh tip theo ca ngưi dùng. V ph #bin, nu
như sau khi ngưi dùng lnh, không thy thông báo sai sót hin ra thì ngh"a
lnh ã ưc thc hin mt cách bình thưng.
Trưc khi i vào ni dung chi tit các lnh thông dng, chúng ta xem xét v mt s quy
nh dùng trong mô t lnh ưc trình bày trong tài liu này.
1.3.1. Các quy ưc khi vit lnh
Trong tài liu này, các lnh ưc trình bày theo mt b quy t)c pháp nht quán. B
quy t)c này cho phép phân bit trong mi lnh các thành ph$n nào b)t buc phi có, các
thành ph$n nào th hoc không ... Dưi ây là ni dung ca các quy t)c trong b quy
t)c ó.
Tên lnh b)t buc, phi t $u tiên trong bt k5 lnh nào, phi ưc
úng như khi mô t lnh.
Tên khái nim ưc n0m trong cp du ngoc quan h (< >) biu th cho
mt lp i tưng tham s b)t buc phi có. Khi lnh thì tên khái nim (
th ưc coi "tham s hình thc") phi ưc thay th b0ng mt t (thưng tên
file, tên thư mc ... th ưc coi "tham s thc s")  ch. i tưng liên
quan n thao tác ca lnh.
Ví d, mô t cú pháp ca lnh more xem ni dung file là
# more <file>
thì t more tên lnh, còn <file> tham s trong ó file tên khái nim tham s
b)t buc phi có. Lnh này c ng hin lên màn hình theo cách thc cun ni dung
ca file vi tên ã ch. trong lnh.
 xem ni dung file có tên là temp, ngưi dùng gõ lnh:
# more temp
Như vy, tên lnh more ưc úng như t pháp (c ni dung v trí) còn
"file" ã ưc thay th b0ng t "temp" là tên file mà ngưi dùng mun xem ni dung.
Các b phn n0m gia cp du ngoc vuông [ ] th hoc không
gõ c2ng ưc.
Ví d, cú pháp ca lnh halt
# halt [tùy-chn]
Vi các tùy ch(n -w, -n, -d, -f, -i mi tùy ch(n cho mt cách thc hot ng
khác nhau ca lnh halt. Lnh halt tác ng chính làm ngng hot ng ca h iu
hành, tuy nhiên khi ngưi dùng mun mt cách hot ng nào ó ca lnh này thì s7
ch(n mt (hoc mt s) tu5 ch(n lnh tương ng. Mt s cách gõ lnh halt ca ngưi dùng
như sau ây là úng cú pháp:
# halt
# halt -w
# halt -n
# halt -f
Các giá tr trong cp | | trong ó các b phn cách nhau b0ng du s #
ng "|" cho bit c$n ch(n mt ch. mt trong các giá tr n0m gia hai du ngoc
ó.
1
8
d, khi gii thiu v tùy ch(n lnh ca lnh tail xem ph$n cui ni dung ca file,
chúng ta thy:
-f, --follow[={tên | c t}]
Như vy, sau tham s khóa --follow, nu xut hin thêm du b0ng "="
thì phi có hoc tên hoc c t. ây là trưng hp các ch(n la "loi tr nhau".
Du ba chm ... th hin vic lp li thành ph$n pháp i ngay trưc du
này, vic lp li ó th t không n nhiu l$n (không k chính thành ph$n
pháp ó). Cách thc này thưng ưc dùng vi các tham s như tên file.
Ví d, mô t lnh chown như sau:
chown [tùy-chn] <ch>[,[nhóm]]<file>...
Như vy trong lnh chownth không có hoc có mt s tùy ch(n lnh vàt mt
n nhiu tên file.
Các b phn trong t lnh, nu không n0m trong các cp du [ ], <>, { }
thì khi lnh thc s phi y úng như khi t (chú ý, quy t)c vit tên lnh
mt trưng hp riêng ca quy t)c này).
Vic kt hp các du ngoc vi nhau cho phép to ra cách thc s! dng quy
t)c t #hp các tham s trong lnh. Ví d, lnh more bình thưng có cú pháp là:
# more <file>
có ngh"a là thay <file> b0ng tên file c$n xem ni dung, nu kt hp thêm du ngoc vuông [
và ], tc là có dng sau (chính là dng t ng quát ca lnh more):
# more [<file>]
thì <file> nói chung phi trong lnh more, tuy nhiên trong mt s trưng hp th b
qua tham s file.
Lu ý:
i vi nhiu lnh, cho phép ngưi dùng tham s khóa kt hp tương
ng vi tùy_chn trong t lnh. Tham s khóa kt hp ưc vit theo cách -
<xâu-kí-t>, trong ó xâu-kí-t gm các ch cái trong tham s khóa. d,
trong mô t lnh in lch cal:
cal [tùy-chn] [tháng [nm] ]
ba tham s khóa -m, -j, -y. Khi lnh th mt t #hp nào ó t ba
tham s khóa này  ưc tình hung s! dng lnh theo ý mun. Ch/ng hn,
nu gõ lnh
cal -mj 3
thì lnh cal thc hin theo iu khin ca hai tham s khóa -m (ch(n Th Hai
ngày $u tu$n, thay cho ng$m nh Ch Nht) -j (hin th ngày trong
tháng dưi dng s ngày trong nm k t $u nm). vy, khi vit [tùy-ch(n]
trong mô t lnh biu th c vic s! dng tng tùy ch(n, nhiu tùy ch(n hoc kt
hp các tu5 ch(n.
Trong mt s lnh, hai tham s khóa cùng tương ng vi mt tình hung
thc hin lnh, trong ó mt tham s gm mt t còn tham s kia li mt t.
Tham s dài mt t tham s chu-n ca lnh, còn tham s mt t cách vit
ng)n g(n. Tham s chu-n dùng ưc trong m(i Linux khi phi  t
trong t.
1
9
Ví d, khi mô t lnh date có tùy ch(n:

như vy hai tham s -d--date=STRING có cùng ý ngh"a.
Ngoài nhng quy ưc trên ây, ngưi dùng ng quên mt quy nh cơ bn là c$n phân
bit ch hoa vi ch thưng khi gõ lnh.
1.3.3. Làm ơn gin thao tác gõ lnh
Vic s! dng bàn phím  nhp lnh tuy không phi mt công vic nng n, song
Linux còn cho phép ngưi dùng s! dng mt s cách thc  thun tin hơn khi lnh.
Mt s trong nhng cách thc ó là:
S! dng vic khôi phc dòng lnh,
S! dng các phím c bit,
S! dng các kí hiu thay th và phím <Tab>,
S! dng thay th alias,
S! dng chương trình lnh.
Cách thc s! dng chương trình lnh (shell script) s7 ưc gii thiu chi tit trong các
chương sau. Dưi ây, chúng ta xem xét cách thc s! dng vic khôi phc dòng lnh, phím
c bit và kí hiu thay th.
Cơ ch khôi phc dòng lnh
Linux cung cp mt cách thc c bit kh nng khôi phc lnh. Ti du nh)c shell:
Ngưi dùng s! dng các phím m2i tên lên/xung (/) trên bàn phím  nhn li các dòng
lnh ã ưc ưa vào trưc ây ti du nh)c shell, ch(n mt trong các dòng lnh ó và biên
tp li ni dung dòng lnh theo úng yêu c$u mi ca mình.
Ví d, ngưi dùng va gõ xong dòng lnh:
# ls -l tenfile*
sau ó mun lnh ls -l tentaptin tti du nh)c ca shell, ngưi dùng s! dng các
phím di chuyn lên () hoc xung ()  nhn ưc:
# ls -l tenfile*
dùng các phím t)t  di chuyn, xoá kí t (xem ph$n sau) ưc:
# ls -l ten
và gõ tip các kí t "taptin"  nhn ưc:
# ls -l tentaptin
chính là kt qu mong mun.
Trong trưng hp s lưng t thay th rt ít so vi s lưng t ca toàn dòng
lnh thì hiu qu ca cách thc này rt cao.
Lu ý:
Vic nhn liên tip các phím di chuyn lên () hoc xung () cho phép
ngưi dùng nhn ưc các dòng lnh ã t trưc không ch. dòng lnh mi
ưc gõ. Cách thc này tương t vi cách thc s! dng tin ích DOSKEY trong h
iu hành MS-DOS.

Preview text:

www.nhipsongcongnghe.net I H C QU C GIA HÀ N I TR NG I H C CÔNG NGH
===================================== HÀ QUANG TH Y NGUY N TRÍ THÀNH Giáo trình:
H I U HÀNH UNIX - LINUX
Dành cho sinh viên ngành Công ngh thông tin,
i n t - Vi n thông, Toán tin ng d ng HÀ N I - 2004 M C L C
L I GI I THI U ..................................................................................................... 9
CH
ƠNG 1. GI I THI U CHUNG V LINUX...................................................... 10
1.1. Gi i thi u v UNIX và Linux...................................................................................... 10

1.1.1. Xu t x , quá trình ti n hóa và m t s c trưng c a h i u hành UNIX ......... 10
1.1.2. Gi i thi u sơ b v Linux................................................................................... 13
1.2. Sơ b v các thành ph n c a Linux ........................................................................... 17
1.2.1. Sơ b v nhân ..................................................................................................... 18
1.2.2. Sơ b v shell ..................................................................................................... 18
1.3. Gi i thi u v s d ng l nh trong Linux..................................................................... 20
1.3.1. Các quy ư c khi vi t l nh................................................................................... 22
1.3.3. Làm ơn gi n thao tác gõ l nh ........................................................................... 25
1.3.4. Ti p n i dòng l nh.............................................................................................. 29
1.4. Trang Man ................................................................................................................... 29
CH
ƠNG 2. THAO TÁC V I H TH NG ........................................................... 32
2.1. Quá trình kh i ng Linux......................................................................................... 32
2.2. Th t c ng nh p và các l nh thoát kh i h th ng ................................................ 33
2.2.1.
ng nh p........................................................................................................... 33
2.2.2. Ra kh i h th ng................................................................................................. 36
2.2.3. Kh i ng l i h th ng ....................................................................................... 38
2.2.4. Kh i ng vào ch ho ............................................................................. 38
2.3. L nh thay i m t kh u .............................................................................................. 42
2.4. L nh xem, thi t t ngày, gi hi n t i và xem l ch trên h th ng ........................... 45

2.4.1 L nh xem, thi t t ngày, gi .............................................................................. 45
2.4.2. L nh xem l ch .................................................................................................... 47
2.5. Xem thông tin h th ng .............................................................................................. 48
2.6. Thay i n i dung d u nh c shell .............................................................................. 49
2.7. L nh g i ngôn ng tính toán s h c .......................................................................... 50
CH
ƠNG 3. H TH NG FILE ............................................................................. 53
3.1 T ng quan v h th ng file........................................................................................... 53

3.1.1. M t s khái ni m ................................................................................................ 53
3.1.2. Sơ b ki n trúc n i t i c a h th ng file............................................................. 57
3.1.3. M t s thu t toán làm vi c v i inode ................................................................. 63
3.1.4. H tr nhi u h th ng File.................................................................................. 66
3.1.5. Liên k t tư ng trưng (l nh ln) ............................................................................ 71 2
3.2 Quy n truy nh p thư m c và file ................................................................................ 72
3.2.1 Quy n truy nh p .................................................................................................. 72
3.2.2. Các l nh cơ b n .................................................................................................. 75
3.3 Thao tác v i thư m c.................................................................................................... 80
3.3.1 M t s thư m c c bi t ...................................................................................... 80
3.3.2 Các l nh cơ b n v thư m c ................................................................................ 83
3.4. Các l nh làm vi c v i file ............................................................................................ 87
3.4.1 Các ki u file có trong Linux................................................................................ 87
3.4.2. Các l nh t o file.................................................................................................. 88
3.4.3 Các l nh thao tác trên file.................................................................................... 90
3.4.4 Các l nh thao tác theo n i dung file .................................................................... 98
3.4.5 Các l nh tìm file ................................................................................................ 106
3.5 Nén và sao lưu các file ................................................................................................ 115
3.5.1 Sao lưu các file (l nh tar) .................................................................................. 115
3.5.2 Nén d li u ....................................................................................................... 118
CH ƠNG 4. QU N TR QUÁ TRÌNH................................................................. 122
4.1 Quá trình trong UNIX................................................................................................ 122

4.1.1. Sơ b v quá trình............................................................................................. 122
4.1.2. Sơ b c u trúc i u khi n c a UNIX................................................................ 123
4.1.3. Các h th ng con trong nhân ............................................................................ 125
4.1.4. Sơ b v i u khi n quá trình........................................................................... 129
4.1.5. Tr ng thái và chuy n d ch tr ng thái ................................................................ 130
4.1.6. S ngưng ho t ng và ho t ng tr l i c a quá trình.................................... 132
4.1.7. Sơ b v l nh i v i quá trình ........................................................................ 132
4.2. Các l nh cơ b n.......................................................................................................... 133
4.2.1. L nh fg và l nh bg............................................................................................ 133
4.2.2. Hi n th các quá trình ang ch y v i l nh ps ................................................... 135
4.2.3. H y quá trình v i l nh kill ............................................................................... 137
4.2.4. Cho máy ng ng ho t ng m t th i gian v i l nh sleep.................................. 139
4.2.5. Xem cây quá trình v i l nh pstree.................................................................... 139
4.2.6. L nh thi t t l i ưu tiên c a quá trình nice và l nh renice......................... 141
CH ƠNG 5. QU N LÝ TÀI KHO N NG
I DÙNG ......................................... 142
5.1 Tài kho n ngư i dùng ................................................................................................ 142
5.2 Các l nh c
ơ b n qu n lý ngư i dùng ........................................................................ 142
5.2.1 File /etc/passwd ................................................................................................ 143
5.2.2 Thêm ngư i dùng v i l nh useradd................................................................... 143
5.2.3 Thay i thu c tính ngư i dùng ........................................................................ 146
5.2.4 Xóa b m t ngư i dùng (l nh userdel).............................................................. 147 3
5.3 Các l nh cơ b n liên quan n nhóm ngư i dùng ................................................... 148
5.3.1 Nhóm ngư i dùng và file /etc/group ................................................................. 148
5.3.2 Thêm nhóm ngư i dùng .................................................................................... 149
5.3.3 S!a i các thu c tính c a m t nhóm ngư i dùng (l nh groupmod) ................ 149
5.3.4 Xóa m t nhóm ngư i dùng (l nh groupdel) ...................................................... 150
5.4 Các l nh cơ b n khác có liên quan n ngư i dùng................................................ 150 5.4.1
ng nh p v i tư cách m t ngư i dùng khác khi dùng l nh su ....................... 150
5.4.2 Xác nh ngư i dùng ang ng nh p (l nh who) ............................................ 151
5.4.3 Xác nh các quá trình ang ư c ti n hành (l nh w)....................................... 153
CH ƠNG 6. TRUY N THÔNG VÀ M NG UNIX-LINUX................................... 154
6.1. L nh truy n thông ..................................................................................................... 154

6.1.1. L nh write......................................................................................................... 154
6.1.2. L nh mail.......................................................................................................... 155
6.1.3. L nh talk........................................................................................................... 156
6.2 C u hình Card giao ti p m ng .................................................................................. 156
6.3. Các d ch v m ng ...................................................................................................... 159

6.3.1 H thông tin m ng NIS...................................................................................... 159
6.4 H th ng file trên m ng ............................................................................................. 164
6.4.1 Cài t NFS ....................................................................................................... 165
6.4.2 Kh i ng và d ng NFS.................................................................................... 166
6.4.3 C u hình NFS server và Client.......................................................................... 167
6.4.4 S! d ng mount................................................................................................... 167
6.4.5 Unmount ............................................................................................................ 168
6.4.6 Mount t ng qua t p c u hình........................................................................ 168
CH ƠNG 7. L P TRÌNH SHELL VÀ L P TRÌNH C TRÊN LINUX ................... 170
7.1. Cách th c pipes và các y u t c
ơ b n l p trình trên shell ..................................... 170
7.1.1. Cách th c pipes ................................................................................................ 170
7.1.2. Các y u t cơ b n l p trình trong shell ........................................................ 171
7.2. M t s l nh l p trình trên shell ................................................................................ 175
7.2.1. S! d ng các toán t! bash.................................................................................. 175
7.2.2. i u khi n lu ng .............................................................................................. 179
7.2.3 Các toán t! nh hư ng vào ra........................................................................... 193
7.2.4. Hi n dòng v n b n............................................................................................ 194
7.2.5. L nh read c d li u cho bi n ngư i dùng ..................................................... 194
7.2.6. L nh set ............................................................................................................ 195
7.2.7. Tính toán trên các bi n ..................................................................................... 196
7.2.8. Chương trình ví d ............................................................................................ 196 4
7.3. L p trình C trên UNIX ............................................................................................. 197
7.3.1. Trình biên d ch gcc ........................................................................................... 197
7.3.2. Công c GNU make ......................................................................................... 201
7.3.3. Làm vi c v i file............................................................................................... 203
7.3.4. Thư vi n liên k t............................................................................................... 211
7.3.5 Các công c cho thư vi n ................................................................................. 220
TÀI LI U THAM KH O ...................................................................................... 223
CHÚ THÍCH M T S THU T NG ................................................................... 224
PH L C A. QUÁ TRÌNH CÀI

T REDHAT-LINUX ........................................ 227
AA. Cài t phiên b n RedHat 6.2 ................................................................................. 228
AA.1. T o "a m m kh i ng ................................................................................... 228
AA.2. Phân vùng l i # "a DOS/Windows hi n th i.................................................. 228
AA.3. Các bư c cài t (b n RedHat 6.2 và kh i ng t CD-ROM)....................... 229
AA.4. Các h n ch v ph$n c ng i v i Linux ........................................................ 239
PH L C B. TRÌNH SO N TH O VIM .............................................................. 242
B.1 Kh i ng vim............................................................................................................ 244

B.1.1 M chương trình so n th o vim........................................................................ 244
B.1.2. Tính n ng m nhi u c!a s .............................................................................. 245
B.1.3. Ghi và thoát trong vim ..................................................................................... 246
B.2. Di chuy n tr so n th o trong Vim ......................................................................... 247
B.2.1. Di chuy n trong v n b n.................................................................................. 247
B.2.2. Di chuy n theo các i tư ng v n b n............................................................. 248
B.2.3. Cu n màn hình................................................................................................. 248
B.3. Các thao tác trong v n b n ...................................................................................... 249
B.3.1. Các l nh %&'n v n b n trong vim..................................................................... 249
B.3.2. Các l nh xoá v n b n trong vim ...................................................................... 250
B.3.3. Các l nh khôi ph c v n b n trong vim ............................................................ 250
6.3.4. Các l nh thay th v n b n trong vim ................................................................ 250
B.3.5. Sao chép và di chuy n v n b n trong vim ....................................................... 252
B.3.6. Tìm ki m và thay th v n b n trong vim ......................................................... 253
B.3.7. ánh d u trong vim ......................................................................................... 254
B.3.8. Các phím s! d ng trong ch %&'n............................................................... 255
B.3.9. M t s l nh trong ch o............................................................................. 256
B.3.10. Các l nh l p ................................................................................................... 256
B.4. Các l nh khác ............................................................................................................ 257
B.4.1. Cách th c hi n các l nh bên trong Vim........................................................... 257
B.4.2. Các l nh liên quan n file............................................................................... 257 5
PH L C C. MIDNIGHT COMMANDER ............................................................ 259
C.1. Gi i thi u v Midnight Commander (MC) ............................................................ 259
C.2. Kh i ng MC .......................................................................................................... 259
C.3. Giao di n c a MC ..................................................................................................... 259
C.4. Dùng chu t trong MC .............................................................................................. 260
C.5. Các thao tác bàn phím.............................................................................................. 261
C.6. Th
!c ơn thanh ngang (menu bar)......................................................................... 263
C.7. Các phím ch c n ng ................................................................................................. 266
C.8. B so n th o c a Midnight Commander................................................................ 267
PH L C D. SAMBA.......................................................................................... 270
D.1 Cài t Samba............................................................................................................ 270
D.2 Các thành ph n c a Samba ...................................................................................... 271
D.3 File c u hình Samba .................................................................................................. 272
D.4 Các ph n c bi t c a file c u hình Samba............................................................. 275
D.5 Qu n lý ng
ư i dùng trong Samba............................................................................ 282
D.6 Cách s d ng Samba t
" các máy tr m.................................................................... 284
D.6.1 Cách s! d ng t các máy tr m là Linux ........................................................... 284
D.6.2 Cách s! d ng t các máy tr m là Windows ..................................................... 287 6 L I GI I THI U
Trong hơn mư i n m tr l i ây h i u hành Linux ã 7
CH ƠNG 1. GI I THI U CHUNG V LINUX
1.1. Gi i thi u v UNIX và Linux
1.1.1. Xu t x , quá trình ti n hóa 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 file
ã ư 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.
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 +,#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
Có th tìm th y các n i dung liên quan t i m t s phiên b n m i c a UNIX 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 8
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 nh0m 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 (FSF): m t c ng ng do Richard Stallman kh i
xư ng n m 1984 ch trương phát hành các ph$n m m s! d ng t do, trên cơ s m t h i u hành thu c lo i UNIX.
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 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 , 9
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 s1n
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 quá trình, trong ó m i ngư i dùng có
th th c hi n các quá 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.
1.1.2. Gi i thi u sơ b v Linux
Linus Tovalds (m t sinh viên Ph$n lan) ưa ra nhân (phiên b n $u tiên) cho h i u hành
Linux vào tháng 8 n m 1991 trên cơ s c i ti n m t phiên b n UNIX có tên Minix do Giáo
sư Andrew S. Tanenbaum xây d ng và ph bi n. Nhân Linux tuy nh song là t óng gói.
K t h p v i các thành ph$n trong h th ng GNU, h i u hành Linux ã ư c hình thành.
Và c2ng t th i i m ó, theo tư tư ng GNU, hàng nghìn, hàng v n chuyên gia trên toàn
th gi i (nh ng ngư i này hình thành nên c ng ng Linux) ã 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.
Dư i ây là m t s m c th i gian quan tr(ng trong quá trình hình thành và phát tri n h i u hành Linux.
Sau ba n m nhân Linux ra i, n ngày 14-3-1994, h i u hành Linux phiên b n
1.0 ư c ph bi n. Thành công l n nh t c a Linux 1.0 là nó ã h tr giao th c m ng
TCP/IP chu-n UNIX, sánh v i giao th c socket BSD- tương thích cho l p trình m ng.
Trình i u khi n thi t b ã ư c b sung ch y IP trên m t m ng Ethernet ho c trên
tuy n ơn ho c qua modem. H th ng file trong Linux 1.0 ã vư t xa h th ng file c a
Minix thông thư ng, ngoài ra ã h tr i u khi n SCSI truy nh p "a t c cao. i u
khi n b nh o ã ư c m r ng h tr i u khi n trang cho các file swap và ánh x
b nh c a file c quy n (ch. có m t ánh x b nh ch. (c ư c thi hành trong Linux 1.0).
Vào tháng 3-1995, nhân 1.2 ư c ph bi n. i u áng k c a Linux 1.2 so v i
Linux 1.0 ch nó h tr m t ph m vi r ng và phong phú ph$n c ng, bao g m c ki n
trúc tuy n ph$n c ng PCI m i. Nhân Linux 1.2 là nhân k t thúc dòng nhân Linux ch. h tr PC.
M t i u c$n lưu ý v các ánh ch. s các dòng nhân (h i u hành) Linux. H th ng
ch. s ư c chia thành m t s m c, ch/ng h n hai m c như 2.4 ho c ba m c như 2.2.5.
Trong cách ánh ch. s như v y, quy ư c r0ng v i các ch. s t m c th hai tr i, n u
là s ch1n thì dòng nhân ó ã khá n nh và tương i hoàn thi n, còn n u là s l3 thì
dòng nhân ó v4n ang ư c phát tri n ti p. 1 0
Tháng 6-1996, nhân Linux 2.0 ư c ph bi n. Có hai c trưng n i b t c a Linux
2.0 là h tr ki n trúc ph c h p, bao g m c c ng Alpha 64-bit $y , và h tr ki n
trúc a b x! lý. Phân ph i nhân Linux 2.0 c2ng thi hành ư c trên b x! lý Motorola
68000 và ki n trúc SPARC c a SUN. Các thi hành c a Linux d a trên vi nhân GNU
Mach c2ng ch y trên PC và PowerMac.
T i n m 2000, nhân Linux 2.4 ư c ph bi n. M t trong c i m ư c quan tâm
c a nhân này là nó h tr mã ký t Unicode 32 bít, r t thu n l i cho vi c xây d ng các
gi i pháp toàn di n và tri t i v i v n ngôn ng t nhiên trên ph m vi toàn th gi i.
V n phân ph i và gi y phép Linux
V lý thuy t, m(i ngư i có th kh i t o m t h th ng Linux b0ng cách ti p nh n b n m i
nh t các thành ph$n c$n thi t t các site ftp và biên d ch chúng. Trong th i k5 $u tiên,
ngư i dùng Linux ph i ti n hành toàn b các thao tác này và vì v y công vi c là khá v t v .
Tuy nhiên, do có s tham gia ông o c a các cá nhân và nhóm phát tri n Linux, ã ti n
hành th c hi n nhi u gi i pháp nh0m làm cho công vi c kh i t o h th ng 6 v t v . M t
trong nh ng gi i pháp i n hình nh t là cung c p t p các gói chương trình ã ti n d ch, chu-n hóa.
Nh ng t p h p như v y hay nh ng b n phân ph i là l n hơn nhi u so v i h th ng Linux
cơ s . Chúng thư ng bao g m các ti n ích b sung cho kh i t o h th ng, các thư vi n
qu n lý, c2ng như nhi u gói ã ư c ti n d ch, s1n sàng kh i t o c a nhi u b công c
UNIX dùng chung, ch/ng h n như ph c v tin, trình duy t web, công c x! lý, so n th o
v n b n và th m chí các trò chơi.
Cách th c phân ph i ban $u r t ơn gi n song ngày càng ư c nâng c p và hoàn thi n
b0ng phương ti n qu n lý gói tiên ti n. Các b n phân ph i ngày nay bao g m các cơ s d
li u ti n hóa gói, cho phép các gói d* dàng ư c kh i t o, nâng c p và lo i b .
Nhà phân ph i $u tiên th c hi n theo phương châm này là Slakware, và chính h( là nh ng
chuy n bi n m nh m7 trong c ng ng Linux i v i công vi c qu n lý gói kh i t o Linux.
Ti n ích qu n lý gói RPM (RedHat Package Manager) c a công ty RedHat là m t trong
nh ng phương ti n i n hình.
Nhân Linux là ph$n m m t do ư c phân ph i theo Gi y phép s h u công c ng ph$n m m GNU GPL.
Các thành ph n tích h#p H i u hành Linux
Linux s! d ng r t nhi u thành ph$n t D án ph$n m m t do GNU, t h i u hành BSD c a
i h(c Berkeley và t h th ng X-Window c a MIT.
Thư vi n h th ng chính c a Linux ư c b)t ngu n t D án GNU, sau ó ư c r t nhi u
ngư i trong c ng ng Linux phát tri n ti p, nh ng phát tri n ti p theo như v y ch y u
liên quan t i vi c gi i quy t các v n như thi u v)ng a ch. (l i trang), thi u hi u qu và
g6 r i. M t s thành ph$n khác c a D án GNU, ch/ng h n như trình biên d ch GNU C
(gcc), v n là ch t lư ng cao nên ư c s! d ng nguyên xy trong Linux.
Các tool qu n lý m ng ư c b)t ngu n t mã 4.3BSD song sau ó ã ư c c ng ng
Linux phát tri n, ch/ng h n như thư vi n toán h(c ng x! lý d u ch m ng Intel và các
trình i u khi n thi t b ph$n c ng âm thanh PC. Các tool qu n lý m ng này sau ó l i ư c b sung vào h th ng BSD. 1 1
H th ng Linux ư c duy trì g$n như b i m t m ng lư i không ch t ch7 các nhà phát tri n
ph$n m m c ng tác v i nhau qua Internet, m ng lư i này g m các nhóm nh và cá nhân
ch u trách nhi m duy trì tính toàn v8n c a t ng thành ph$n. M t lư ng nh các site phân
c p ftp Internat công c ng ã óng vai trò nhà kho theo chu-n de facto ch a các thành
ph$n này. Tài li u Chu-n phân c p h th ng file (File System Hierarchy Standard) ư c
c ng ng Linux duy trì nh0m gi tính tương thích xuyên qua s khác bi t r t l n gi a các thành ph$n h th ng.
M t s c i m chính c a Linux
Dư i ây trình bày m t s c i m chính c a 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 ...:
Cho phép cài t 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 v i các c trưng là a ngư i dùng, a chương trình và a x! lý.
Linux có giao di n ho (GUI) th a hư ng t h th ng X-Window. Linux h tr
nhi u giao th c m ng, b)t ngu n và phát tri n t dòng BSD. Thêm vào ó, Linux còn h
tr tính toán 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 như PC, Mini và vi c cài
t khá thu n l i. Tuy nhiên, hi n nay chưa xu t hi n Linux 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 b sung như so n th o,
qu n lý m ng, qu n tr cơ s d li u, b ng tính ...
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 c ng ng ngu n m
(bao g m c Free Software Foundation) nên Linux phát tri n nhanh. Linux là m t trong
m t s ít các 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ã ISO10646,
Unicode) 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 c2ng t n t i 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, dư i ây là m t s khó kh n i n hình:
Tuy ã có công c h tr cài t, tuy nhiên, vi c cài t Linux còn tương i ph c
t p và khó kh n. 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 , 1 2
Ph$n m m ng d ng ch y trên n n Linux tuy ã phong phú song so v i m t s h
i u hành khác, c bi t là khi so sánh v i MS Windows, thì v4n 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 th gi i (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 thu c c ng ng Linux, các khó
kh n c a Linux ch)c ch)n s7 nhanh chóng ư c kh)c ph c.
Chính vì l7 ó ã hình thành m t s nhà cung 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 (t i M9) và Red Flag Linux (t i Trung Qu c). 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 th ng Linux, ư c thi hành như m t h i u hành UNIX truy n th ng, g m shell và ba
thành ph$n ( ã d ng mã chương trình) sau ây:
- Nhân h i u hành ch u trách nhi m duy trì các i tư ng tr u tư ng quan tr(ng c a h
i u hành, bao g m b nh o và quá trình. Các mô un chương trình trong nhân ư c
c quy n trong h th ng, bao g m c quy n thư ng tr c b nh trong.
- Thư vi n h th ng xác nh m t t p chu-n các hàm các ng d ng tương tác v i
nhân, và thi hành nhi u ch c n ng c a h th ng nhưng không c$n có các c quy n c a
mô un thu c nhân. M t h th ng con i n hình ư c thi hành d a trên thư viên h th ng là h th ng file Linux.
- Ti n ích h th ng là các chương trình thi hành các nhi m v qu n lý riêng r7, chuyên
bi t. M t s ti n ích h th ng ư c g(i ra ch. m t l$n kh i ng và c u hình phương
ti n h th ng, m t s ti n ích khác, theo thu t ng UNIX ư c g(i là trình ch y ng$m
(daemon), có th ch y m t cách thư ng xuyên (thư ng theo chu k5), i u khi n các bài
toán như hư ng ng các k t n i m ng m i n, ti p nh n yêu c$u logon, ho c c p nh t các file log.
Ti n ích (hay l nh) có s1n 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 tài li u 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 file s7 ư c gi i thi u trong chương 3. Trong các chương sau có
c p t i nhi u n i dung liên quan n nhân và shell, song dư i ây là m t s nét sơ b v chúng. 1 3
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 quá
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 quá trình hi n th i cùng t n t i. i v i Linux, s
lư ng quá trình có th lên t i con s hàng nghìn. V i s lư ng quá 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 file. Linux có hai cách th c làm vi c v i các
file: làm vi c theo byte (kí t ) và làm vi c theo kh i. M t c i m áng chú ý là file 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 file
c$n m b o vi c file ư c truy nh p theo quy n và ư c chia x3 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 cung c p 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 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 quá trình m i (kh i t o quá trình) và sau ó, shell ch i quá
trình con này ti n hành, hoàn thi n và k t thúc. Khi shell s1n 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
PS2. Trong tài li u 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:
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: 1 4
L nh thư ng tr c (có s1n c a Linux). Tuy t i a s l nh ư c gi i thi u
trong tài li u này là l nh thư ng tr c. Chúng bao g m các l nh ư c ch a s1n trong
shell và các l nh thư ng tr c khác.
File 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.
File 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.
1.3. Gi i thi u v 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
c2ng ngày càng phong phú; n th i i m hi n nay 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. Tài li u
này c2ng 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.
C2ng 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 b0ng 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: # [] 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, nh0m 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 (sau ây thư ng dùng là "tùy ch(n")
và tham s v trí. Tham s v trí thư ng là tên file, 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 b0ng 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, c2ng 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 mô t l nh, thư ng xu t hi n thu t ng
tùy-ch n. Tùy ch(n l nh (th c ch t là 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. Tu5 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 c2ng v y) các tình
hu ng t ra cho thao tác ng v i l nh. 1 5
Ký hi u "↵" bi u th vi c gõ phím h t dòng . 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 file: ↵ trong l nh này:
ls là tên l nh th c hi n vi c ưa danh sách các tên file/ 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 c2ng 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 file có tên g(i b)t $u là ch cái "g".
Trong tài li u này, quy ư c r0ng 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 r0ng 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-R có ý ngh"a hoàn toàn khác
nhau). Tên các bi n môi trư ng c2ng thư ng dùng ch hoa.
Trong tài li u này, t i nh ng dòng v n b n di*n gi i, s! d ng cách vi t tên
l nh, các tham s khóa b0ng 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 siêu ng i dùng) 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 b0ng 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

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ì nó ư c th c hi n;
ngư c l i, trong trư ng h p có sai sót khi gõ l nh thì shell thông báo v sai sót và 1 6
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.
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 tài li u này.
1.3.1. Các quy ư c khi vi t l nh
Trong tài li u 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 k5 l nh nào, ph i ư c gõ úng như khi mô t l nh.
Tên khái ni m ư c n0m 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 b0ng m t t (thư ng là tên
file, 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 file là # more
thì t more là tên l nh, còn là tham s trong ó file 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 file v i tên ã ch. trong l nh.
xem n i dung file 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
"file" ã ư c thay th b0ng t "temp" là tên file mà ngư i dùng mu n xem n i dung.
Các b ph n n0m gi a c p d u ngo c vuông [ và ] là có th gõ ho c không gõ c2ng ư c.
Ví d , cú pháp c a l nh halt# 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ì s7
ch(n m t (ho c m t s ) tu5 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 b0ng d u s #
ng "|" cho bi t c$n ch(n m t và ch. m t trong các giá tr n0m gi a hai d u ngo c ó. 1 7
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 file, 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 b0ng "="
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 file.
Ví d , mô t l nh chown như sau:
chown [tùy-ch n] [,[nhóm]]...
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 file.
Các b ph n trong mô t l nh, n u không n0m 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
có ngh"a là thay b0ng tên file 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 []
thì 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 file. 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 -
, 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). Vì v y, khi vi t [tùy-ch(n]
trong mô t l nh bi u th c vi c s! d ng t ng tùy ch(n, nhi u tùy ch(n ho c k t h p các tu5 ch(n.
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 . 1 8
Ví d , khi mô t l nh date có tùy ch(n:
như v y hai tham s -d--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.
1.3.3. 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 , S! d ng thay th alias, S! d ng chương trình l nh.
Cách th c s! d ng chương trình l nh (shell script) s7 ư c gi i thi u chi ti t trong các
chương sau. 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 .
Cơ ch 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 m2i 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. 1 9