



















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
và 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 và -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 là # halt [tùy-ch n]
V i các tùy ch(n là -w, -n, -d, -f, -i mã m i tùy ch(n cho m t cách th c ho t ng
khác nhau c a l nh halt. L nh halt có tác ng chính là làm ng ng ho t ng c a h i u
hành, tuy nhiên khi ngư i dùng mu n có m t cách ho t ng nào ó c a l nh này thì 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 và --date=STRING có cùng ý ngh"a.
Ngoài nh ng quy ư c trên ây, ngư i dùng ng quên m t quy nh cơ b n là c$n phân
bi t ch hoa v i ch thư ng khi gõ l nh.
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