Giáo trình hệ điều hành Unix và Lunix | Trường Đại học Công nghệ thông tin, ĐHQG-TPHCM

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. Bài giảng giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao

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.
| 1/214

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