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
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
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