T h c s d ng Linux

Tác gi : Kostromin V. A. D ch và c ng tác: Phan Vĩnh Th nh Phiên b n: 0.9.4 Ngày 13 tháng 9 năm 2006

Dành cho ngư i dùng m i và r t m i...

M cl c
1 HĐH Linux: l ch s và các b n phân ph i 1.1 Th nào là HĐH nói chung và Linux nói riêng 1.1.1 Các h đi u hành d ng UNIX . . . . . . 1.1.2 M t chút v l ch s . . . . . . . . . . . . 1.1.3 Đ c đi m chính c a HĐH Linux . . . . 1.2 B n phân ph i Linux . . . . . . . . . . . . . . . 1.3 Yêu c u đ i v i máy tính . . . . . . . . . . . . . 1.4 L y Linux đâu? . . . . . . . . . . . . . . . . . 2 2 2 3 6 8 11 12 14 14 16 18 18 18 20 22 23 23 25 26 27 28 28 30 31 34 34 34 36 36 39 39 40

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

2 Cài đ t HĐH Linux trên cùng máy tính v i Windows 2.1 Chu n b cài đ t . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Phòng xa và nh ng l i khuyên . . . . . . . . . . . . . . . . . 2.3 Phân vùng trên đĩa và quá trình kh i đ ng . . . . . . . . . 2.3.1 Th nào là c u trúc “hình h c c a đĩa” . . . . . . . . 2.3.2 Phân vùng và b ng phân vùng c a đĩa . . . . . . . . 2.3.3 Quá trình kh i đ ng các HĐH c a công ty Microsoft 2.3.4 V n đ v i các đĩa l n . . . . . . . . . . . . . . . . . . 2.4 L a ch n trình kh i đ ng . . . . . . . . . . . . . . . . . . . . 2.4.1 Trình kh i đ ng GRUB . . . . . . . . . . . . . . . . . 2.4.2 Trình kh i đ ng LILO . . . . . . . . . . . . . . . . . 2.4.3 Các trình kh i đ ng khác . . . . . . . . . . . . . . . . 2.4.4 Các phương án kh i đ ng . . . . . . . . . . . . . . . 2.5 Chu n b các phân vùng trên đĩa . . . . . . . . . . . . . . . 2.5.1 L i khuyên khi t o phân vùng . . . . . . . . . . . . . 2.5.2 Chương trình đ phân chia đĩa . . . . . . . . . . . 2.6 Windows NT và Linux: kh i đ ng qua NT OS Loader . . . 2.7 S d ng trình kh i đ ng GRUB . . . . . . . . . . . . . . . . 2.7.1 Cài đ t GRUB . . . . . . . . . . . . . . . . . . . . . . 2.7.2 C u hình GRUB . . . . . . . . . . . . . . . . . . . . . 2.8 S d ng trình kh i đ ng LILO . . . . . . . . . . . . . . . . 2.8.1 Cài đ t và c u hình LILO . . . . . . . . . . . . . . . 2.8.2 Cài đ t các h đi u hành khác sau Linux . . . . . . 2.8.3 Chuy n thư m c /boot lên phân vùng DOS . . . . . 2.9 Kh i đ ng Linux t MS-DOS b ng loadlin.exe . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. .6. .7. . . . . . . . . . . . L ch s l nh . . . . . . . . . . . . .1 Các t p tin thi t b . . . . . . . . .7 Các câu l nh lưu tr và nén t p tin . . . . . . . . . . . . . . . . .2 Các ng có tên (pipes) . . . . . . 4.6. . 4.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . .4. . . . . . ng . . . . . 4. . .4 Câu l nh cp . . . . . . . . . . . 4. . . . . . . . . . . .5 Câu l nh mv . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . 4. . . .3 3. . . . . . . .8 T o và g n các h th ng t p tin . . . . . . . . . . . . .6. . . . . . 4. terminal o và shell . . M CL C 43 43 44 47 49 51 53 53 54 55 56 56 57 57 57 60 60 63 65 70 70 71 72 72 73 79 80 80 80 81 82 82 83 83 86 87 88 89 91 92 94 95 . 4.6. . . . . . . . . 3. . 4. . . . . .8 Câu l nh tìm ki m find và m u tên t p tin .6. . . . . . . . . 4. . . . . .6.7 Câu l nh helptool . . . . . .2 3. . . . . . . . . . .7.5 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . c . . . . . . . . . . . . . . . . . . . .6 Câu l nh xman . . . . . .6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m 4. . . . . 3. . . . . . . . . . . . . . . . . . . . So n th o dòng l nh. . . . . . . . 4. . . . . . . . . 4. . . . . . . . . . . . .3 Công d ng c a các thư m c chính . . . 4. . . . . . . . . . . . . Đăng nh p vào h th ng . . .6.1 Chương trình tar . .7. . . . . . 4. . . . . . . . . . . .3 Câu l nh info . . .9 Câu l nh split . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . Tr giúp khi dùng Linux . . . . . . . Ng ng làm vi c v i Linux . . . . . . .4 D ng t p tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Làm quen v i h th ng t p tin ext3fs 4. . . . . . . . . . . . . . . . . . . . . . . . . .3 Câu l nh cat . . . . . . . . .6. ng d . . . . . . . 4. . . . . . . . . Console. . . . . .1 Các ngu n thông tin tr giúp . . . . . . . . . . . .2 Câu l nh mkdir .4. .2 Thư m c . . . . . . . . 4. . . .1 3. . . 4. . .6. . . . . . . . . . . . . . . . . . . . . 4. . . . .4. . 4. . . . . 3.iv 3 Kh 3.7 Câu l nh more và less . . . .5 Tài li u đi kèm v i b n phân ph 3. . . . . . . . . . . . .6 Câu l nh rm và rmdir . . . . . . . .1 T p tin và tên c a chúng . . . . . . . . . . . . 4. . . . . . . .6. . . . . . . . . . . . . . . . . . i và chương trình . .5 Quy n truy c p đ n t p tin và thư m c . . . . . .4 3. . . . . . . .6. . . .4 S d ng k t h p tar v i gzip và bzip2 . . . . . . . . . . . . . . 3. . . . .1 Câu l nh chown và chgrp .6 i đ ng Linux l n đ u Kh i đ ng HĐH Linux . . . .10 So sánh các t p tin và l nh patch .4. . . 4. . . .2 Các trang tr giúp man . . . . . . 4. . 3. . . . .3 Chương trình bzip2 . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . .8 Sách và Internet . 3. . . . . . . . . . . .7. . . . . 4. . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Chương trình gzip . . . . . . . . . . . . . . . . . . .6. . .3 Các socket . . . . . . .4 Câu l nh help . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . .4 Liên k t m m . . .

. . .2 Các ký t đ c bi t . . . . . đư ng ng và b l c . . . . . . .2 L nh echo . . . . .7.6 Tham bi n và các bi n s .6 Toán t while và until . . . . . . . . . .10 Câu l nh sh . . . . . 114 5. . .6. . . . .M CL C v 5 Bash 100 5. . . . . . . . . . . . . 122 5. . . . . . . 117 5. .3 Th c thi các câu l nh . . . . . . . . . . 114 5. . . . .6.6. . . . . . . . . .4 Toán t select .2 Thay th d u ngã (Tilde Expansion) . .7. . . . . . . . .3 Thao tác && và || . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . 108 5. . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . 117 5. . . .8. . . . . . . . . . . . < và » . . . . . . . . . . . . . . . . . . . . . . . . 115 5.8. 111 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. .6. . . . . . . . . . . . . . . . . . .6 Câu l nh export . . . 103 5. . . . . . . . . . . . .7 Các hàm s . . . . . . . . . . . 124 5. . . . . . . . .3 Bi n môi trư ng PATH . . . . . . . . . . . . . . . . . . . . . 121 5. .1 H v là gì? . . . . . . . . . . . . .2 Toán t test và đi u ki n c a bi u th c . . . 112 5. . 105 5. . . . .3. . .7. . . . . . . . . . . . .5. . .1 Dòng d li u vào – ra . . . . . . . .2 Thao tác & . . . . . . . . . . . . . . . . . . . . . . . .7. .5 Chuy n hư ng đ u vào/đ u ra. . . . . . . . . . . .4 Đ u vào/đ u ra tiêu chu n . . . . . . .3. 120 5. . . . . 108 5. . . . . . . . . . . . . .4. . . . . . . . . 101 5. . . 102 5. . . . . . . .7 Khai tri n các m u tên t p tin và thư m c (Pathname Expansion) . . .5. . . . . . . . . . .6 Phân chia t (word splitting) . . . . . . . . . . . . . . 104 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5. . . . . . . . . . . .3 B l c . . . . . .8.5 Phép th s h c (Arithmetic Expansion) . . . . . . . . . . . . . . . . . . . .8. . . . . . 116 5. . 100 5. . . . . . . . . . . .2 D u nh c c a h v . . . . . . . . . .8 Shell . . . . . . . . . . . . . . . . . . . . .5. . . . . .1 Thao tác . .m t ngôn ng l p trình . . . . . . . . . . .7 Khai tri n bi u th c . . . . . . Môi trư ng c a h v . . . . . . . . . .8. . . . . . . . . . . . . . . .9 Script c a h v và l nh source . . . .8. . . .1 Khai tri n d u ngo c . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5. . . . . . 113 5. . . . . .3 Toán t case . . . . . . . . . . . . . . . . . . .5 Thư m c hi n th i và thư m c cá nhân . . . . . . . . . . . . . . .8 Xóa các ký t đ c bi t . . . . . . .2 S d ng | . . . . . 123 5. . .4 Bi n môi trư ng IFS . . . . . . . . 125 . . . . . . . . . . .7. 112 5. . . . . . 123 5. . . . . . . . . . . 114 5. 115 5. . . . . . . . .4 Phép th các câu l nh . . . . 123 5. . . .1 Toán t if và test (ho c [ ]) . 112 5. . . . . . . .9 Bi n n i b (local) . . . . . . . . .1 Các d ng tham bi n khác nhau . . . . . . . . . 105 5. . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . .6. . . . . . . . . . 116 5. .8. . 103 5. . . . . . 115 5. . .4. . . . . . . . . . 103 5.3 L nh cat . . . . . . .6. . 102 5. . . . . . 110 5. . . . . . . . . . . . . . 112 5. . .7. . . . . . . . . . . . . . . . . . .1 S d ng >. . . . . . . 107 5. . . . . . . . . . . .8. . . . . . . . . . . . . . . 107 5. . . . . . .3 Phép th các tham bi n và bi n s . . . . . . . . .8 Tham s . . . . . .5 Toán t for . . . . . . . . . . . 104 5. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . .5. . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . .5. .5. .2 Nh ng ch đ hi n th khác . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . 6. .3 Tr giúp . .5 Đi u khi n các b ng . . . .4 S d ng chu t . . .3 Các t h p phím đi u khi n b ng . . . . . . .2 V ngoài c a màn hình Midnight Commander 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 D ng danh sách t p tin . 6. . . .vi 6 S d ng Midnight Commander 6. . 6. . . . . . . .1 Cài đ t chương trình Midnight Commander . . . . . . M CL C 126 126 127 129 130 131 131 134 136 .

. 44 6. . . . . . . .3 6. . .Danh sách hình v 3. . . . . . . . . Ch đ cây thư m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 6. . . . . . . . . . . . . . . . . . . . . . . . . . .4 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 6. . . . Ch đ xem nhanh . . . .2 6. . . . . .5 6. . . . . . . . . . . . . . 127 128 131 134 135 135 136 . . . . . Ch đ thông tin . . . . . . . . . . . . . . . . . . . . . . . . . .7 Midnight Commander ti ng Vi t Màn hình Midnight Commander H p tho i ch n đ nh d ng hi n th H p tho i s p x p . . . . . . . . . . . .1 Màn hình kh i đ ng c a GRUB . . . .

. . . . . . . . . . . . 21 2. . . . . . . . . . . .7 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Di chuy n khi xem tr giúp . . . . . . . . . . . . . . . . . T h p phím đi u khi n l ch s l nh Các ph n chính c a tr giúp man . . . . Nh ng tùy ch n chính c a tar . . . . . . . .1 3. . . . . . . . . . . . . . . . . . .6 4. . . . . . . . . . . . . . . . . . . . . . . 28 3. .4 3. .5 4. . . . . . . . . . . . Phím s d ng đ xem trang man . . .3 4. . . . . . . . . . . . . . .1 4. . . . . . 46 50 52 54 55 66 71 81 85 89 92 93 98 108 109 111 116 C u trúc thư m c c a Linux . . . . . . . . . Các câu l nh b l c . . . 129 6. . .3 3. . . . . . . . . . . . . . . .1 5. . . . . . . . . .5 4. . . . . . . . . . . . . . . . . . . . 11 2. . . . . . . . . . . . . . .8 5. . . . . . .4 4. . . . . . . . . . . . . . . . . . . . t . . . . . . . . . . . . . . .2 5. . Tiêu chí tìm ki m c a câu l nh find. . . . .1 Các t h p phím di chuy n dùng chung .4 Nh ng câu l nh đơn gi n c a Linux Nh ng phím so n th o dòng l nh . .3 5. . . . . . . . . . . . . . . . . . . . . 129 6. . . . . . . . 6. . .2 3. . . . . . . . . . Nh ng tùy ch n chính c a l nh cp . . . . . . . . . . . . . . . . . .2 Di chuy n trong trình xem t p tin . Nh ng tùy ch n chính c a chương trình gzip Nh ng tùy ch n chính c a chương trình bzip2 Nh ng tùy ch n chính c a câu l nh mount . . . . . . . . . . .2 Nhu c u s d ng không gian đĩa c a HĐH . . . . . . . . . . . . . . . . . . . . . . . . . .2 4. .1 C u trúc c a sector kh i đ ng chính .1 Yêu c u đ i v i ph n c ng . . . . .Danh sách b ng 1. . . . . . . 130 . . Nh ng t p tin thi t b chính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thay th các tham bi n đ c bi Ký t xác đ nh d ng d u nh c Các ký t t o m u . . . . . . . . . . . . .

M i đ ngh s a đ i. xin đư c đưa ra các liên k t t i b n g c sau đây: http://rus-linux. l i ki n th c c a b n d ch cũng như đ ngh giúp đ d ch xin g i cho Phan Vĩnh Th nh theo đ a ch teppi82@gmail. vi t m t cu n sách v Linux cho i Quý và Nguy n Đ ng Hoàng Nguy n Đ i Quý đã đ c và s a i d ch t i teppi82@gmail. B n g c đư c vi t trên ti ng Nga. V.com n u B n quy n Cu n “T h c s d ng Linux” này s d ng b n quy n Creative Commons Public License 2.chat.. hai bác Nguy n Đ A Tuân đã giúp trong vi c s d ng L TEX.php?name=book1/oglavl http://linux-ve. Bác cho phiên b n 0.net/book1.9. thông báo l i chính t .com. đã ngư i dùng m i tuy t v i. Theo yêu c u c a Kostromin A. A. Tác gi Kostromin V. A.ru/ C m ơn Trư c tiên c n c m ơn Kostromin V.5 (http://creativecommons. cũng như ngư i d ch và c ng tác không ch u trách nhi m v h u qu do vi c s d ng cu n sách này gây ra.org/licenses/by/2. .L im đ u Đây là b n d ch cu n “Linux cho ngư i dùng” (sêri sách t h c) c a Kostromin Victor Alexeevich c ng thêm m t vài kinh nghi m s d ng Linux c a ngư i d ch.5/). Xin hãy g i thư nh c ngư như ngư i d ch có quên ai đó.

1 Th nào là HĐH nói chung và Linux nói riêng Các h đi u hành d ng UNIX H đi u hành (HĐH) đó là m t b các chương trình h tr vi c đi u khi n ph n c ng c a máy tính. V t lý. 1.1. khái ni m b n phân ph i Linux. H đi u hành UNIX do nhóm các nhà phát tri n Bell Labs vi t ra vào năm 1969 dư i s đi u khi n c a Dennis Ritchie. Nhưng bây gi khi nói đ n h đi u hành UNIX thư ng có ý không nói c th m t h đi u hành c th nào mà là m t nhóm các h đi u hành dòng UNIX (UNIX-liked OS).1 Ngư i d ch: Ngư i m “không ng i ng n” đăng ký nhãn hi u thương m i b t kỳ th gì. Windows b t ngu n t h đi u hành MS-DOS trư c đây làm vi c trên các máy tính c a hãng IBM. và cách có đư c nh ng b n phân ph i này. Trong chương đ u tiên c a cu n sách “T h c s d ng Linux” này chúng ta s tr l i ng n g n cho câu h i “Linux là gì?”. Chính b n thân t UNIX (vi t hoa t t c các ch cái) tr thành nhãn hi u thương m i c a t ng công ty AT&T. t ch c làm vi c v i các t p tin (trong đó có ch y và đi u khi n vi c th c hi n c a các chương trình). Hơn th n a b n đ c s hi u ít nhi u v OpenSource. không hi u là đ làm gì.Chương 1 HĐH Linux: l ch s và các b n phân ph i “Just for fun” – Linus Torvalds. 1 . Không có ngo i l đ i v i Toán h c. Đ n th i đi m hi n nay thì các h đi u hành n i ti ng nh t cho máy tính là Microsoft Windows (C) và UNIX. Ken Thompson và Brian Kernighan. GNU và FSF. Ngư i d ch: L ch s luôn là đi m kh i đ u khi nghiên c u m t ngành khoa h c nào đó. t c là d ch các câu l nh c a ngư i dùng và hi n th k t qu làm vi c c a nh ng l nh này. k c Yoga mà b t ngu n t n Đ . Không có h đi u hành thì máy tính không th c hi n đư c ch c năng c a mình. Trong trư ng h p đó máy tính ch là m t t p h p các thi t b đi n t không làm vi c. và đ ng th i th c thi s giao ti p v i ngư i dùng. môn chuyên ngành c a tôi – Hoá h c và t t nhiên c HĐH Linux. yêu c u c a Linux đ i v i ph n c ng.1 1. Đ ng th i nói đôi dòng v nh ng đi m đ c bi t c a Linux.

Đây là b c thư mà Linus g i vào nhóm tin t c comp. Và và đ u nh ng năm 90 m t sinh viên c a trư ng đ i h c Helsinki (Ph n Lan).08) and gcc(1. and I’d like to know what features most people would want.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.1 Th nào là HĐH nói chung và Linux nói riêng 3 Vào cu i nh ng năm 70 c a th k trư c (th k XX) các nhà phát tri n c a trư ng đ i h c California Berkeley đã thêm vào mã ngu n c a UNIX r t nhi u s c i ti n trong đó có h tr giao th c2 TCP/IP (giao th c m ng chính hi n nay). but I won’t promise I’ll implement them :-) Linus (torvalds@kruuna.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix I’m doing a (free) operating system (just a hobby. Đi u đ c bi t ch b n quy n c a s n ph m cho phép ngư i khác phát tri n và c i ti n và chuy n k t qu thu đư c đ n ngư i th ba (cùng v i mã ngu n ho c không) v i đi u ki n là ph i ch ra ph n nào c a mã đư c phát tri n Berkeley. It is NOT portable (uses 386 task switching etc). as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). Any suggestions are welcome.FI (Linus Benedict Torvalds) Newsgroups: comp.205708. Nhưng d n d n c u hình trang thi t b c a máy tính cá nhân cũng m nh lên và hi n nay có kh năng cao hơn so v i nh ng mainframe c a nh ng năm 70 th k trư c.40).Helsinki. H đi u hành dòng UNIX.os. Linus Torvalds. đã b t đ u phát tri n m t HĐH ki u UNIX cho các máy tính cá nhân tương thích v i IBM (IBM-compatible PC). and it has a multi-threaded fs. as that’s all I have :-(. and things seem to work.2 M t chút v l ch s HĐH Linux v a k ni m sinh nh t l n th 15 c a mình. and is starting to get ready. S n ph m này n i ti ng dư i tên BSD ("Berkeley Systems Distribution").1. Yes — it’s free of any minix code.9541@klaava.helsinki.os. I’ve currently ported bash(1. This has been brewing since april. Nh ng ngư i dùng trong nhóm tin t c này đã làm vi c dư i h đi u hành Minux do giáo sư Andy 2 protocol .fi) PS. trong đó có BSD. Trong thư này Linus cho bi t anh đang phát tri n m t h đi u hành t do cho các máy tính đ i 386 (486) và yêu c u nh ng ai quan tâm cho bi t nh ng thành ph n nào c a h th ng cho ngư i dùng c n ph i có đ u tiên. I’d like any feedback on things people like/dislike in minix. won’t be big and professional like gnu) for 386(486) AT clones.1. lúc đ u đư c phát tri n đ làm vi c v i các máy tính nhi u ngư i dùng – các mainframe. This implies that I’ll get something practical within a few months. 1. and it probably never will support anything other than AT-harddisks.Helsinki.minix ngày 25 tháng 8 năm 1991 (đư c coi là ngày sinh nh t c a HĐH này): From: torvalds@klaava.

” (“Như tôi đã nói trư c đây.01: tôi không t hào l m v nó. t c là nh ng gì thu c v d án GNU không ph i là m t ph n c a Unix (vào th i gian đó th m chí t UNIX đã tr thành thương Ngư i d ch: R t thú v là sau khi Linus Torvalds phát tri n HĐH c a mình thì gi a anh và giáo sư Andy Tanenbaum đã n ra m t cu c tranh cãi.12 theo đ a ch trên.org.01. gi bí m t nghiêm ng t mã ngu n c a chương trình vi t trên các ngôn ng b c cao (như C++). Ngay t đ u Linux đã đư c phân ph i theo đi u ki n c a b n quy n General Public License (GPL)4 thư ng dùng cho các ph n m m ng d ng Open Source và d án GNU.kernel.org/linuxhistory. 0. Linus Torvalds vi t: “As I already mentioned. m t cu n sách nói v đ i tư c a Linus Torvalds đ n th i đi m anh làm cho Transmeta và vi c phát tri n HĐH Linux.php. vì th ch g i thông báo đ n t t c nh ng ai mu n th hi n s quan tâm.org. đó b n s nh n đư c thông tin chi ti t v l ch s xu t hi n và phát tri n Linux. ví d ftp://ftp.org) – d án t o chương trình ng dùng mi n phí. Đây là phiên b n đã có th làm vi c trên máy. Stallman cho r ng vi c này r t có h i đ i v i phát tri n chương trình ng d ng.12. b o v nó b ng các b ng sáng ch . Minux làm vi c trên các máy tính v i b x lý 286 và đư c Linus dùng làm mô hình cho HĐH m i. GNU là t vi t t t c a GNU’s Not Unix. V b n quy n này. hãy xem RELNOTES-0.gnu. làm ch m quá trình t o ng d ng m i vì m i nhà l p trình s ph i vi t l i t đ u m t ng d ng thay vì dùng đo n mã ngu n đã có trong ng d ng khác. d n đ n vi c gi m ch t lư ng chương trình và s có m t c a r t nhi u l i không xác đ nh đư c trong nh ng chương trình này.”)3 Sau đó ngày 05 tháng 10 năm 1991 phiên b n 0. 3 . 4 Ngư i d ch: Th t ra lúc đ u nhân Linux đư c phân ph i theo b n quy n mà FSF không không nh n là t do vì nghiêm c m phân ph i thương m i.02 ra đ i. Linus Torvalds không đăng ký b ng sáng ch cũng như không gi i h n vi c phân ph i HĐH m i này. Free Software Foundation) có trang ch n m t i đ a ch http://www.01) đư c công b trên Internet ngày 17 tháng 09 năm 1991. Trong khuôn kh T ch c ph n m m t do đã b t đ u làm vi c d án GNU (http://www. N u b n đ c quan tâm đ n l ch s c a HĐH này thì hãy đ c trang web sau: http://www. Open Source và d án GNU c n ph i nói đ n m t cách đ c bi t. B n quy n này có th tìm th y trong nh ng phiên b n đ u tiên c a nhân trên ftp. Chú ý r ng không có thông báo cho b n 0.01 didn’t actually come with any binaries: it was just source code for people interested in what linux looked like. T i t nh t là làm ch m quá trình trao đ i ý tư ng trong ngành l p trình. T p tin phiên b n đ u tiên c a Linux (phiên b n 0. Vào năm 1984 nhà bác h c ngư i m Richard Stallman sáng l p ra T ch c ph n m m t do (FSF. N u b n đ c quan tâm thì có th tìm đ c nh ng thư mà hai ngư i này g i cho nhau trong nhóm tin t c nói trên.org/pub/linux/kernel/Historic/old-versions/RELNOTES0. nghiên c u chương trình ng d ng. B n quy n đư c đ i sang GPL t phiên b n 0. M c đích c a t ch c này là lo i tr t t c nh ng đi u c m đoán và h n ch phân ph i. các d u hi u b o v quy n tác gi . Note the lack of announcement for 0. so I think I only sent a note to everybody who had shown interest. ho c tìm đ c cu n “Linux: Just for fun”.4 HĐH Linux: l ch s và các b n phân ph i Tanenbaum vi t ra đ làm công c h c t p cho các sinh viên l p trình.01 không đi kèm theo binary nào: nó ch là mã ngu n cho nh ng ai mu n bi t linux trông ra sao.fsf.li.01: I wasn’t too proud of it.kernel. s a đ i. Theo ti ng lóng c a Linux thì b n quy n này đôi khi đư c g i là Copyleft. 0. B i vì tính đ n th i đi m b t đ u xây d ng t ch c thì các công ty thương m i gi r t c n th n các chương trình ng d ng c a mình. sao chép.

org/copyleft/gpl. DVD ho c k t n i Internet). là nh ng ngư i hi u rõ nh t đi u này.gnu. chuy n ho c bán cho ngư i khác không h n ch v i m t đi u ki n là k t qu thu đư c cũng ph i phân ph i theo b n quy n copyleft. mà bán chính s c lao đ ng c a nhà l p trình.html) vào năm 1985 Stallman vi t r ng đ ng l c đ ông sáng l p ra FSF và d án GNU đó là s khó ch u trong quy n s h u c a m t s ngư i đ i v i chương trình ng d ng.org/gplv. đây chúng ta g p l i cơ ch đào th i (hay t t hơn là ch n l c) t nhiên như trong thuy t sinh h c c a Darwin. đã phát tri n m t lư ng đáng k các chương trình ng d ng. Cùng v i s ra đ i c a phiên b n th 3 này đã n y ra r t nhi u tranh cãi xung quanh tính t do c a b n quy n.v. s a đ i. thì b n quy n GPL “làm cho chương trình ng d ng t do và đ m b o là chương trình này s t do”5 . Trong “Manifesto GNU” (http://www. Ngư i d ch: B n đ c cũng nên bi t là s p t i s có phiên b n th 3 c a GPL (GPLv3).html. v. Chương trình ng d ng phân ph i theo GPL đư c quy n phát tri n. unikey (http://unikey. Nói như các nhà sáng l p ra FSF.openoffice. M t ph n thư ng t t n a đó là khi chương trình tr lên n i ti ng thì tác gi c a chương trình s có đi u ki n tìm m t công vi c có lương cao. . nhưng không có nghĩa là chúng đư c phân ph i không có b n quy n và không đư c lu t pháp b o v . còn các l i s đư c nh n ra và s a nhanh chóng. Đi u đó không có nghĩa là các nhà l p trình không còn nh n đư c ph n thư ng (ti n) cho công vi c c a mình.sf. G n như t t c các chương trình ng d ng phân ph i theo đi u ki n GPL có th coi là mi n phí đ i v i ngư i dùng (trong ph n l n các trư ng h p đ nh n đư c nó b n ch ph i tr ti n đĩa CD.org) và pdfLaTeX (http://www. B n d ch ti ng Vi t không chính th c n m t i http://vi.tug. Hãy vi t thư cho h đ h c h i kinh nghi m! Trong khuôn kh c a ho t đ ng Open Source nói chung và d án GNU nói riêng.1 Th nào là HĐH nói chung và Linux nói riêng 5 hi u. Nó b o đ m r ng k t qu lao đ ng c a các nhà phát tri n ph n m m t do s luôn luôn m và không tr thành m t ph n c a s n ph m nào đó dùng b n quy n bình thư ng (ý nói s n ph m đóng). . Các nhà phát tri n xvnkb (http://xvnkb. B n có th đ c b n quy n này theo đ a ch http://www. Ý tư ng chính c a Stallman là ch không ph i bán chương trình ng d ng.gnu. n i ti ng nh t trong s chúng đó là trình so n th o Emacs và trình biên d ch GCC (GNU C Compliler) – trình biên d ch ngôn ng C t t nh t hi n nay.org). N u như nói m t cách th t ng n g n thì b n ch t c a GPL như sau. Cơ ch này b kìm nén trong th gi i chương trình ng d ng thương m i. Tham gia vào tranh cãi có c ngư i vi t ra nhân Linux đ u tiên – Linus Torvalds. đây c n ph i đưa ra ví d đ b n đ c hi u rõ hơn: ngu n thu nh p có th là các s n ph m đi kèm ho c d ch v cài đ t và c u hình cho nh ng máy tính m i ho c phát tri n cho nh ng đi u ki n làm vi c m i. 5 . nh ng ý tư ng và cách gi i quy t m i đư c phân ph i r ng rãi ngay l p t c. do đó không còn t do).1.net).html.org/ gnu/manifesto. Nh ng gì do d án GNU phát tri n đ là t do. Đi u ki n này cũng phân bi t ph n m m t do v i ph n m m phân ph i mi n phí. Nh ng chương trình Open Source (Mã ngu n m ) đư c phân ph i theo đi u ki n c a b n quy n General Public License (GPL). d y cách s d ng. Vi c m mã ngu n đ ng th i nâng cao r t nhi u ch t lư ng c a chương trình ng d ng: t t c nh ng gì t t nh t. Đi u ki n cu i là quan tr ng và then ch t c a b n quy n này.

N u b nh đ y. b n v ng và phát tri n nhanh nh t. C n nói r ng Linus Torvalds ch phát tri n ph n nhân (kernel) c a h đi u hành. Nh đó đ n th i đi m hi n nay Linux là h đi u hành hi n đ i. và chúng ta cũng làm như v y trong cu n sách này. nên ngay t đ u đã có r t nhi u nhà l p trình tham gia vào quá trình phát tri n h th ng. không m t ti n trình nào đư c c n tr công vi c c a ti n trình khác. Linux có t t c các kh năng. D án GNU cũng đã b t đ u phát tri n nhân cho riêng mình (đư c g i là Hurd). N u có trang nào đó trong s nh ng trang này l i tr thành c n thi t. nhưng vì lý do nào đó đã b ch m l i. khi m t ti n trình ph i như ng b x lý cho các ti n trình khác (và có th làm ch m tr r t lâu vi c th c hi n). 4. Xin đưa ra đây danh sách ng n g n nh ng kh năng này. Nhưng đã thành l ngư i dùng thư ng s d ng tên g i c a nhân làm tên g i c a h đi u hành. Stallman t t nhiên đã đúng khi đòi h i h đi u hành Linux ph i đư c g i là GNU/Linux. Truy c p nhi u ngư i dùng Linux không ch là HĐH nhi u ti n trình. 2. l n lư t chia cho m i ti n trình m t kho ng th i gian th c hi n. thì Linux s ph c h i chúng t đĩa c ng (vào b nh ). Nhi u ti n trình th t s T t c các ti n trình là đ c l p. Khi này Linux có th cung c p t t c các tài nguyên h th ng cho ngư i dùng làm vi c qua các terminal xa khác nhau. 1. Nó đ ng nghĩa v i vi c ra đ i c a m t h đi u hành m i t do phân ph i cùng v i mã ngu n m . 3. Swap b nh lên đĩa Swap b nh cho phép làm vi c v i Linux khi dung lư ng b nh có h n. Vùng đĩa c ng này đư c coi là b nh ph thêm vào. N i dung c a m t s ph n (trang) b nh đư c ghi lên vùng đĩa c ng xác đ nh t trư c. 1. vì trong d án GNU đã phát tri n s lư ng l n các ti n ích khác nhau. nhưng cho phép ch y các chương trình c n b nh dung lư ng l n mà th c t không có trên máy tính.6 HĐH Linux: l ch s và các b n phân ph i Tuy nhiên bây gi xin quay l i v i l ch s c a Linux. Cách này hoàn toàn khác v i ch đ “nhi u ti n trình đ y nha” đư c th c hi n trong Windows 95. Vì th s xu t hi n c a nhân Linux là r t đúng lúc. Nhân này “đ u” đúng vào mi n “đ t lành”. Linux h tr kh năng nhi u ngư i dùng làm vi c cùng lúc.1. h tr các công ngh m i g n như ngay l p t c. Đ làm đư c đi u này nhân th c hi n ch đ phân chia th i gian c a b x lý trung tâm. đ c trưng cho các h đi u hành đ y đ tính năng dòng UNIX. thì HĐH s tìm nh ng trang b nh đã lâu không đư c s d ng đ chuy n chúng t b nh lên đĩa c ng. M t s h th ng Unix cũ và m t s h th ng hi n đ i . Vi c này có làm gi m t c đ làm vi c. Nhưng đ chuy n GNU thành m t HĐH hoàn ch nh thì ch còn thi u nhân.3 Đ c đi m chính c a HĐH Linux Do mã ngu n Linux phân ph i t do và mi n phí. T ch c b nh theo trang H th ng b nh Linux đư c t ch c d ng các trang v i dung lư ng 4K.

H tr m t ph n các kh năng c a System V và BSD POSIX 1003.1. khi này ch ph n mã c n thi t c a chương trình m i n m trong b nh . N p môđun th c hi n “theo yêu c u” Nhân Linux h tr vi c cung c p các trang b nh theo yêu c u. Linux 100% tương ng v i tiêu chu n POSIX 1003. thì Linux ch n p vào b nh m t b n sao c a mã chương trình và t t c các ti n trình gi ng nhau cùng s d ng m t mã này. và th c hi n cùng lúc nh ng chương trình này d n đ n hao h t b nh không đáng có. Cùng s d ng chương trình N u c n ch y m t lúc nhi u b n sao c a cùng m t ng d ng nào đó6 . đ s d ng tín hi u và b nh chung. Trên các h th ng cũ nh ng thư vi n đó n m trong m i t p tin chương trình. System V IPC Linux s d ng công ngh IPC (InterProcess Communication) đ trao đ i thông tin gi a các ti n trình. 6. 100% tương ng v i tiêu chu n POSIX 1003. ho c nhi u ngư i dùng ch y cùng m t chương trình . nh đó nâng cao r t nhi u t c đ truy c p t i nh ng chương trình và ti n trình thư ng dùng.1 Th nào là HĐH nói chung và Linux nói riêng (bao g m c Microsoft Windows) chuy n lên đĩa t t c n i dung c a b nh thu c v nh ng ng d ng không làm vi c t i th i đi m hi n th i (t c là T T C các trang b nh thu c v ng d ng s đư c lưu lên đĩa khi không đ b nh ) và như v y kém hi u qu hơn. chương trình này d tr m t ph n b nh có kích thư c xác đ nh đ làm b đ m cho đĩa.1. Có m t s thư vi n tiêu chu n đư c dùng cùng lúc cho vài ti n trình. và như v y cho phép gi m kích thư c b nh b ng d ng chi m. Ngày nay giao di n này đư c t t c các h đi u hành m i h tr .1. 9. còn nh ng ph n mã không s d ng t i th i đi m hi n t i thì n m l i trên đĩa. 8. Linux s d ng h th ng đ m linh đ ng hơn: b nh đư c d tr cho đ m đư c tăng lên khi b nh không đư c s d ng. 6 ho c m t ngư i dùng ch y vài ti n trình gi ng nhau. 10. Ngư i dùng MSDOS s nh đ n chương trình SmartDrive. B đ m đ ng c a đĩa B đ m c a đĩa đó là m t ph n b nh c a h th ng dùng làm nơi lưu nh ng d li u thư ng dùng c a đĩa. 7 5. Thư vi n chung Thư vi n – b các quá trình (thao tác) đư c chương trình dùng đ làm vi c v i d li u. Thêm vào đó Linux còn h tr các kh năng c a System V và BSD đ tăng tính tương thích. Trên các h th ng m i (bao g m Linux) có h tr làm vi c v i các thư vi n đ ng (dynamic) và tĩnh (static) đư c chia ra. đó là m t b các th t c ngôn ng C. Microsoft Windows NT cũng h tr POSIX 1003.1 (Portable Operating System Interface – giao di n c a h đi u hành lưu đ ng) đưa ra giao di n tiêu chu n cho các h th ng Unix. 7. và s gi m xu ng khi h th ng hay ti n trình c n nhi u b nh hơn.1.

M68000 (Atari và Amiga). FreeBSD và OS/2. 13. bây gi nó có th làm vi c trên t t c các b vi x lý Intel b t đ u t 386 và k t thúc là các h th ng nhi u b x lý Pentium IV.. rlogin. Kh năng h tr m ng Linux có th g n vào b t kỳ m ng n i b nào. . MIPS. Đ ng th i có h tr dùng Linux là máy ch ho c máy khách cho m ng khác. trình d ch l nh ngư i dùng và các ti n ích. HFS.. .1. truy c p dial-up qua các giao th c SLIP và PPP. Ngư i ta đã vi t ra hàng lo t các chương trình ng d ng. bochs. . 1. c u trúc (h th ng) t p tin. bao g m c các b x lý 64bit.8 HĐH Linux: l ch s và các b n phân ph i 11. n u h th ng đáp ng tiêu chu n iBCS2 (intel Binary Compatibility). Nhân đó là cho phép s d ng nhi u h đi u hành trên m t máy Ngư i d ch: b n phân ph i Linux h tr nhi u b x lý nh t c n ph i k đ n Debian (http://www.v. 12. H tr t t c các d ch v Unix. PowerPC và nh ng b x lý khác8 . còn có m t lo t các chương trình t o máy o7 mã ngu n m cũng như s n ph m thương m i: qemu. Đ ch y nh ng chương trình như v y dư i Linux đã phát tri n các trình gi l p (emulator) cho DOS. vmware. . sharing) các t p tin và in t xa trong các m ng Macintosh.org) 8 7 . debian. Ngoài ra. bao g m DOS. và c các h th ng t p tin m i. Trong khi đó h th ng t p tin chính c a Linux. ssh). như AMD. Đ ng th i Linux còn làm vi c trên r t nhi u b x lý tương thích v i Intel c a các nhà s n xu t khác. H tr các đ nh d ng h th ng t p tin khác nhau Linux h tr m t s lư ng l n các đ nh d ng h th ng t p tin. . 14. Xin đư c nói luôn là trong cu n sách này chúng ta ch xem xét trư ng h p Linux cho các máy tính tương thích v i IBM. Ngoài ra còn có phiên b n Linux cho các b x lý khác bao g m ARM. làm vi c trong các m ng TCP/IP. HĐH Linux còn có kh năng ch y chương trình dành cho b x lý Intel c a các h th ng Unix khác. Windows 3. Windows 95 và Wine. Trong Internet còn có nh ng thông báo nói r ng trên các b x lý Athlon và Duron c a AMD Linux còn làm vi c t t hơn so v i trên Intel. k t n i t xa (telnet. trong đó có c nh ng chương trình có ích và không đ n n i t i. DEC Alpha.v. Kh năng ch y chương trình c a HĐH khác Trong l ch s Linux không ph i là h đi u hành đ u tiên. cho các HĐH đã phát tri n trư c Linux. NetWare và Windows. như reiserfs. SUN Sparc. bao g m các h th ng t p tin DOS và OS/2. Làm vi c trên các ph n c ng khác nhau M c dù đ u tiên HĐH Linux đư c phát tri n cho máy tính cá nhân (PC) trên n n t ng Intel 386/486. pearpc.2 B n phân ph i Linux Trong b t kỳ h đi u hành nào cũng có th chia ra 4 ph n chính: nhân. bao g m Networked File System (NFS). đư c g i là Second Extended File System (ext2fs) và Third Extended File System (ext3fs) cho phép s d ng không gian đĩa m t cách có hi u qu . Windows. . . trong đó có chia s (dùng chung.

Nhưng hi n nay có th chia ít nh t 3 nhóm b n phân ph i. Có th tìm th y danh sách tương đ i đ y đ cùng v i đ c đi m ng n g n c a m i b n phân ph i trên http://www. c n tìm cách gi i quy t s ph thu c và mâu thu n gi a các gói (và gi a các phiên b n c a gói) chương trình. Thông thư ng t t c nh ng chương trình n m trong b n phân ph i Linux đ u dùng b n quy n GPL.2 B n phân ph i Linux 9 thành ph n chính. Ngoài ra. trên th gi i đang có hàng trăm (hàng nghìn?) b n phân ph i Linux và m i ngày l i xu t hi n các b n m i. Như đã nói trên. M t vài tác gi đã th phân lo i các b n phân ph i d a trên nh ng tiêu chí khác nhau: ˆ c u trúc h th ng t p tin ˆ chương trình cài đ t ˆ phương ti n dùng đ cài đ t các gói chương trình ˆ thành ph n c a các ti n ích và chương trình ng d ng có trong b n phân ph i. hay nói đúng hơn là b t kỳ ngư i nào không lư i sưu t p các chương trình t do. Trình d ch l nh hay h v (shell) – là chương trình t ch c giao ti p gi a máy tính và ngư i dùng. linuxhq. Và cu i cùng các ti n ích – đó đơn gi n là các chương trình riêng l . Ngoài ra.1. Và suy nghĩ đó có ph n nào đúng. mà đ i di n c a m i nhóm là Red Hat. n u chính xác thì t “Linux” ch có nghĩa là nhân. nhưng có ch c năng chính là th c hi n các công vi c d ch v (service). Tuy nhiên các nhà phát tri n c a m t b n phân ph i Linux c n t o ra ít nh t m t chương trình cài đ t đ đưa HĐH lên máy tính tr ng không chưa có HĐH nào.com (còn có m t s b n phân ph i khác ti ng Anh). . vì th n u mu n có th tìm th y t t c nh ng gì có trên th gi i (h u h t nh ng trang này dùng ti ng Anh và các b n phân ph i Vi t Nam ít đư c nói đ n). Vì th khi nói v h đi u hành nói chính xác hơn s là “h đi u hành d a trên nhân Linux”. nòng c t c a HĐH. B n phân ph i – đó là m t b các chương trình ng d ng bao g m t t c b n ph n chính c a HĐH. đ ng th i còn có thêm các chương trình cho công vi c hàng ngày c a ngư i dùng. t c là nhân. nó đi u khi n các thi t b ph n c ng và đi u khi n vi c th c hi n chương trình. Slackware và Debian. C u trúc t p tin (h th ng t p tin) – là h th ng lưu t p tin trên các thi t b lưu. R t có th xu t hi n trong b n đ c ý nghĩ r ng b t kỳ ai cũng có kh năng cho ra b n phân ph i Linux. M c dù h u h t các tác gi cho r ng s khác nhau gi a các b n phân ph i là không cơ b n. trên trang đó cũng như nhi u trang web khác còn có liên k t đ n nh ng danh sách b n phân ph i khác. M t trong nh ng k t qu c a vi c phân ph i t do chương trình ng d ng cho Linux đó là có nhi u công ty cũng như nhóm các nhà phát tri n đ c l p đã phát hành ra các b n Linux khác nhau đư c g i là “b n phân ph i Linux”. nói chung không khác so v i nh ng chương trình bình thư ng khác mà ngư i dùng có th ch y. h v shell và các ti n ích. Và như chúng ta s th y sau đó không ph i là bài toán đơn gi n. Nhân c a HĐH Linux hi n th i đang đư c phát tri n dư i s lãnh đ o c a Linus Torvalds và phân ph i m t cách t do (v i b n quy n GPL) gi ng như m t s lư ng kh ng l các chương trình ng d ng và ti n ích khác. Tuy v y. h th ng t p tin.

org) đã cho ra đ i m t b n phân ph i m i hư ng v ngư i dùng Vi t Nam – FCxVnOSS. h tr nhi u ph n c ng khác nhau ˆ có th cài đ t thêm các ph n m m khác m t cách d dàng ph n l n chương trình đã đư c biên d ch s n cho m i yêu c u c a ngư i dùng ˆ nh ng b n phân ph i này đư c m t nhóm các nhà phát tri n duy trì. th hai. phân cách nhau b i d u ch m. Vì Linus Torvalds ti p t c đi u hành vi c phát tri n nhân. Và t t nh t n u nhóm các nhà phát tri n này nh n đư c ngu n l i t s n ph m Linux c a mình. m t Vi t ki u M duy trì.13. 9 . Đ i v i ngư i dùng Linux Vi t Nam hi n th i có hai l a ch n: th nh t. t đi n ti ng Vi t.org). s d ng các s n ph m Linux l n có h tr ti ng Vi t. . Phiên b n nhân Linux thư ng đư c ký hi u b ng ba s 9 . L a ch n th hai đó là s d ng các b n phân ph i h tr ti ng Vi t t t như Debian. L a ch n th hai này đư c ưu tiên vì: ˆ chúng có h tr ti ng Vi t và càng ngày càng hoàn thi n ˆ chúng có trình cài đ t t t.6.opensuse. nên phiên b n c a nhân tăng lên theo th t .13. Chúng ta s nói đ n hai s l a ch n này m t cách k càng hơn.1 đư c d a trên nhân phiên b n 2. T 2. Lý do chính là chưa đ t đư c tiêu chu n th hai nêu trên. Ubuntu và Mandriva. Khi nói đ n phiên b n c a Linux thư ng có ý là phiên b n nhân (vì m t h đi u hành là Linux ch khi nó s d ng nhân Linux). s d ng các s n ph m Linux ti ng Vi t do m t s ngư i t nguy n duy trì. Hi n th i có m t b n phân ph i như v y: vnlinux-CD (cùng v i m t vài bi n th ) do anh Larry Nguy n. Th m chí ch trong kho ng th i gian không lâu mà tôi s d ng Linux (kho ng 5 năm) đã có nhi u b n phân ph i Vi t Nam cũng như nư c ngoài đã chào t m bi t th gi i Linux vì nhóm h tr c a chúng không thu đư c nhi u l i nhu n và sau đó m t th i gian ng ng h tr tác ph m c a mình. b n phân ph i openSuSE Linux 10. ch không phân nhánh và nhân lên gi ng như trư ng h p b n phân ph i. . Ngoài ra còn đ m b o là b n s nh n đư c phiên b n m i c a nó trong tương lai. Không s trư ng h p “đem con b ch ”.6.16. L a ch n th nh t. t c là làm vi c như m t công ty thương m i.. Đ k t thúc câu chuy n v l a ch n b n phân ph i Linux c n nói thêm là g n đây bác Nguy n Đ i Quý (http://vnoss.16. openSuSE cũng đang d n d n h tr ti ng Vi t (http://vi. B n phân ph i này d a trên n n t ng c a FC c ng thêm giao di n ti ng Vi t và m t s ng d ng “mang tính Vi t Nam” như chương trình gõ ti ng Vi t.10 HĐH Linux: l ch s và các b n phân ph i V y thì c n l a ch n b n phân ph i theo tiêu chu n nào? Theo ý ki n c a tác gi thì đ i v i ngư i dùng Vi t Nam có hai tiêu chu n: th nh t ph i có giao di n ngư i dùng ti ng Vi t và th hai ph i có m t nhóm các nhà phát tri n h tr b n phân ph i này.6. c p nh t thư ng xuyên thông thư ng là theo m t l ch đ nh s n. t c là Linux phiên b n 2. C n nói vài l i v đánh s phiên b n. Phiên b n nhân v i s th hai Ngư i d ch: Đi u này ch đúng v i các phiên b n nhân trư c 2. theo ý ki n c a tôi không đư c ưu tiên đây. Ví d .6 tr đi Linus và các nhà phát tri n khác th nghi m dùng b n s . C n phân bi t s phiên b n c a b n phân ph i và s phiên b n c a nhân.

windowmaker. . thì có th s d ng nó đ h c Linux và r t có th s ng c nhiên v kh năng c a HĐH này. Như v y Linux có m t ưu đi m l n đó là kh năng làm vi c th m chí trên Ngư i d ch: b n g c đưa ra m t b n đã quá cũ. Vì th n u b n có m t cái máy tính cũ. . nhưng không b n v ng. nên đ cài đ t HĐH này c n ít nh t là m t máy tính có b x lý 386. MB B nh Đĩa c ng Yêu c u nh nh t: ch làm vi c trong giao di n văn 8 200 b n v i dòng l nh c a shell. B ng 1. Yêu c u đ i v i ph n c ng c a h th ng mu n cài đ t Linux còn đư c xác đ nh b i l a ch n ph n m m c a ngư i dùng (và t c là s ph thu c vào phiên b n c a các ph n m m và ít nhi u vào b n phân ph i). Dùng môi trư ng làm vi c đ ho KDE. 2. nh ng máy tính s n xu t g n đây đáp ng đư c toàn b nh ng yêu c u đã đưa ra và s đưa ra dư i đây. T t nhiên là b n có th cài đ t b t kỳ phiên b n nào. 128 1000 Ch y các ng d ng c n nhi u b nh (như GIMP. Dùng đư c giao di n đ ho X Window cùng v i m t 32 400 s trình qu n lý c a s nh nh như icewm. nhưng c n bi t cách đánh s phiên b n n u khi nào đó b n mu n c p nh t nhân Linux c a mình. Xin đ ng lo l ng.3 Yêu c u đ i v i máy tính 11 l (ví d .1 dư i đây s đưa ra m t vài con s ch v i m c đích giúp b n đ c làm quen.0) thư ng không đư c s d ng đ t o các b n phân ph i. nh ng con s này là không chính xác10 nhưng không khác bi t nhi u gi a các b n Linux khác nhau. trên đó không th ch y n i Windows. nhưng đ i v i ngư i dùng m i thì nên ch n phiên b n nhân v i s th hai trong phiên b n là ch n.org). Phiên b n v i s th hai ch n (ví d 2. 1.6. T t nhiên phiên b n như v y có th làm vi c.v.1. có đ m t s ng d ng ngư i dùng như vim. B ng 1.5. Chúng đư c dành cho nh ng ngư i tình nguy n có mong mu n th nghi m đ tìm ra các l i. Theo các ngu n thông tin khác nhau thì t t c các bi n th đ u dùng t t: SX.1: Yêu c u đ i v i ph n c ng Mong mu n c a ngư i dùng Yêu c u. còn phiên b n đ c bi t có th ch y t m t ho c hai đĩa m m không c n đĩa c ng thì tôi đã g p. DX v. 10 . các 256 1500 ng d ng n m trong KOffice.16. Nhưng trong cu n sách này chúng ta s không xem xét nh ng trư ng h p đ c bi t như v y. .3 Yêu c u đ i v i máy tính Tôi đã đ c đâu đó nói r ng có nh ng phiên b n Linux đ c bi t. . Vì HĐH Linux s d ng ch đ b o v c a b vi x lý.. fluxbox. emacs. N u cài đ t m t b n phân ph i đ y đ thì đương nhiên l a ch n nhân đã đư c các nhà phát tri n làm giùm b n đ c. tôi xin đưa ra m t b n m i d a trên cơ s c a openSuSE 10. OpenOffice. làm vi c th m chí trên b x lý 8086 v i 512Kbyte b nh . vì đó là phiên b n th nghi m (ch dành cho phát tri n).1.13) đư c coi là làm vi c n đ nh.

. N u máy tính c a b n có th làm vi c v i các h đi u hành Windows 2000 và Windows XP thì vi c ch y Linux trên nó s không có gì khó khăn. t t nhiên có kèm theo đ a ch bưu đi n. GIMP. Và vi c gi u đ a ch không làm nh hư ng đ n nh ng ai có mong mu n mua Linux đ nghiên c u. Như đã nói trên. thì có toàn quy n sao chép toàn b b n phân ph i Linux ho c m t ph n b t kỳ c a nó ch ngư i quen. mà trư c đây ch có th dùng MS DOS (t t nhiên là trong trư ng h p này chúng ta ch thu đư c ch đ dòng l nh. T t nhiên là chênh l nh giá thành đĩa ph i không quá cao. Ch c n vào đ a ch http://shipit. giá thành bán Linux bao nhiêu đó là quy n c a ngư i bán (ngoài ra giá thành cao còn có các b n phân ph i chuyên nghi p như Xandros. Đ b t đ u h c Linux thì ch c n có m t máy tính v i b x lý 486. ph n còn l i dành cho d li u. T t nhiên đ i v i dung lư ng b nh cũng như c u hình máy nói chung thì máy càng m nh.org. Có th làm vi c đ ng th i nhi u ng d ng yêu c u: OpenOffice. Đ a ch c th xin không đưa ra đây vì qu ng cáo trong th gi i hi n đ i đã không còn là mi n phí. Kile (dùng đ vi t nh ng dòng này). càng nhi u b nh . . 10GB c ng dành cho cài đ t Linux.com đăng ký s lư ng đĩa b n c n. T t hơn h t là nên mua đĩa c a m t công ty máy tính ho c qua m t c a hàng trên m ng. b nh 256Mb (+256Mb swap). 1. sau m t th i gian kho ng 1 tháng – 11 12 máy giúp chuy n hư ng các gói m ng Ph n này do ngư i d ch vi t . C n nói riêng v h th ng phát đĩa v i b n phân ph i Ubuntu m t cách mi n phí.4 L y Linux đâu?12 Và trong ph n cu i c a chương th nh t chúng ta s tr l i ng n g n cho câu h i “L y Linux đâu?”. Ngư i d ch: Đ k t thúc xin đưa ra đây trư ng h p c u hình máy c a tôi: b x lý 686. StarDict (chương trình t đi n). KBabel. Novell Desktop. 16MB b nh và c ng kho ng 300MB. C n nói thêm là nh ng đĩa ghi v a hè thư ng có l i và có th gây m t d li u ho c làm h ng ph n c ng.1 v i môi trư ng làm vi c KDE. Có nghĩa là ngư i dùng không có ý đ nh thay đ i chương trình ho c mua bán nh ng chương trình này. ho c t i xu ng t Internet ho c mua đĩa CD (DVD) Linux ch nh ng ngư i bán hàng đâu đó trên hè ph mà không s b truy c u vì vi ph m b n quy n (các chương trình có b n quy n thương m i thư ng dùng t “s đ ng ý” gi a ngư i dùng và nhà phân ph i) c a các nhà (công ty) phát tri n. Tôi hi n s d ng openSuSE Linux 10. ). Hi n gi trên m ng Vi t Nam đã xu t hi n m t vài c a hàng bán đĩa Linux.ubuntu. nhưng đi u này không ngăn c n vi c dùng các máy tính cũ làm vi c có l i ví d làm router11 ). Khi đó còn có kh năng l a ch n và có b o đ m là s đ i đư c đĩa x u. Linux cùng v i m t s lư ng kh ng l các chương trình ng d ng đư c phân ph i g n như mi n phí. Trong s ba phương án k trên thì đ i v i ngư i dùng Linux Vi t Nam phương án mua CD.12 HĐH Linux: l ch s và các b n phân ph i nh ng máy r t cũ. c ng càng r ng thì càng t t. DVD là t t nh t. Không có gì là th a thãi. Konqueror..

.1. Theo tôi nghĩ đây là cách t t nh t n u b n không có đi u ki n đ mua đĩa.4 L y Linux đâu? 13 1 tháng rư i b n s nh n đư c chúng.

1 ˆ T Chu n b cài đ t Có th cài đ t Linux b ng m t trong các cách sau: đĩa CD-ROM đĩa c ng ˆ T b n sao chép Linux trên ˆ T máy ch t p tin c a m ng n i b qua NFS. 2. Fedora. ph n l n ngư i dùng Vi t Nam trư c khi b t đ u h c Linux đã làm quen và r t có th đã có kinh nghi m s d ng các HĐH dòng Windows như Windows 98. . Mandrake. Thay vào đó là nh ng gì b n c n bi t và chu n b trư c khi cài đ t. trên Internet b n có th tìm th y r t nhi u cu n sách nó v v n đ này. Chính vì v y trong cu n sách này. R t may là không nh t thi t ph i đánh m t t t c nh ng th đó. Và trên th c t thì t m th i Linux khó có th là HĐH đ u tiên mà ngư i dùng làm quen.. Và t t c các b n phân ph i l n (Debian. tác gi s đi c th và chi ti t vào nh ng gì đ c bi t khi cài đ t Linux trên máy tính đã có m t trong các h đi u hành (HĐH) Windows cũng như vi c kh i đ ng nhi u h đi u hành. m t cách t nhiên. . đ ng th i. B i vì trên m t máy tính có th cùng “chung s ng hòa bình” hai HĐH và th m chí nhi u hơn n a (n u có đ ch trên đĩa!). Slackware. Chính vì th .. V nđ ch . phía dư i s nói cách cài đ t HĐH Linux trên máy tính đã cài đ t m t trong các h đi u hành c a hãng Microsoft. it’s good when it’s free” – Linus Torvalds. Ngoài ra. mà xin b n đ c hãy tìm các cu n hư ng d n tương ng. n u ngư i dùng đã làm vi c v i HĐH Windows và quy t đ nh th nghi m v i Linux.) đ u đã có cu n hư ng d n cài đ t r t chi ti t. Hãy ch đ i và hy v ng trong tương lai không xa s có b n d ch Ti ng Vi t c a nh ng cu n sách này. tác gi s không đưa ra các bư c c th c a vi c cài đ t. Như th . Windows 2000 và Windows XP. cùng v i nh ng gì đã t o ra và đã c u hình dư i dư i Windows.Chương 2 Cài đ t HĐH Linux trên cùng máy tính v i Windows “Software is like sex. Thông thư ng trên các đĩa c a b n phân ph i Linux đã có hư ng d n ng n g n cách cài đ t Linux. thì h không mu n m t đi môi trư ng làm vi c quen thu c c a mình. cho m i tình hu ng s d ng.

hãy thu th p (hãy vi t lên m t t gi y) t t c nh ng thông tin c u hình c n thi t c a máy tính. – hdc (Master trên controller s 2 hay Secondary Master). – giao th c (Microsoft. Xin đ ng lư i bi ng và hãy c g ng ghi càng nhi u d li u v m t thi t b càng t t (t t c nh ng thông tin có th tìm th y). MouseMan.2. ˆ T m t máy ch WWW qua giao th c HTTP. ˆ Chu t: – lo i chu t (serial. Trư c khi b t đ u cài đ t. ˆ BIOS: – nhà s n xu t. v. ch n l nh Properties.v. hơn n a vi c mua các đĩa CD bây gi không gây khó khăn gì. ˆ Controller đĩa c ng: lo i (IDE hay SCSI) và dung lư ng c a đĩa (n u như b n đ c dùng đĩa IDE. thì c n tìm ki m theo các cách khác. thì b n s tìm th y r t nhi u thông tin n u nh n chu t ph i vào bi u tư ng My Computer. – hdb (Slave trên controller s 1 hay Primary Slave). xin đư c đưa ra đây danh sách nh ng thông tin c n thu th p. – s hi u phiên b n. nh ng d li u này s c n đ n khi cài đ t và c u hình. N u như b n không th y thông tin nào đó. thì c n ki m tra xem BIOS có h tr vi c truy c p ch đ LBA hay không): – hda (Master trên controller s 1 hay Primary Master). ˆ T máy tính 15 xa (ví d t Internet) qua giao th c FTP. ˆ Dung lư ng c a b nh (tính b ng Kilobyte ˆ CD-ROM: – Giao di n (IDE. Logitech. đây b n có th tìm th y g n h t t t c thông tin c n thi t. khi mà vi c tìm ki m chúng s khó khăn hơn. – hdd (Slave trên controller s 2 hay Secondary Slave). SCSI. ). PS/2. .nhà s n xu t và s m u mã. – đ i v i các đĩa CD-ROM không ph i IDE. hay giao di n khác). k c vi c m v máy và đ c nh ng dòng ch trên thi t b . . hay bus mouse). Theo ý ki n cá nhân c a tác gi thì thu n ti n và có tính th c t nh t là cài đ t Linux t CD-ROM. . N u như máy tính c a b n t m th i v n còn làm vi c dư i HĐH Windows 95/98/2000/XP. – nhà s n xu t và s m u mã c a adapter SCSI (n u có).1 Chu n b cài đ t ˆ T máy tính khác trong m ng n i b qua SMB. cũng như SCSI . Đ giúp b n đ c.

Nhưng rơi vào tình hu ng như v y h t s c d dàng nh t là v i ngư i dùng l n đ u tiên cài đ t Linux. ˆ C c màn hình – nhà s n xu t. đ u tiên. – tên mi n c a công ty b n đ c. r t nên th c hi n vài thao tác “phòng xa” (“phòng cháy hơn ch a cháy”). Các thao tác này không ph i lúc nào cũng đem l i đem l i m t k t qu theo ý mu n. thì hãy ghi l i nh ng d li u sau: – nhà s n xu t và s m u mã c c m ng. – s m u mã (hay chipset s d ng) – dung lư ng b nh . và trong trư ng h p x u có th máy tính c a b n đ c s không kh i đ ng n a. Vì r t có th b n đ c s ph i phân vùng l i đĩa. Windows không hi n th nh ng giá tr này.16 – s nút. c n t o m t đĩa m m kh i đ ng hay m t đĩa m m giúp ph c h i h th ng (n u b n đ c còn chưa t o). c n ghi l i nh ng d li u có giá tr (backup). max) c a t n s làm m i theo chi u d c và theo chi u ngang (nh ng giá tr này b n đ c ch có th tìm th y trong tài li u đi kèm v i màn hình. – đ a ch IP c a máy ch WINS(Windows Internet Name Service). ˆ N u như b n đ c mu n k t n i m ng (mà UNIX nói chung là HĐH dành cho m ng). và chúng r t quan tr ng trong khi c u hình giao di n đ h a). – tên c a máy tính trong m ng. chu n b các t p tin (đĩa m m. – đ a ch IP c a mình. Th hai. Chính vì v y. ˆ Màn hình – nhà s n xu t – s m u mã. Và th ba. – đ a ch IP c a gateway.2 Phòng xa và nh ng l i khuyên Trư c khi cài đ t HĐH Linux sau Windows. – các giá tr gi i h n (min. thay đ i b n ghi kh i đ ng (Boot Record) và làm vi c v i các t p tin kh i đ ng cũng như các t p tin c u hình. CD) cài đ t . Có bi t cách thoát ra kh i tình hu ng này và ph c h i d li u c n thi t không đó còn là m t câu h i. – m t n m ng con (subnet mask). ˆ Lo i và nhà s n xu t c c âm thanh và game controller (n u như có) 2. Cài đ t HĐH Linux trên cùng máy tính v i Windows – đ i v i chu t c m vào c ng n i ti p thì c n s th t c a c ng đó. – đ a ch IP c a các máy ch tên mi n (DNS server).

Th nh t. Vì cu i cùng ngư i dùng không khó khăn gì khi gõ câu l nh startx.2 Phòng xa và nh ng l i khuyên 17 cho h th ng cũ.2. Samba). vì cho r ng phương án theo m c đ nh là đ . ftp. NFS.1. tác gi cũng mu n đưa ra vài l i khuyên đ giúp ngư i dùng đưa ra quy t đ nh trong khi cài đ t. M t l i khuyên quan tr ng khác: n u có gì đó x y ra không theo ý mu n thì không nên hoang mang. và k t qu là máy tính không th kh i đ ng đư c. Sau khi làm xong các công vi c phòng xa. Tuy nhiên. tác gi khuyên không nên đ ng ý v i vi c t đ ng kh i đ ng vào giao di n đ h a. t c là các t p tin ghi l i s ki n c a h th ng (c n tìm chúng trong thư m c /var/log). Không hi u h t v n đ tác gi nghĩ là không còn cách gì khác ngoài đ nh d ng l i đĩa và cài đ t l i t đ u. và tư ng l a đóng h t các truy c p t m ng. khi trong hư ng d n s d ng LILO có đưa ra nh ng l i khuyên sau cho ngư i dùng khi rơi vào trư ng h p khó khăn như v y: ˆ Không ho ng h t. m c dù đã c u hình giao di n m ng cho máy. c n quy t đ nh s t ch c kh i đ ng nhi u HĐH như th nào. chu n b các đĩa (phân vùng) đ cài đ t. hãy th m i cách đ tìm ra nguyên nhân. thì có th b qua chúng và chuy n th ng đ n v n đ ch n chương trình kh i đ ng. Bây gi thì tác gi đã hi u là có th ph c h i l i n u như không quy t đ nh quá v i vàng. Như đã nói trên. đ ng v i vàng và hãy chú ý đ c nh ng thông báo s hi n th trên màn hình. Vì v y có th nói r ng Werner Almesberger đúng. Nhưng chúng ta quá v i vàng! Th hai. thì trong quá trình cài đ t c n ch rõ các d ch v đư c m . Nhưng trư c khi chuy n sang các bư c c th đ chu n b đĩa. Đ c bi t trong các trư ng h p. t c là c n chia đĩa thành s phân vùng c n thi t. Nguyên nhân là trong phương án theo m c đ nh thì tư ng l a đư c cài đ t. Đ minh ch ng cho l i khuyên này xin đư c k l i trư ng h p khi tác gi cài Red Hat 7. Đ m truy c p này. N u như có gì đó không làm vi c. . N u ai đó không đ kiên nh n đ đ c ph n lý thuy t này. ki m tra l i nhi u l n thao tác c a mình. Xin thêm m t l i khuyên ph bi n sau: * Hãy xem các t p tin log. xin đư c nói qua m t chút v c u trúc c a đĩa và quá trình kh i đ ng HĐH. K t qu là tác gi không th truy c p đư c đ n máy này qua các giao th c m ng (telnet. và t đ ng nh n lên nút Next. Xin chia s m t kinh nghi m bu n: khi l n đ u tiên tác gi cài Linux trên máy tính đã có Windows NT. khi h th ng làm nh ng gì b n đ c không mong đ i. Ngư i dùng c n tìm các cu n hư ng d n tương ng. ˆ Hãy đ c tài li u. còn vi c c u hình giao di n đ h a (n u có gì đó làm vi c không đúng) v i ngư i dùng m i r t khó thành công. quá trình cài đ t HĐH Linux nói riêng không ph i là đ tài c a cu n sách. và hãy suy nghĩ k khi ch n câu tr l i. Ch sau khi đó m i th c hi n các bư c s a l i.

mà dung lư ng đĩa l i phát tri n nhanh hơn kh năng c a DOS. t là đ c và ghi thông tin theo các kh i. /* char type. tính t 0) */ s sector có trong phân vùng (32 bit) */ B ng phân vùng đĩa thư ng đư c t o b i chương trình fdisk. M t trư ng h p nói riêng đó là trong các phân vùng khác nhau có th cài đ t các h đi u hành khác nhau. /* int length. Đĩa v i c u trúc hình h c C/H/S có dung lư ng C*H*S*512 byte.3 2. n m trên cùng m t tr c và quay v i v n t c l n. Ch khác bi t v i fdisk giao di n thu n ti n: ch d n s d ng . Đĩa c ng là các thi t b kh i. t c là ch cho controller bi t c n ghi thông tin này vào sector nào. B ng phân vùng ch a 4 b n ghi 16 byte cho 4 phân vùng chính. di chuy n t tâm đĩa ra rìa ngoài c a đĩa. Sector đư c đánh đ a ch theo s th t cylinder. Trên HĐH Linux ngoài chương trình fdisk “truy n th ng” (tuy v y r t khác so v i chương trình fdisk trong MS-DOS và Windows). /* int start. còn t p h p các rãnh n m ch ng lên nhau g i là cylinder. và có th ghi vào m i sector 512 byte thông tin.18 Cài đ t HĐH Linux trên cùng máy tính v i Windows 2. Khi đó đã nghĩ ra vi c chia đĩa thành các phân vùng. và kích thư c nh nh t c a kh i b ng m t sector (512 byte). 83 -. Đ làm đư c đi u này. Vì th đ c đi m c a m t đĩa thư ng là t p h p ba sô: s cylinder/s rãnh trong cylinder/s sector trên rãnh hay còn vi t t t là C/H/S (ba ch cái đ u tiên c a các thu t ng Ti ng Anh tương ng: Cyliner/Head/Sector). Ba s này g i là c u trúc “hình h c c a đĩa”. /* char end[3]. gi ng như fdisk ch dành đ làm vi c v i b ng phân vùng đĩa: nó không quan tâm chú ý đ n thông tin có trên đĩa. s th t đ u đ c (hay rãnh) và s th t sector trên rãnh. 0x80: phân vùng kích ho t. Đ có th ghi thông tin lên đĩa. /* }.LINUX_NATIVE) */ CHS sector cu i cùng.2 Phân vùng và b ng phân vùng c a đĩa Trong các h th ng Intel đĩa thư ng đư c chia thành các phân vùng. Đ c/Ghi d li u đư c th c hi n b i các đ u đ c n m gi a các đĩa này. c n đ t đ u đĩa đúng v trí. Vòng tròn đ u đ c v ra trên các đĩa khi quay quanh chúng g i là rãnh (track). 2. đĩa c ng g m vài đĩa có ph l p t tính. trong sector s 0 c a đĩa (sector s 0 c a rãnh đ u tiên trong cylinder s 0) ghi nh b ng chia đĩa thành các phân vùng (partition table).1 Phân vùng trên đĩa và quá trình kh i đ ng Th nào là c u trúc “hình h c c a đĩa” Như b n đ c bi t. M i rãnh l i chia thành các sector. R t có th nguyên nhân c a vi c phân vùng là nguyên nhân l ch s : các phiên b n MS-DOS đ u tiên không th s d ng đư c các đĩa l n.3. M i b n ghi có c u trúc như sau: struct partition { char active. M i phân vùng đư c dùng như m t đĩa v t lý riêng r . 24 bit lo i phân vùng (ví d . /* char begin[3]. 24 bit */ s c a sector đ u tiên (32-bit.3. còn có hai chương trình đ làm vi c v i phân vùng đĩa: cfdisk và sfdisk. Chương trình cfdisk. 0: không kích ho t */ CHS sector đ u tiên.

Tuy nhiên trên th c th v n có nh ng h n ch .2. Như v y. thì ngư i ta sáng ch ra phân vùng lôgíc. vì m i phân vùng lôgíc có th ch a b ng phân vùng và các phân vùng lôgíc c a mình. Và trong phân vùng m r ng ngư i ta t o ra các phân vùng lôgíc. m t xích đ u tiên mô t ba phân vùng chính. ví d . vì th không th s d ng đĩa có dung lư ng l n hơn 8. Phân vùng m r ng trên m t đĩa v t lý. cho phép thao tác trên các phân vùng đã có c a đĩa. trong b ng này. và m i m t xích ti p theo – m t phân vùng lôgíc và v trí c a b ng ti p theo.4 Gbyte. cũng gi ng như trong phân vùng m r ng chính. 63 sectors/track Units = cylinders of 8225280 bytes. M i phân vùng m r ng có m t b ng chia c a mình. Chương trình sfdisk trên Linux cho th y toàn b chu i này: [root]# sfdisk -l -x /dev/hda Disk /dev/hda: 784 cylinders. M t trong s các phân vùng chính tr thành m r ng (lo i phân vùng . 255 heads. ngay c v i các BIOS m i (v v n đ này s nói đ n sau). m t cho phân vùng m r ng khác. Khi mà 4 phân vùng tr thành ít.1 Gbyte (nhưng đây là do h n ch c a h th ng t p tin FAT16). t c là dung lư ng có th đ t 2 Tbyte Vì trong b ng chia đĩa ch có 4 dòng cho các phân vùng. DOS s d ng trư ng begin và end c a b ng phân vùng và Interrupt 13 c a BIOS (Int 13h) đ truy c p t i đĩa. Ví d . counting from 0 Device /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda5 — — — /dev/hda6 — — — Boot * Start 0+ 190 0 0 190+ 381 190 190 381+ 381 381 381 End 189 783 — — 380 783 189 189 783 380 380 380 #cyls 190594 0 0 191403 0 0 4030 0 0 #blocks 1526143+ 4771305 0 0 1534176 3237097+ 0 0 3237066 0 0 0 Id 6 5 0 0 6 5 0 0 7 0 0 0 System FAT16 Extended Empty Empty FAT16 Extended Empty Empty HPFS/NTFS Empty Empty Empty S phân vùng lôgíc theo nguyên t c không h n ch . Chương trình sfdisk có vài kh năng cao hơn. Phân vùng m r ng không đư c s d ng tr c ti p mà ch dùng đ ghi các phân vùng lôgíc. còn hai cái còn l i không đư c s d ng. hay trong m t phân vùng m r ng ch a nó (có th g i là “m ”) ch có th làm m t: không m t chương trình phân . Linux không th làm vi c v i hơn 15 phân vùng trên các đĩa SCSI và hơn 63 phân vùng trên đĩa IDE.5 hay F hay 85 trong h cơ s mư i sáu). Linux thì ch s d ng trư ng start và length c a b ng phân vùng đĩa và h tr các phân vùng ch a đ n 232 sector. thu đư c m t chu i các m t xích t b ng phân vùng. ch s d ng có hai dòng đ đưa ra m t phân vùng lôgíc và m t phân vùng m r ng. blocks of 1024 bytes. Sector đ u tiên c a phân vùng m r ng ghi nh b ng phân vùng v i b n đ u vào: m t dùng cho phân vùng lôgíc.3 Phân vùng trên đĩa và quá trình kh i đ ng 19 l nh và h th ng trình đơn (th c đơn). s phân vùng chính trên đĩa ngay t đ u dã h n ch : không th l n hơn 4. còn phân vùng thì không th l n hơn 2.

Windows95 và NT ghi nh DOS MBR trong khi cài đ t.3. Trong Windows các phân vùng lôgíc nh n đư c tên (ch cái). kích thư c ch có 446 (0x1BE) byte. vi c phát tri n và hoàn thi n máy tính cá nhân song song v i s phát tri n c a HĐH c a Microsoft và nh ng quy t đ nh s d ng trong các HĐH này có nh hư ng m nh đ n quy t đ nh c a các nhà phát tri n thi t b ). B ng 2. /dev/hdb. Các phân vùng chính có thêm s 14 trong tên thi t b : /dev/hda1. Xin nói thêm. ). c n n p HĐH vào b nh . th nghi m b nh . . Vi c tìm ki m th c hi n theo th t xác đ nh trong Setup BIOS và theo cách thăm dò sector s 0 c a các thi t b tương ng. /dev/hda7 . đĩa trên Linux nói riêng ( đĩa v t lý) đư c truy c p qua tên c a thi t b : /dev/hda.20 Cài đ t HĐH Linux trên cùng máy tính v i Windows chia đĩa nào trong s đã có (fdisk và tương t ) có th t o thêm m t phân vùng m r ng th hai. trong Windows NT và 2000/XP có th thay đ i tên c a các phân vùng đĩa. khi b t máy tính đ u tiên s ch y chương trình POST (Power On Self Test).3 Quá trình kh i đ ng các HĐH c a công ty Microsoft Dù h đi u hành có là gì. Hai byte cu i cùng c a MBR – “s màu nhi m”. Ngoài ra cũng có th t o MBR c a MS v i câu l nh DOS sau: fdisk /mbr. . v vi c th nghi m b nh .1 cho th y c u trúc c a sector kh i đ ng chính sau khi cài đ t Windows. Ví d n u m t đĩa c ng có hai phân vùng chính (C: và D:) và m t phân vùng m r ng. Ngoài “s màu nhi m” MBR còn ch a b ng phân vùng đĩa đã nói trên. b x lý. Sau khi hoàn thành vi c th nghi m POST g i Int 19h. và sau đó thì vi c đánh s l i theo th t thông thư ng. /dev/hda3. . Chương trình xác đ nh dung lư ng b nh . và xác đ nh các thành ph n khác (bàn phím. CD-ROM và qua m ng. N u đĩa có th kh i đ ng. còn phân vùng lôgíc thì có các tên: /dev/hda5. T nh ng gì đ c p đ n trên có th suy ra t i sao l i có th b qua các tên như /dev/hda3 hay /dev/hda4 (đơn gi n là phân vùng chính th ba và th tư không đư c t o ra) và ngay sau /dev/hda2 b n đ c th y /dev/hda5 (phân vùng lôgíc trong phân vùng m r ng /dev/hda2). trong phân vùng m r ng t o ra hai phân vùng lôgíc. thì đ có th b t đ u đi u khi n máy tính. 2. và theo đó đĩa có th kh i đ ng. Như b n đ c bi t. Hãy b t đ u t MS-DOS và MS Windows cũ (xin đ ng quên r ng. Công vi c c a Int 19h là tìm thi t b kh i đ ng. Chúng ta ch quan tâm đ n vi c kh i đ ng t đĩa c ng. . v.v. (b t đ u t s 5). và m t chương trình nh – trình kh i đ ng chính. nên s không xem xét đ n vi c kh i đ ng t đĩa m m. . MS-DOS. là d u hi u cho bi t sector có MBR. Vì th hãy xem xét qua quá trình kh i đ ng c a các HĐH khác nhau. .v. Trên màn hình thư ng xu t hi n các thông báo v dung lư ng b nh . Xin tr l i v i quá trình kh i đ ng. thì trong sector s 0 c a đĩa có b n ghi kh i đ ng chính – Master Boot Record (MBR). /dev/hda6. kh i đ ng các th adaptor. b t đ u t ch cái cu i dùng dành cho phân vùng chính. danh sách các thi t b nh n ra ( đĩa c ng và m m. /dev/hda2. thì nh ng phân vùng lôgíc này s đư c đ t tên E: và F:. Int 19h c a BIOS n p trình kh i đ ng . c ng COM và v. /dev/sda. c ng. . . ).

Như th . Nhưng chương trình “bé nh ” này không đ kh năng kh i đ ng HĐH. Trong trư ng h p MS DOS chương trình kh i đ ng đ ng n p IO. Ví d .SYS b i các t p tin c a mình. Hãy chú ý đ n c m t “b t đ u t ”. có th tìm t p tin boot.SYS theo đ a ch 700h.DOS. c n thi t cho vi c kh i đ ng h đi u hành. Trong phân vùng đư c đ nh d ng dư i h th ng t p tin FAT.ini: . Windows95 s đ i tên các t p tin c a mình v i ph n m r ng w40 và ph c h i tên ban đ u c a các t p tin h th ng c a DOS. nó tìm trong b ng phân vùng kích ho t và đ c vào b nh trình kh i đ ng th hai. Khi b n đ c ch n kh i đ ng DOS. ˆ Windows95 kh i đ ng gi ng như DOS nhưng thay th IO.SYS. Đ i v i các HĐH khác c a Microsoft thì quá trình kh i đ ng di n ra tương t .SYS và chuy n quy n đi u khi n cho SYSINIT c a môđun IO.SYS và MSDOS. Quá trình kh i đ ng ti p t c v i vi c n p IO. trình kh i đ ng th hai chi m m t sector (512 byte). thì Int này đư c POST chuy n hư ng lên ROM c a c c m ng. b t đ u t sector lôgíc đ u tiên c a phân vùng kích ho t. sector kh i đ ng c a DOS và Windows95 là như nhau.2. Trư ng h p này trên th c t r t hi m khi s d ng. ˆ Windows NT4 s d ng MBR DOS. t t c nh ng gì mà nó có th làm – đó là n p vào b nh chương trình m nh hơn – trình kh i đ ng th hai. nhưng thay th b n ghi kh i đ ng c a phân vùng kích ho t b ng cách thay th NTLDR vào ch IO.ini xác đ nh m t phương án (m t HĐH) kh i đ ng và đư c vi t theo m u sau: đ a_ch _trình_kh i_đ ng_th _hai=‘‘tên_g i_c a_phương_án’’ Đ a ch c a trình kh i đ ng th hai có th là m t phân vùng c th nào đó c a đĩa cũng như t p tin kh i đ ng.ini và n u như tham s timeout l n hơn 0. Các t p tin DOS đư c gi l i dư i các tên tương ng IO.SYS. Đây là m t chương trình m ng và có th làm đư c nhi u th .1: C u trúc c a sector kh i đ ng chính D ch chuy n N i dung 0x000 Mã c a trình kh i đ ng chính 0x1BE B ng phân vùng đĩa 0x1FE “S màu nhi m” (0xAA55) chính vào b nh máy tính và chuy n quy n đi u khi n cho chương trình này. thì đưa ra trình đơn (th c đơn) kh i đ ng.3 Phân vùng trên đĩa và quá trình kh i đ ng 21 B ng 2. khi h đi u hành kh i đ ng t máy ch . Trình kh i đ ng th hai n p l p chương trình đ u tiên. thì quá trình kh i đ ng s ti p t c v i vi c x lý Int 18h. trình kh i đ ng th hai chi m vài sector. Trong khi kh i đ ng t xa. M i dòng c a ph n [operating systems] trong t p tin boot. Đ làm đư c đi u này.SYS. Trong phân vùng đ nh d ng dư i h th ng t p tin NTFS.DOS và MSDOS. sau đó MSDOS. Vì trình kh i đ ng th hai trên các h th ng khác nhau có đ dài khác nhau. nhưng kh năng này có th có ích trong trư ng h p nào đó. Dư i đây là m t ví d t p tin boot. N u vì lý do nào đó không tìm th y trên đĩa phân vùng kích ho t.

còn sector trên rãnh đánh s b t đ u t 1). ngư i ta áp d ng nhi u cách “láu cá” khác nhau.ini các dòng ch a liên k t đ n t p tin kh i đ ng khác. Tuy nhiên trên th c t s đ u đ c không quá 16. Trên dòng tương ng v i phương án Microsoft Windows. Cách này cho phép làm vi c v i đĩa có dung lư ng đ n 8192*16*63*512 = 4 227 858 432 byte hay 4. t o b i Linux (nói đúng hơn – LILO. s đĩa và s rãnh.4 V n đ v i các đĩa l n Trên MS-DOS và các phiên b n đ u tiên c a Windows truy c p t i đĩa (trong đó có c bư c kh i đ ng đ u tiên c a HĐH) đư c t ch c qua Int 13 (Int 13h) c a BIOS. Ví d . Đ i v i vi c kh i đ ng các h th ng khác. s sector trên rãnh không còn c đ nh mà tr thành khác nhau trên các rãnh . trình kh i đ ng tiêu chu n c a Linux). T p tin đư c n p vào b nh và quá trình kh i đ ng đư c ti p t c gi ng như khi b n ghi kh i đ ng đư c n p b i mã chương trình t MBR. Trong ví d trên Linux cũng đư c kh i đ ng theo các này. ch đưa ra “C:\”. có th s d ng cách đó. Trong t p tin C:\BOOTSECT. 2.dos. còn s sector trên rãnh – không quá 63. 128 đ u đ c và 63 sector/rãnh. 5-0 tương ng s sector. Chính xác hơn: ˆ AH — ch n thao tác. (C n lưu ý r ng vi c đánh s cylinder v t lý và rãnh thư ng b t đ u t 0. Extended CHS (ECHS) hay “Large disk support” (đôi khi còn g i là “Large”) s d ng ba bit chưa dùng đ n c a s th t đ u đ c đ tăng s cylinder.22 Cài đ t HĐH Linux trên cùng máy tính v i Windows [operating systems] multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4" C:\="Microsoft Windows" C:\BOOTSECT. Ch c n thêm vào boot. Cách này cho pehsp s d ng c u trúc “hình h c gi m o c a đĩa” v i 1024 cylinder. vì tên c a t p tin kh i đ ng đư c l y theo m c đ nh: bootsect. ˆ DH — s c a đ u đ c.2 Gbyte.LNX c n ghi n i dung c a b n ghi kh i đ ng. ˆ CH — 8 bit nh hơn c a s cylinder. và còn phát minh ra các phương pháp khác đ tăng dung lư ng đĩa. Ví d . và dù có dùng 10 bit đ ch ra cylinder. BIOS v n không th làm vi c v i đĩa dung lư ng l n hơn 1024*63*16*512 = 528 Mbyte. Khi này s d ng s đánh đ a ch sector trên đĩa trên cơ s C/H/S (xem trên).LNX="Linux" N u ngư i dùng ch n NT. thì s kh i đ ng theo đ a ch phân vùng đư c ch trên dòng đ u tiên. Đ vư t qua h n ch này. Bi n đ i Extended CHS thành đ a ch CHS th c (có th ch a đ n 8192 cylinder) đư c BIOS th c hi n. Khi ch n các dòng này s kh i đ ng HĐH tương ng. ˆ CL — 7-6 bit tương ng bit l n c a s cylinder. Nhưng các nhà phát tri n càng ngày càng tăng m t đ ghi c a đĩa. ˆ DL — s c a đĩa(80h hay 81h).3.

“LBA”. MS-DOS và các phiên b n Windows đ u tiên không th đánh đ a ch các đĩa có dung lư ng l n hơn 8. s c a sector đư c chuy n vào các l nh SCSI. và theo đó. Sau đó vào năm 1999 Gordon Matzigkeit và Yoshinori K. . và các phiên b n BIOS cũ không th h tr truy c p t i toàn b không gian đĩa.S). b t đ u t sector đ u tiên trên rãnh s 0 c a cylinder s 0. h th ng ph i đư c n p. t t c nh ng h n ch nói trên ch có ý nghĩa trong giai đo n kh i đ ng HĐH.2. Trong các controller c a đĩa SCSI.đánh đ a ch các kh i theo đư ng th ng (“Linear Block Addressing” hay LBA). C n chú ý r ng h n ch nói trên ch áp d ng v i các đĩa có giao di n IDE. đưa chương trình này thành m t ph n m m mã ngu n m . và sau đó t đĩa tìm ra v trí c n thi t.1 L a ch n trình kh i đ ng Trình kh i đ ng GRUB1 GRUB (GRand Unified Bootloader) – trình kh i đ ng h t s c m nh có kh năng kh i đ ng r t nhi u HĐH mi n phí cũng như HĐH thương m i. dài hơn. trong đó sector s 0 ch a b n ghi kh i đ ng chính (MBR). Okuji chuy n GRUB thành m t gói chương trình GNU. B i vì Linux và các phiên b n Windows m i nh t khi làm vi c v i đĩa đã không còn s d ng Int 13 c a BIOS. mà Int 13h v n s d ng b 3D (C. Đi u này h n ch vi c đ t nhi u h th ng ra ngoài vùng 8 Gbyte đĩa đ u tiên: chúng không th kh i đ ng t đó. K t qu là b ba s C/H/S không còn ph n ánh đúng c u trúc “hình h c c a đĩa”. có th nói r ng t t c sector trên đĩa đư c đánh s m t cách tu n t . m c dù sau khi kh i đ ng thì có th làm vi c v i các đĩa có dung lư ng l n hơn nhi u. Vì nguyên nhân này xu t hi n h n ch lên dung lư ng c a đĩa: BIOS. vì không th s d ng nh ng trình kh i đ ng khác. GRUB đư c Erich Boleyn vi t vào năm 1995 đ kh i đ ng h th ng GNU Mach.4 2. và “Normal” (phương án cu i cùng có nghĩa là không th c hi n bi n đ i đ a ch ). Khi đó ngư i ta nghĩ ra phương pháp khác đ làm vi c v i các đĩa lên qua Int 13h . 2. Thay vào ch đ a ch CHS m i sector nh n đư c m t đ a ch lôgíc – s th t c a sector trong t ng s t t c sector. Vi c đánh s sector lôgíc b t đ u t 0. mà s d ng driver riêng c a mình. Đ có th hi u cách thoát kh i nh ng h n ch này. Nhưng trư c khi có th s d ng driver c a mình. s sector đư c tăng lên). Tuy nhiên trong ch đ LBA vi c s d ng đĩa v t lý v n đư c th c hi n qua Int 13h. M c dù m i ra đ i và s phiên b n 1 Ph n v GRUB này do ngư i d ch vi t.4 Gbyte.4 L a ch n trình kh i đ ng 23 khác nhau (trên các rãnh n m g n rìa ngoài c a đĩa. Như v y.4. trong các phiên b n BIOS m i thư ng có l a ch n v i ba phương án: “Large”. Trong Setup BIOS h tr bi n đ i s th t theo đư ng th ng thành đ a ch CHS có d ng “H tr LBA”. Không đi sâu vào chi ti t. chúng ta c n m t chút ki n th c v quá trình kh i đ ng c a HĐH Linux. vì th h n ch lên dung lư ng đĩa không xu t hi n.H. M t l n n a mu n nh c l i r ng. Vì th trong giai đo n kh i đ ng đ u tiên b t kỳ h th ng nào cũng c n s d ng BIOS.

B n c n hi u cú pháp này đ bi t cách ch ra m t đĩa hay phân vùng nào đó. Bây gi chúng ta xem xét ng n g n v tên g i thi t b dùng trong GRUB.. t c là c ng th nh t. C n chú ý thêm là GRUB không phân bi t IDE và SCSI. M t trong nh ng tính năng quan tr ng c a GRUB là tính m m d o. Xin nh c l i m t l n n a là các s đ m đ u b t đ u t s không ‘0’. H t s c đơn gi n! Thông tin trong ph n này s giúp b n hi u đư c c u hình c a GRUB s nói đ n s p t i đây. đ m b t đ u t 0. Ph n fd có nghĩa là đĩa m m. 2 hãy so sánh s phiên b n c a GRUB và LILO . Làm sao đ ch ra m t t p tin? Hãy xem ví d sau đây: (hd0. ) cũng đã chuy n sang s d ng GRUB làm l a ch n theo m c đ nh. SuSE.4) Đây là phân vùng m r ng (“extended partition”) th nh t c a đĩa c ng th nh t. S nguyên th hai (‘1’) cho bi t s th t c a phân vùng (chúng ta không xem xét các HĐH khác Linux). N u không có nhu c u đ c bi t nào đó thì b n nên ch n trình kh i đ ng này.0)/vmlinuz Dòng này ch ra t p tin ‘vmlinuz’ n m trên phân vùng đ u tiên c a c ng đ u tiên. Ví d 2: (hd0. Nó đ m s th t b t đ u t ‘0’ không ph thu c vào d ng đĩa. Trong trư ng h p này đây là phân vùng th hai c a c ng th nh t. . Ví d m t cú pháp là: (fd0) Trư c tiên c n nói GRUB yêu c u t t c các tên thi t b ph i đ t trong ngo c ‘(’ và ‘)’. GRUB s d ng m t phân vùng c a đĩa ch không ph i toàn b đĩa. M t đi m m nh khác c a GRUB đó là “grub shell” có th ch y khi b t đ u kh i đ ng ho c sau khi đã kh i đ ng xong h th ng.24 Cài đ t HĐH Linux trên cùng máy tính v i Windows còn r t nh 2 nhưng đây là s l a ch n t t đ i v i ph n l n ngư i dùng máy tính cá nhân. GRUB có th hi u các h th ng t p tin và đ nh d ng th c thi c a nhân.1) đây ‘hd’ có nghĩa là c ng. Fedora. thì b n có th cài đ t và s d ng giao di n th c đơn và thay đ i giao di n th c đơn theo mong mu n c a mình. vì cú pháp thi t b trong trình kh i đ ng này có khác m t chút so v i nh ng gì mà b n đã th y trên nh ng h th ng c a mình. vì th b n có th n p HĐH theo cách ưa thích. n u không mu n dùng giao di n dòng l nh. . Chú ý r ng các phân vùng m r ng đư c đ m b t đ u t ‘4’ không ph thu c vào s phân vùng chính (“primary partition”) th c t có trên đĩa. Ngoài ra. S nguyên ‘0’ đ u tiên cho bi t s th t c a . S ‘0’ ch ra s th t c a . B ng grub shell b n có th “gi l p” (emulate) trình kh i đ ng này và cài đ t GRUB. Các b n phân ph i Linux l n (Debian. Ví d 3: (hd0.

C hai ph n thư ng đư c ghi trên đĩa trong t p tin /boot/boot. và cũng có th kh i đ ng các h đi u hành khác: PC/MS-DOS. ph c v đ ghi t t c thông tin c n thi t trong giai đo n kh i đ ng vào các ch tương ng. . Nh ng t p tin này thư ng n m trong thư m c /boot. ). trình kh i đ ng n p nhân Linux hay sector kh i đ ng c a h đi u hành khác. Vì v y trong thành ph n LILO có ch a m t chương trình đ c bi t (activate) cho phép vư t qua h n ch này. Vì th n u ghi sector kh i đ ng LILO vào MBR. . Windows NT/2000/XP. . ˆ sector kh i đ ng c a phân vùng chính v i h th ng t p tin Linux trên đĩa c ng đ u tiên (/dev/hda1.2. Unixware v. OS/2. . c n cho LILO trong th i gian kh i đ ng. Sector kh i đ ng c a LILO có th đư c thi t k đ s d ng như sector kh i đ ng c a phân vùng. đĩa c ng.2 Trình kh i đ ng LILO Trình kh i đ ng LILO đư c vi t b i Werner Almesberber. thì các h đi u hành đã cài c a Microsoft s ng ng kh i đ ng (n u như không có các bi n pháp b sung). . ˆ MBR c a đĩa c ng đ u tiên (/dev/hda. ). S th t là ph n l n chương trình d ng fdisk không đ ra kh năng kh i đ ng kh i đ ng t phân vùng m r ng và t ch i vi c kích ho t phân vùng này. ˆ các t p tin ph c v . LILO cho phép ch n đ n 16 h đi u hành khác nhau đ kh i đ ng.4 L a ch n trình kh i đ ng 25 2. . Trình kh i đ ng g m có hai ph n. /dev/hda2. LILO có th kh i đ ng nhân Linux t đĩa m m. Quan tr ng nh t trong s chúng – đó là b n thân trình kh i đ ng (xem phía dư i) và t p tin map (/boot/map). C n nh r ng. . . 386BSD. M t t p tin quan tr ng khác – t p tin c u hình LILO. . và các t p tin ph c v : ˆ chương trình /sbin/lilo. . ch y dư i Linux. trong đó có ch cho b ng phân vùng.v. có kích thư c l n hơn r t nhi u. . ˆ trình kh i đ ng – đây là ph n LILO đư c n p vào b nh đ u tiên qua Int c a BIOS. ). đ nh d ng c a sector kh i đ ng t o ra b i LILO khác v i đ nh d ng MBR c a DOS. trong t p tin này có ch ra v trí c a nhân.b. ˆ sector kh i đ ng c a phân vùng lôgíc trong phân vùng m r ng đĩa c ng đ u tiên (/dev/hda5. . các chương trình s d ng đ cài đ t và c u hình trình kh i đ ng. C n ch y chương trình này sau m i l n có thay đ i trong nhân hay trong t p tin c u hình LILO. thư ng có tên /etc/lilo. SCO UNIX. C n s d ng tùy ch n -b ho c bi n BOOT. Tuy nhiên chương trình fdisk c a b n phân ph i Linux h tr kh năng kích ho t phân vùng m r ng.4. /dev/sda. ). . . DR DOS. LILO không ph i là chương trình đơn l mà là m t b g m nhi u chương trình: trình kh i đ ng. Sector kh i đ ng c a LILO trong khi cài đ t có th đ t vào nh ng ch sau: ˆ sector kh i đ ng c a đĩa m m trong đ nh d ng Linux (/dev/fd0.conf. Windows 95/98. Ph n th nh t đư c ghi vào sector kh i đ ng và ph c v đ n p ph n th hai. .

thì OS Loader không đư c cài đ t. LILO đưa ra màn hình trình đơn (th c đơn) cho phép ch n h th ng đ kh i đ ng (trư c đây c n nh n phím Tab đ g i trình đơn này). . ˆ trong phân vùng swap c a Linux. ˆ t p tin ch a các thông báo đưa ra khi kh i đ ng (n u đư c xác đ nh). ˆ /boot/map (t o ra b i l nh /sbin/lilo). ˆ N u như trư c khi cài đ t Linux đã có HĐH Windows NT/2000/XP. 2. đĩa th hai trên controller th hai (Secondary Slave). b i vì chúng c n đư c truy c p qua BIOS. ví d . ˆ sector kh i đ ng c a các h đi u hành khác mà b n đ c mu n kh i đ ng qua LILO. Th nh t. thì có th s đ ng chương trình kh i đ ng loadlin. Ngoài ra. có th cài đ t Linux lên đĩa mà LILO không th kh i đ ng. B t đ u t phiên b n 21. sector kh i đ ng LILO cũng như nh ng t p tin đã li t kê (trong s đó có các t p tin b n đ c s cài đ t sau này) c n n m trong ph m vi 1024 cylinder đ u tiên c a đĩa c ng. ˆ trên đĩa c ng th hai.26 Cài đ t HĐH Linux trên cùng máy tính v i Windows Sector kh i đ ng c a LILO không th đ t vào các ch sau: ˆ sector kh i đ ng c a đĩa m m hay phân vùng chính.4. t t c c u hình cũ không b m t (chúng ta có th ch n kh i đ ng Windows hay Linux theo l a ch n). và th hai. v i đ nh d ng h th ng t p tin khác Linux. Xem ph n nói v h n ch c a BIOS trên.3 Các trình kh i đ ng khác Ngoài GRUB và LILO đ kh i đ ng Linux có th kh i đ ng các trình kh i đ ng khác. ˆ N u như trư c khi cài đ t Linux b n đ c ch có HĐH Windows 95 hay Windows 98 và không có Windows NT/2000 hay XP.exe (thư ng đi kèm v i b n phân ph i Linux). thì trình kh i đ ng b n đ c có th s d ng là OS Loader c a NT. So sánh v i LILO thì trình kh i đ ng OS Loader có ít nh t hai ưu th . Và n u như vì m t lý do nào đó b n đ c không mu n cài đ t LILO.b. ˆ t t c phiên b n nhân kh i đ ng (n u b n đ c ch n phiên b n nhân khi kh i đ ng). Như v y. LILO trong th i gian kh i đ ng c n nh ng t p tin sau: ˆ /boot/boot. c n nh r ng.

m c dù tác gi không rõ nguyên nhân. Vì th . Trong nh ng ph n ti p theo tác gi s cho bi t cách cài đ t Linux.2. 2. c a tác gi đã k t thúc không thành công. và b n đ c không mu n cài đ t thêm chương trình kh i đ ng.exe.exe. thì b n đ c c n đ c hư ng d n cài đ t và s d ng c a nó. Và t t c nh ng l i khuyên dùng sau c a tác gi s d a trên vi c s d ng LILO.exe. ˆ N u đã cài đ t Windows 95 OSR2 hay Windows 98 trên FAT32.edu/. vì th tác gi khuyên b n đ c s d ng loadlin. n u như phân vùng kích ho t có đ nh d ng FAT32. và b n đ c không mu n cài đ t chương trình kh i đ ng nào khác. ˆ N u đã cài đ t Windows NT hay Windows 2000/XP.exe. R t nhi u HOWTO kh ng đ nh r ng không c n s đ ng LILO.exe đ kh i đ ng Linux. Trong r t nhi u hư ng d n ngư i ta khuyên dùng chương trình này đ t i ch c kh i đ ng nhi u HĐH.unc. ˆ Trong thành ph n OS/2 c a công ty IBM có chương trình kh i đ ng Boot Manager. thì c n s d ng loadlin. Tuy nhiên thí nghi m kh i đ ng Linux qua NT Loader. trình kh i đ ng LILO và trình kh i đ ng loadlin. có vài chương trình như v y. thì có th s d ng GRUB ho c LILO. Tuy nhiên trư c khi cài đ t trình kh i đ ng c n chu n b các phân vùng trên đĩa. theo ý ki n c a tác gi có các phương án kh i đ ng sau: ˆ N u trên máy ch có m t h đi u hành Linux duy nh t. Chúng ta s nói v chương trình này trong ph n nh ti p theo. ˆ Thêm m t trình kh i đ ng khác có trong thành ph n gói PartitionMagic c a công ty Power Quest. hay ít nh t là nghĩ cách t ch c chúng. trình kh i đ ng GRUB. . và t o cho tác gi m t n tư ng t t. Nhưng vì tác gi không s d ng nh ng chương trình này. hãy dùng GRUB.4 Các phương án kh i đ ng Như v y. ˆ Trong các ngu n thông tin khác nhau còn nh c đ n chương trình System Commander. thì hãy s d ng GRUB. ˆ N u có Windows 95 hay Windows 98 trên FAT16. NT Loader và loadlin. Ngoài ra tác gi còn th y nói đ n m t lo t các trình kh i đ ng khác (m t s có th tìm th y trong thư m c /public/ftp/pub/Linux/system/boot/loaders trên trang ftp://metalab. s d ng t t c b n phương án kh i đ ng: qua trình kh i đ ng NT Loader.4. cài đ t trên phân vùng FAT32. N u như có ý mu n cài đ t chương trình kh i đ ng khác. ho c đ u tiên ch y DOS và sau đó kh i đ ng Linux nh chương trình loadlin. Chương trình này đã hoàn thành t t nhi m v .4 L a ch n trình kh i đ ng 27 ˆ Th i gian g n đây trong thành ph n b n phân ph i Linux thư ng có chương trình kh i đ ng GRUB. trong trư ng h p này tác gi đã ph i s d ng chương trình loadlin.exe (hay m t chương trình tương t . nhưng chúng ta s không xét đ n). nên không th nói c th cách s d ng chúng.

5 2. Bây gi chúng ta s xem xét v n đ chia các phân vùng cho Linux.Org).v.2 (Worksta. /dev/hdb. t c là /dev/hda. b i vì Windows và Linux s d ng các cách lưu tr thông tin trên đĩa và sau đó đ c chúng t đĩa khác nhau. Tác gi s đ t tên đĩa và phân vùng theo “tiêu chu n” c a Linux.2: Nhu c u s d ng không gian đĩa c a HĐH Yêu c u 100 Mbyte 200 Mbyte 200 Mbyte 700 Mbyte 6.5. Trong trư ng h p này m i th đ u đơn gi n: b n đ c ch vi c chia đĩa làm sao đ đ ch cho h đi u hành s cài đ t. c n chia m t phân vùng swap riêng bi t cho Linux. /dev/hda2.28 Cài đ t HĐH Linux trên cùng máy tính v i Windows 2. không nh ng ph i tính kích thư c các t p tin c a b n thân h đi u hành. đ i v i đĩa và /dev/hda1. như OpenOffice.1 Chu n b các phân vùng trên đĩa L i khuyên khi t o phân vùng Đưa ra l i khuyên đây không ph i là vi c d dàng. Khi xác đ nh dung lư ng c a phân vùng swap Linux c n tính đ n nh ng y u t sau: ˆ Trong Linux. Chính vì th t t hơn h t là dành cho m i h đi u hành m t (ho c th m chí m t vài như chúng ta s th y dư i) phân vùng riêng. Vi c phân chia đĩa thành các phân vùng là c n thi t. Theo kinh nghi m c a tác gi thì đ làm vi c v i Windows 95/98. n u b n đ c không cài đ t các gói chương trình l n. . Hãy tính r ng. v. 700 Mbyte dành cho Linux trong b ng nói trên ch dành cho các chương trình cài đ t cùng v i Linux theo m c đ nh. RAM và không gian swap h p l i t o thành b nh o chung. Đ i v i Windows cũng tương t như v y. còn đ i v i Windows 200 thì c n phân vùng l n hơn. . Nhưng cũng xin th đưa ra vài đ ngh sau. đây không th ch chia m t phân vùng.2. trong s đó có. . Và còn ph i dành m t ph n d tr không nh cho các chương trình s cài đ t sau này (không th tránh kh i!). . Có th s d ng d li u cho bi t kích thư c đĩa nh nh t c n thi t đ cài đ t h đi u hành v i c u hình cơ b n trong b ng 2.v. vì phân vùng đĩa ph c thu c r t nhi u vào ý thích và nhu c u c a ch nhân đĩa. ví d . n u b n đ c có 256 MByte RAM và 128 Mbyte không gian swap. .4 Gbyte (nói chính xác hơn – s cylinder không vư t quá 1024). – đ i v i các phân vùng. thì s có 384 Mbyte b nh o. Windows NT và Linux các phân vùng v i kích thư c 800-1000 Mbyte là đ (t t nhiên.700 Mbyte H đi u hành Windows 95 Windows 98 Windows NT Windows 2000 Linux Red Hat tion v i KDE) Tuy nhiên xin hãy nh r ng. v. Đ u tiên chúng ta hãy xem xét m t trư ng h p đơn gi n – dung lư ng đĩa c a b n đ c không vư t quá 8. Ví d . Th nh t. chương trình so n th o r t m nh Lyx. mà còn ph i tính c kích thư c c a các chương trình b n đ c d tính ch y. B ng 2.

c n nh r ng kích thư c quá l n có th là vô ích. Bây gi chúng ta xem xét trư ng h p đĩa v i s cylinder l n hơn 1024.3 ˆ Khi tính kích thư c c a không gian swapping. hay cài b ng phương pháp khác. Ph n l n nh ng gói chương trình này đư c cài vào thư m c /usr. ˆ Kích thư c c a phân vùng swap có th l n bao nhiêu tùy thích. nh ng ý ki n nói trên đã đ đ b n đ c t tìm ra phương án phân chia đĩa c a mình. Trên máy tính v i 16 Mbyte RAM khi cài đ t Linux v i c u hình chu n và các chương trình ng d ng chu n thì 48 Mbyte không gian swapping là đ . T nh ng gì đã nói đ n ph n trư c (h n ch dung lư ng đĩa c ng). trong trư ng h p ch có m t đĩa nh . ho c đơn gi n là mu n cài đ t m t b n phân ph i khác. Trong tiêu chu n v h th ng t p tin c a Linux FHS (c th xin xem chương ??) cũng có l i khuyên v vi c đ t thư m c /usr lên m t phân vùng riêng. Ví d . Còn n u cài đ t Linux v i c u hình nh nh t. Ngoài ra. Vi c phân chia như v y d a trên nh ng lý l sau. tuy nhiên không c n c u hình quá nhi u n u không c n thi t. Còn n u như b n đ c có 128 Mbyte RAM hay nhi u hơn. Nói chung. thì th nh tho ng cũng c n cài đ t l i. s b m t c nh ng chương trình đã cài t mã ngu n. NT Loader không nh t thi t ph i đ t vào phân vùng NTFS. có nhà chuyên gia khuyên nên dành cho h th ng t p tin Linux ba phân vùng (n u tính c swap thì thành 4). Phân vùng th hai dành cho thư m c /home. 1 Gbyte là đ ) s ch a h th ng t p tin g c (/). N u dành cho thư m c này m t phân vùng riêng và khi cài đ t không đ nh d ng l i chúng. vi c đ t h th ng t p tin Linux lên vài phân vùng riêng r là có ý nghĩa. thì c n phân vùng swap không nh hơn 12 Mbyte. Trong t t c m i trư ng h p t t nh t tránh dùng swap vì nó ch m hơn RAM nhi u. N u như t t c đư c cài đ t vào m t phân vùng. Theo tác gi th y. Còn phân vùng th ba đư c g n vào thư m c /usr.2. T t nhiên. cũng như không nh t 3 Xin cám ơn bác Tony Lý v m c này . Nhân ti n. ch nên suy nghĩ v v n đ dung lư ng c a phân vùng swap khi có m t đĩa nh và ít b nh RAM. Ví d . thì không c n đ n không gian swap. b n đ c mu n c p nh t phiên b n m i c a b n phân ph i. Thông thư ng ch c n dùng swap khi máy ít b nh RAM ho c ch y máy ch v i nhi u ng d ng n ng. thì nh ng chương trình nói trên s đư c gi l i và có th s làm vi c (r t có th c n vài c u hình nh ) sau khi cài đ t l i h th ng. thì khi cài đ t l i nh ng d li u đã làm ra và ghi nh trong thư m c cá nhân s b m t (n u không có b n sao chép).5 Chu n b các phân vùng trên đĩa 29 ˆ Đ làm vi c v i Linux c n ít nh t 16 Mbyte b nh o. Trong trư ng h p ngư c l i hãy phân chia đ t ng s dung lư ng c a b nh o (g m RAM và phân vùng swap) không nh hơn 128 Mbyte. ho c vì ít kinh nghi m s d ng nên làm h ng t p tin h th ng quan tr ng. T t c các ph n còn l i c a Linux và các chương trình h tr theo nguyên t c có th đ t vào m t phân vùng. Tuy nhiên. Phân vùng th nh t (theo ý ki n cá nhân tác gi . Dù HĐH Linux có n đ nh và đáng tin c y đ n đâu. kích thư c chính xác c a không gian swap ph thu c l n vào chương trình s đư c cài đ t. thì phân vùng này có th không c n thi t. c n đ t chương trình kh i đ ng trong ph m vi 1024 cylinder đ u tiên. vì th n u b n đ c ch có 4 Mbyte RAM.

thì v n s d ng đư c nh ng l i khuyên này. ˆ ph n còn l i c a đĩa đ t thành phân vùng m r ng. Và không c n gì hơn ngoài chương trình này.2 Chương trình đ phân chia đĩa Sau khi hoàn thành k t ho ch chia đĩa. Chương trình phân chia đĩa đư c bi t đ n nhi u nh t là fdisk. ˆ phân vùng chính th ba dành cho swap c a Linux (l i khuyên v kích thư c c a phân vùng này xem trên). N u như trên máy đã cài đ t Windows NT hay có FAT32. . Ngư i ta nói r ng như v y tăng t c đ làm vi c trong Linux (cũng d hi u vì đ u đ c ít ph i ch y hơn). Như đã nói trên. ˆ trong phân vùng m r ng t o các phân vùng lôgíc cho m i HĐH s cài đ t: Windows 98. fdisk không thích h p cho nh ng m c đích như v y. không ch a b t ký d li u nào. nh ng đ ngh c a tác gi cho ra b ng t ng k t sau: ˆ ph n kh i đ ng c a t t c các h th ng Microsoft đ t vào phân vùng chính đ u tiên c a đĩa. Chính vì v y hãy dành cho phân vùng này kho ng 256 ho c 512 Mbyte.30 Cài đ t HĐH Linux trên cùng máy tính v i Windows thi t ph i đ t vào phân vùng ch a các t p tin khác c a HĐH. h th ng t p tin FAT16 đư c h tr trên m i HĐH. Nhưng không nên đ phân vùng này l n. Windows NT/2000/XP. đ i v i Linux có th đ t thư m c g c cùng v i thư m c con /boot vào các cylinder “th p” (trong vòng 1024 đ u tiên). và đ ng th i cho các h th ng t p tin /home và /usr c a HĐH Linux (trong /home s đ t các t p tin riêng c a ngư i dùng. thì có th đ Windows trên phân vùng đ u tiên. b n đ c có th kh i đ ng t đĩa m m DOS (t m th i khi chưa làm quen v i Linux m t cách “tư ng t n”) và th y đư c r ng đĩa c ng làm vi c bình thư ng. vì FAT16 s d ng không gian đĩa r t không h p lý. ph c v cho phân chia đĩa. Trong thành ph n các b n phân ph i Red Hat và BlackCat (r t có th trong các b n phân ph i khác) có chương trình fips. Nhưng chúng ta đang xem xét trư ng h p đã có HĐH nào đó trên đĩa và c n phân chia đĩa mà không làm m t thông tin. Th nh t. n u như b n đ c ch có Windows 95 v i FAT16. T t nhiên. kích thư c kho ng 1 Gbyte. còn trong /usr – chương trình s cài đ t). ch có đi u phân vùng swap t t hơn đ t trên đĩa khác v i đĩa dành cho Linux. còn các thư m c khác – ch nào tùy thích. vì th phân vùng này có th ph c v cho vi c trao đ i t p tin gi a các h th ng.5. 2. ˆ phân vùng chính ti p theo dành cho thư m c g c (/). N u như b n đ c có 2. Nh ng l i khuyên này đưa ra v i gi thi t r ng. b n đ c ch có m t đĩa c ng. Như v y trong trư ng h p này. Th hai. thì m t phân vùng FAT16 cũng không th a. trong đó có Linux. n u như phân chia đĩa tr ng. trên m i h đi u hành đ u có phiên b n riêng c a chương trình này. k c trong trư ng h p h th ng có v n đ . c n l a ch n công c đ đưa k ho ch này thành hi n th c. v i đ nh d ng FAT16 (DOS).

com) và s d ng chương trình này. nh ng thông tin đã đưa đ đ b n đ c l p k ho ch và th c hi n vi c phân chia đĩa thành các phân vùng. Cài đ t Linux theo ch d n c a b n phân ph i. nghĩa là trình kh i đ ng OS Loader cũng đã đư c cài đ t. 3. Tác gi cho r ng. mà còn có th di chuy n các phân vùng đã có theo ý mu n.com và boot.ini t thư m c g c c a đĩa kh i đ ng NT.powerquest. Tác gi hy v ng r ng b n đ c đã sao lưu nh ng thông tin có giá tr c a mình. /dev/hda1 s dành cho phân vùng FAT16). Chúng ta gi thi t là Windows NT đã đư c cài vào phân vùng /dev/hda2 (n u như b n đ c nh . Đ t o đĩa m m kh i đ ng ch c n đ nh d ng l i đĩa m m. 2. nh ng ngư i dùng Linux m i – n u như mu n phân chia l i đĩa mà không làm m t thông tin. Th nh t. chương trình này cho phép phân chia l i đĩa mà không làm m t thông tin (t c là. Trong khi cài đ t c n chú ý đ n nh ng đi m sau: ˆ th nh t. Và như th có th s d ng chương trình này đ kh i đ ng Linux. thì trư c khi b t đ u c n chu n b đĩa m m kh i đ ng và ph c h i Windows NT. theo ý ki n c a ngư i dùng thì không nên s d ng chương trình này. ntdetect. chương trình này (th m chí trong phiên b n dành cho DOS) cung c p m t giao di n đ h a d s d ng có h tr chu t. Ngoài ra.6 Windows NT và Linux: kh i đ ng qua NT OS Loader Trong ph n này. không ch t o đư c phân vùng m i t ch tr ng trên đĩa. tùy thu c vào b n phân ph i) khi đư c h i có t o đĩa m m kh i đ ng hay không. Các bư c cài đ t có th mô t như sau: 1. vì “quan h ” c a chúng đ i v i vi c cài đ t Linux hoàn toàn gi ng nhau. có th s d ng đĩa m m này đ kh i đ ng Linux. N u như b n đ c chưa cài đ t Linux bao gi . khi nói v Windows NT xin ng m hi u c Windows 2000 và NT. Cách tính kích thư c c a chúng đã nói trên. Chương trình t o đĩa ph c h i Windows 2000/XP có th ch y t trình đơn h th ng (l nh Backup trong Start/Program/Accessories). Dùng chương trình Partition Magic đ l y m t ph n đĩa tr ng và t đó t o ra phân vùng v i d ng ext2(3) (h th ng t p tin Linux) và phân vùng swap. thì hãy tìm chương trình Partition Magic c a công ty Power Quest (http://www. trong quá trình cài đ t nh t đ nh ph i t o ra các đĩa m m kh i đ ng Linux. Th hai. Đây cũng . Vì th l i khuyên c a tác gi v i b n đ c. N u HĐH Windows NT đã đư c cài đ t. và m i thao tác cũng như thay đ i đ u th y rõ ràng. Đĩa m m này s đư c dùng đ n sau. Khi t o phân vùng c n đ ý không cho ranh gi i gi a các phân vùng c t l n nhau. r i sao chép lên đó các t p tin ntldr. make a BOOT DISK” (hay tương t th . Vì th ti p theo chúng ta s xem xét các phương án cài đ t hai HĐH trên m t máy tính. 2. Đi u này r t quan tr ng v i ngư i dùng m i.6 Windows NT và Linux: kh i đ ng qua NT OS Loader 31 Tuy nhiên.2. Khi này. T c là c n tr l i “Yes. t t c nh ng cài đ t và c u hình trư c đó s đư c ghi l i).

5. [root]# mount -t vfat /dev/fd0 /mnt/floppy chuy n vào thư m c /mnt/floppy [root]# cd /mnt/floppy và th c hi n câu l nh [root]# dd if=/dev/hda3 of=/mnt/floppy/bootsect. kh i đ ng Linux b ng đĩa m m (n u như b n đ c cài LILO vào phân vùng c a Linux và không đ ng gì đ n MBR. và hơn n a khác v i đĩa m m kh i đ ng DOS. Sau khi cài đ t xong. sau khi kh i đ ng h th ng không còn yêu c u đĩa m m n a. Ch s d ng trong trư ng h p “b t đ c dĩ”. đ nh d ng MBR t o b i LILO và Windows (DOS) khác nhau. T m th i nhân Linux còn chưa h tr t t vi c ghi lên phân vùng NTFS. V n đ ch . nhưng t t hơn h t là b n đ c cài LILO ngay l p t c vào sector đ u tiên c a phân vùng đã cài Linux. ch c n sao chép sector kh i đ ng qua đĩa m m như đang trình bày.32 Cài đ t HĐH Linux trên cùng máy tính v i Windows là m t phương án kh i đ ng. Chúng ta gi thi t Linux đư c cài vào phân vùng /dev/hda3. n u phân vùng chính đ u tiên có đ nh d ng NTFS. Như v y LILO s đư c cài vào sector đ u tiên c a /dev/hda3 Theo nguyên t c. t p tin này s c n đ trình kh i đ ng Windows NT/2000 có th kh i đ ng Linux. thì có th t o t p tin bootsect.lnx4 6.lnx bs=512 count=1 đ ghi n i dung sector kh i đ ng c a đĩa /dev/hda3 vào t p tin /mnt/floppy/bootsect. thì đây là kh năng duy nh t). vì th không nên s d ng thư ng xuyên. Sao chép sector kh i đ ng c a Linux vào m t t p tin. khi cài đ t Linux c n cài LILO vào sector đ u tiên c a phân vùng dành cho thư m c g c (/) c a Linux. Tác gi không bi t (chưa th ) có th kh i đ ng không c n đĩa m m không. ˆ th hai. b ng câu l nh: [root]# shutdown -h now Ghi chú: n u đĩa C: (/dev/hda1) có đ nh d ng FAT. Đĩa m m này còn c n thi t cho c u hình đ kh i đ ng nhi u HĐH.lnx trong thư m c g c c a đĩa C:. n u như b n đ c cài LILO vào MBR. Vì th n u b n đ c cài LILO vào MBR. Ti p theo c n kh i đ ng l i đ vào Windows NT. ch không ph i vào sector kh i đ ng chính c a đĩa (MBR). Tuy nhiên đây cũng không có v n đ gì. Tuy nhiên cách kh i đ ng này cũng có đi u ti n. thì c u ph c h i l i MBR c a Windows. có th b nó ra kh i . thì không ph i m i th đã h ng h t. Vi c sao chép th c hi n như sau: đ u tiên g n m t đĩa m m tr ng (m i mua thì càng t t). K t qu cu i cùng (kh i đ ng qua NT Loader) v n có th đ t đư c nhưng c n b ra m t chút công s c. Tác gi cũng s nói cách ph c h i. 4. 4 . s d ng đ đ c các đĩa m m khác.

2.6 Windows NT và Linux: kh i đ ng qua NT OS Loader

33

Vì MBR chưa có gì thay đ i, nên Windows NT s kh i đ ng. Trong NT c n sao chép t p tin bootsect.lnx vào thư m c g c c a đĩa C:, hay chính xác hơn là vào thư m c g c c a phân vùng mà t đó kh i đ ng Windows NT. Đây có th là phân vùng FAT16 hay phân vùng NTFS. Đ c đi m đ nh n ra phân vùng này là hai t p tin ntldr và boot.init ch a trong đó (nh ng t p tin này có th n!). T p tin bootsect.lnx có th đ t thu c tính ch đ c (read-only). 7. Sau đó tìm t p tin boot.ini và thêm vào dòng sau: C:\bootsect.lnx="LINUX" (t t nhiên, trong d u ngo c kép b n đ c có th đ t tên b t kỳ.) 8. Vi c còn l i là kh i đ ng l i máy tính m t l n n a, và trong trình đơn ch n h đi u hành s có LINUX. N u ch n LINUX, thì LILO s đư c ch y và sau đó nó (LILO) s n p Linux. Còn bây gi chúng ta s xem xét trư ng h p b n đ c (do vô tình hay c ý) cài đ t LILO vào b n ghi kh i đ ng chính c a đĩa (Master Boot Record, MBR). Trong trư ng h p này b n ghi kh i đ ng Windows NT (hay 2000) s b xóa, và vi c kh i đ ng Windows NT (bư c th 6 trên) là không th . N u như b n đ c v n còn mu n s d ng trình kh i đ ng OS Loader c a NT, ch không mu n dùng LILO, thì nh ng bư c trên có thay đ i m t chút: thay cho bư c th 6 c n làm các thao tác sau. 1. Kh i đ ng Windows NT t đĩa m m kh i đ ng (đã t o trư c khi cài đ t Linux, n u không có thì b n đ c c n tìm m t máy khác đang ch y Windows NT r i t o). Trong trình đơn (th c đơn) c a trình kh i đ ng c n ch n l nh Recover, r i ch n ch đ Command mode. Sau đó đăng nh p vào tài kho n nhà qu n tr (administrator). 2. Ph c h i l i b n ghi kh i đ ng chính c a đĩa. S d ng câu l nh fdisk /mbr. Tác gi dùng l nh này thành công, m c dù trong m t s bài báo nói cách ph c h i MBR như v y không ph i lúc nào cũng làm vi c. Trong Windows 2000 có các l nh chuyên dùng fixboot và fixmbr (ch y t console ph c h i h th ng). Ch y hai l nh này theo th t đã ch ra. Sau đó Windows 2000 s kh i đ ng bình thư ng. 3. Kh i đ ng l i máy tính t đĩa m m kh i đ ng Linux và đăng nh p vào h th ng v i quy n ngư i dùng root. 4. Nh p l nh cd /etc và m t p tin lilo.conf. đ u t p tin này có liên k t đ n phân vùng kh i đ ng theo m c đ nh, ví d , /dev/hda. 5. Dùng b t kỳ trình so n th o nào, ví d , CoolEdit c a Midnight Commander, đ thay th giá tr này thành phân vùng đã cài Linux lên (chính xác hơn là thành phân vùng đư c g n như g c (/) c a Linux). N u Linux đư c cài vào phân vùng /dev/hda3, thì c n ghi cái đó, t c là thay th /dev/hda thành /dev/hda3. N u như b n đ c không nh đã cài Linux vào đâu, thì hãy ch y câu l nh mount và tìm k t qu tương t như sau5 :
5

có nghĩa là tìm phân vùng đã g n vào thư m c g c /, trong ví d này là /dev/hda3

34

Cài đ t HĐH Linux trên cùng máy tính v i Windows /dev/hda3 on / type reiserfs (rw) 6. Ch y l nh /sbin/lilo đ ghi trình kh i đ ng vào phân vùng /dev/hda3 (c n ch y l nh lilo không có tham s ). S có c nh báo v vi c phân vùng không ph i là đ u tiên trên đĩa. Đây chính là đi u chúng ta c n, b n ghi kh i đ ng c a Windows đư c gi nguyên v n. 7. Th c hi n các bư c 6-8 như trên.

D dàng đoán ra r ng, “quy trình” ph c t p v i hai l n kh i đ ng l i ch đ chuy n sector kh i đ ng Linux t MBR vào sector đ u tiên c a phân vùng dành cho Linux, và ph c h i MBR c a Windows. Quá trình cài đ t Linux k t thúc đây. B n đ c đã có th ch n HĐH s kh i đ ng và đi u khi n máy tính c a mình.

2.7

S d ng trình kh i đ ng GRUB6

Như đã nói trong ph n l a ch n chương trình kh i đ ng, n u trên máy đã cài Windows 98 v i h th ng t p tin FAT16, thì l a ch n t t hơn cho trình kh i đ ng là chương trình có trong thành ph n c a m i b n phân ph i HĐH Linux – GRUB (GRand Unified Bootloader).

2.7.1

Cài đ t GRUB

Cách d nh t đ có th cài đ t trình kh i đ ng GRUB là ch n dùng trình kh i đ ng này trong quá trình cài đ t h th ng Linux c a b n. Trong nh ng phiên b n m i c a các b n phân ph i Linux m i khi này có th ch n c u hình cho nh ng h đi u hành đã có trên máy. M t s b n phân ph i, ví d Xandros còn t đ ng tìm th y nh ng h đi u hành đã có này và thêm chúng vào t p tin c u hình c a GRUB. Nh đó sau khi cài đ t b n có th ch n kh i đ ng Linux ho c h đi u hành (thư ng là Windows) đã có. M c dù vi c t đ ng c u hình này h t s c thu n ti n, nhưng s có ích n u b n bi t đư c cách c u hình Linux đ x lý nh ng l i có th x y ra và hơn th n a bi t cách c u hình đ kh i đ ng h đi u hành mong mu n khi không có t đ ng c u hình. Chúng ta s xem xét c u hình GRUB trong ph n ti p theo.

2.7.2

C u hình GRUB

GRUB có m t giao di n trình đơn đ t đó ngư i dùng có th ch n m t m c (m t h đi u hành) b ng các phím mũi tên r i nh n <Enter> đ kh i đ ng. Đ dùng đư c trình đơn đó, b n c n m t t p tin c u hình ‘menu.lst’ n m trong thư m c kh i đ ng /boot. Thông thư ng t p tin này đư c t o ra khi cài đ t. Hãy xem ví d m t t p tin như v y dư i đây:
# GRUB example configuration file on the teppi’s openSUSE system. # Modified by YaST2. Last modification on Sun Apr 2 22:22:11 MSD 2006
6

Ph n v GRUB này do ngư i d ch vi t

2.7 S d ng trình kh i đ ng GRUB

35

color white/blue black/light-gray default 0 timeout 8 ###Don’t change this comment - YaST2 identifier: Original name:linux### title SUSE LINUX 9.3 kernel (hd0,0)/vmlinuz root=/dev/hda5 vga=0x31a selinux=0 splash=silent resume=/dev/hda7 showopts initrd (hd0,0)/initrd ###Don’t change this comment - YaST2 identifier: Original name: windows### title Windows map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) makeactive chainloader +1 ###Don’t change this comment - YaST2 identifier: Original name: xen### title XEN kernel (hd0,0)/xen.gz dom0_mem=196608 module (hd0,0)/vmlinuz-xen root=/dev/hda5 vga=0x31a selinux=0 splash=silent resume=/dev/hda7 showopts module (hd0,0)/initrd-xen ###Don’t change this comment - YaST2 identifier: Original name: floppy### title Floppy root (fd0) chainloader +1

Tác gi nghĩ r ng c n gi i thích c th hơn m t chút v t p tin này. Có th b n đã đoán ra nh ng dòng b t đ u b ng ký t ‘#’ là nh ng dòng chú thích. B n có th ghi b t kỳ câu gì mong mu n vào dòng này và không nh hư ng gì đ n công vi c c a chương trình. Ngoài dòng chú thích GRUB cũng b qua nh ng dòng tr ng. đ u t p tin là nh ng thi t l p chung (global options), nh ng tùy ch n có liên quan đ n giao di n c a trình đơn. Chúng đư c đ t trư c các m c b t đ u b ng ‘title’. Tùy ch n default ch ra h đi u hành kh i đ ng theo m c đ nh (n u không đ ng vào bàn phím khi kh i đ ng). S ‘0’ ch ra đó là h đi u hành th nh t trong danh sách (t c là SuSE Linux 9.3). Hãy nh l i, trong GRUB vi c đánh s đư c b t đ u t ‘0’ ch không ph i ‘1’. Tùy ch n timeout cho bi t GRUB s kh i đ ng m t cách t đ ng sau kho ng th i gian ch ra (tính theo giây) n u không nh n phím nào. Trong trư ng h p này là sau 8 giây. Tùy ch n color dùng đ ch n màu cho trình đơn (hãy th nó!). Sau nh ng thi t l p chung là ph n thi t l p cho t ng h đi u hành c th . M i ph n đ u b t đ u b ng l nh ‘title’ theo sau là tên s hi n th trong trình đơn. Và vì l nh này hi n th tham s m t cách nguyên v n, nên b n có th nh p b t kỳ th gì vào phía sau. Như b n th y trong t p tin c u hình trên, ph n đ u tiên là đ kh i đ ng “SUSE LINUX 9.3”, ph n th hai – “Windows”, v.v. . . Khác v i trư ng h p LILO, sau khi thay đ i c u GRUB không c n ph i ch y b t kỳ l nh nào đ nh ng thay đ i này có hi u l c. Chúng s đư c c p nh t m t

7 . Tuy nhiên tác gi chưa nhìn th y s c n thi t c a ng d ng này (n u đã ch n LILO làm trình kh i đ ng chính thì hãy s d ng cho “tr n b ”). Cách chia đĩa đã nói trên.8 2. 1. Trong ví d này chúng ta s coi như thi t b /dev/hda1 là phân vùng v i DOS/Windows. ví d khi MBR là trình kh i đ ng c a MS-DOS hay Windows. Chúng ta xem xét m t ví d nh c a t p tin c u hình LILO. Đây là m t đi m m nh c a GRUB so v i LILO. C n nh r ng.3 và 2.5. Dùng chương trình Partition Magic đ l y ph n không gian đĩa còn tr ng và trên đó t o ra m t phân vùng ext2(3) (h th ng t p tin Linux) và m t phân vùng swap.22 label = linux Ghi chú.36 Cài đ t HĐH Linux trên cùng máy tính v i Windows cách t đ ng trong l n kh i đ ng sau. Sau m t th i gian làm vi c v i Linux và có đ kinh nghi m b n s bi t cách tìm thêm thông tin v trình kh i đ ng tuy t v i này. T o các đĩa m m kh i đ ng theo nguyên t c là không b t bu c. N u dung lư ng đĩa c ng vư t quá 8. 2. Trình kh i đ ng LILO không b t bu c ph i cài đ t vào b n ghi kh i đ ng chính c a đĩa.txt root = current image = /boot/vmlinuz-2. nhưng đ i v i ngư i dùng m i thì như v y là đ . LILO có th n m b n ghi kh i đ ng c a phân vùng chính đư c kích ho t và ch a thư m c g c c a Linux ho c th m chí trên phân vùng lôgíc trong phân vùng m r ng. thì trong quá trình cài d t Linux c n ch n phương án cài LILO vào b n ghi kh i đ ng chính (Master Boot Record). T t nhiên đây không ph i là t t c nh ng kh năng s d ng c a GRUB. vì th chúng ta s không xem xét đ n. 2.7 4. 3.4. Cài đ t Linux theo ch d n đi kèm v i b n phân ph i. Bư c ti p theo c n c u hình LILO đ có th kh i đ ng các HĐH theo l a ch n. Trong trư ng h p đó MBR c n ph i có kh năng n p LILO.conf và câu l nh /sbin/lilo.conf có d ng g n như sau: boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg. nhưng tác gi khuyên b n đ c nên làm.8. Trong trư ng h p đó /etc/lilo. n u b n mu n s d ng trình kh i đ ng LILO. chúng ta s đưa ra các bư c c n th c hi n đ có th kh i đ ng nhi u HĐH. LILO đư c c u hình b ng t p tin /etc/lilo. Câu l nh này dùng đ cài đ t (hay cài đ t l i) LILO.1 S d ng trình kh i đ ng LILO Cài đ t và c u hình LILO Gi ng như trư ng h p Windows NT. Trư c khi cài đ t Linux hãy chu n b đĩa m m kh i đ ng Windows. còn phân vùng /dev/hda2 ch a Linux.4 Gbyte thì hãy đ c k các ph n 2.

đ không th y trình đơn kh i đ ng c a NT Loader. Windows NT và Windows 98. Dòng table=<device> cho bi t tên thi t b ch a b ng phân chia đĩa.2. Trong m i ph n như v y có m t dòng label. N u đ t dòng (g i là ph n nh thì t t hơn) other = /dev/hda1 trong t p tin /etc/lilo. 37 Dòng compact b t ch đ nén t p tin map – t p tin ch a đ c tính c a nhân đư c kh i đ ng. (M t s h đi u hành có công c khác đ xác đ nh là đã đư c kh i đ ng t phân vùng nào. Trong ví d này. Trên m t máy c a tác gi đó n m trình kh i đ ng NT Loader (vì Windows NT đư c cài đ t trư c Linux).conf: other = /boot/bootsect. Ch c n đ t th i gian ch kh i đ ng trong t p tin boot. vì ph n c u hình tương ng v i Linux n m đ u tiên trong t p tin.ini b ng không. c n th c hi n câu l nh /sbin/lilo.1 giây). Tuy nhiên. Câu l nh message dùng đ đưa ra thông báo theo ý mu n khi kh i đ ng. N u như tên không đư c nh p sau kho ng th i gian ch trên dòng delay (tính theo ph n mư i giây – c n nhân v i 0. B t đ u t dòng image là các ph n nh c a t p tin c u hình. LILO. s kh i đ ng Linux theo m c đ nh. LILO s không đưa thông tin v phân chia đĩa cho h đi u hành đư c kh i đ ng n u bi n này không đư c đưa ra. N u b n đ c mu n kh i đ ng Windows tr c ti p t ph n nh sau vào /etc/lilo.dos label = win trong đó bootsect. n u vì m t lý do nào đó b n mu n th y trình đơn này thì giá tr timeout trong t p tin boot. thì hãy thêm . m i ph n tương ng v i m t h đi u hành s kh i đ ng theo l a ch n c a ngư i dùng. t c là thay đ i bi n table. Đi u này có th c n thi t khi mu n kh i đ ng c Windows 98 t trình đơn c a NT Loader (trong trư ng h p này s có 3 HĐH: Linux. sau khi thay đ i ch d n đ n b ng phân chia đĩa. và LILO kh i đ ng thành công Windows NT. thì s kh i đ ng HĐH theo m c đ nh.8 S d ng trình kh i đ ng LILO read-only other = /dev/hda1 table = /dev/hda label = dos Vài l i gi i thích cho ví d : Dòng boot cho bi t thi t b kh i đ ng. Có th ch ra h đi u hành đư c kh i đ ng theo m c đ nh khi thêm m t dòng có d ng default=dos.conf. Trên dòng này ghi tên c n nh p vào d u nh c LILO hay tên s hi n th trong trình đơn c a LILO đ có th ch n HĐH mu n kh i đ ng. t c là s d ng tên đã đ t trên dòng label.ini c n đ t khác không (th i gian ch đư c tính theo giây).dos l y t thư m c g c c a đĩa ch a NT Loader. trong trình đơn c a LILO n u ch n dos thì s hi n ra trình đơn c a NT Loader r i t đó ch n m t trong hai HĐH Windows đ kh i đ ng). tính năng (nén) này tăng t c đ c a kh i đ ng đ u. thì trong thư m c g c c a đĩa /dev/hda1 (đĩa C: trong h th ng thu t ng Microsoft) c n có trình kh i đ ng ph (không ph i là chính).) Đ ng quên r ng.

38 Cài đ t HĐH Linux trên cùng máy tính v i Windows 5. mà không thay đ i b ng phân chia đĩa. và b ng phân chia đĩa. thì b n đ c s đư c bi t thêm thông tin chi ti t v nh ng gì l nh /sbin/lilo s th c hi n. ví d . ho c phân vùng ch a LILO chưa đư c kích ho t.NNNN. Khi này m i ch cái bi u th s k t thúc m t hành đ ng nào đó hay k t thúc m t bư c n p LILO. 0800 – /dev/sda.conf theo ý mu n. câu l nh này ch làm vi c đúng v i đi u ki n là thư m c LILO (t c là /boot) không thay đ i k t khi cài đ t. MBR c a MS-DOS có th đư c ph c h i b ng cách kh i đ ng vào DOS t đĩa m m (CD) r i ch y câu l nh fdisk /mbr (xem trên). v. Câu l nh đ th c hi n có d ng: [root:~#] dd if=/boot/boot. N u t p tin này đã có trên đĩa. Khi LILO đư c n p. n u không còn cách ph c h i nào khác đơn gi n hơn. Khi có tham s này s th c hi n t t c các th t c cài đ t trình kh i đ ng.0300 of=/dev/hda bs=446 count=1 hay [root:~#] dd if=/boot/boot. mà s đư c kích ho t trong l n kh i đ ng ti p theo. . c n ch y câu l nh /sbin/lilo đ nh ng thay đ i có hi u l c. . Tuy nhiên có th đ t m t tên khác đ ghi sector kh i đ ng. không nh t thi t ph i dùng /boot/boot. t c là ch ch y th c u hình m i. Đ k t thúc ph n nói v LILO này chúng ta s xem xét vài khó khăn có th xu t hi n khi s d ng LILO. Câu l nh này (trong tài li u hư ng d n g i là map-installer) cài đ t trình kh i đ ng ph . nó đưa ra màn hình t “LILO”.v. b n ghi sector kh i đ ng. và cách kh c ph c (n u có th ). Nhưng c n bi t r ng. 0300 – tương ng /dev/hda. Ho c LILO không đư c cài đ t. trong đó NNNN tương ng v i s c a thi t b . 6. tr vi c thay đ i t p tin map. thì nó không b ghi đè lên.NNNN có th s d ng đ ph c h i n i dung cũ c a sector kh i đ ng. . N u cho thêm tùy ch n -v. hãy th c hi n câu l nh này v i tham s -t. Theo m c đ nh đó là t p tin /boot/boot. T p tin /boot/boot. ˆ Không ch cái nào hi n ra – không có ph n nào c a LILO đư c n p. Sau khi s a xong t p tin /etc/lilo. thì n i dung cũ c a sector này s t đ ng đư c ghi nh vào m t t p tin. Khi /sbin/lilo ghi đè n i dung m i lên sector kh i d ng. Sau khi cài đ t l i trình kh i đ ng c n kh i đ ng l i máy tính và th các phương án kh i đ ng khác nhau đ ki m tra. thì qua s ch cái đưa ra có th nh n đ nh v nguyên nhân xu t hi n v n đ . L nh này ch thay đ i mã chương trình kh i đ ng n m trong MBR. N u kh i đ ng b b ngưng gi a ch ng. Trư c khi ch y /sbin/lilo đ thay đ i bư c kh i đ ng.NNNN. và không đ ng gì đ n b ng phân chia đĩa). Cũng có th ph c h i MBR cũ khi c n thi t b ng câu l nh /sbin/lilo v i tùy ch n -u.0800 of=/dev/hda bs=446 count=1 (bs=446 vì ch ph c h i chương trình kh i đ ng.

ˆ LIL — trình kh i đ ng ph đã đư c ch y. s a l i t p tin c u hình LILO (thêm ph n nh cho HĐH m i). Như th . nhưng nó không th n p trình kh i đ ng ph . ˆ LI – trình kh i đ ng chính đã n p đư c trình kh i đ ng ph . Vì trong ph n l n các trư ng h p phân vùng DOS chi m các vùng đĩa đ u (không có h n ch c a BIOS).8 S d ng trình kh i đ ng LILO 39 ˆ L [mã l i] – trình kh i đ ng chính đã đư c n p và đã ch y (t c là đã nh n đư c quy n đi u khi n).2. nhưng không ch y đư c nó. ˆ LILO – t t c các ph n c a LILO đư c n p thành công. Khi có v n đ sau khi cài đ t m t h đi u hành khác sau Linux. khi mà thư m c /boot không th n m trên phân vùng dành cho Linux.8.b b di chuy n mà ngư i dùng quên không ch y /sbin/lilo. 2. Mã l i hai ký t cho bi t nguyên nhân c th c a v n đ (cách gi i mã c n tìm trong tài li u k thu t c a LILO). r i ch y /sbin/lilo. thì Linux s không th kh i đ ng. ˆ LIL. nhưng nó không th n p b ng mô t t t p tin map.8.– b ng mô t trong t p tin map b phá h y. N u LILO không d ng l i đây. 2. trình kh i đ ng c a chúng (không ph thu c vào ý mu n c a b n đ c) đư c ghi vào Master Boot Record (MBR). Thông thư ng do l i đưa ra c u trúc hình h c c a đĩa ho c t p tin /boot/boot. Có th ph c h i l i LILO b ng cách ch y l nh /sbin/lilo (n u LILO đư c cài vào MBR).b b di chuy n mà ngư i dùng quên không ch y /sbin/lilo. . thì v n đ thư ng d gi i quy t. Thông thư ng do l i đưa ra c u trúc hình h c c a đĩa ho c t p tin /boot/boot. và sau đó m i cài đ t Windows 95/98 hay MS-DOS. nên cho phép gi i quy t nhi u v n đ c a đĩa l n. ho c kích ho t phân vùng ch a LILO (n u LILO đư c cài vào phân vùng chính). n u như b n đ c đ u tiên cài đ t Linux. và d u kích ho t trong b ng phân vùng s đư c chuy n sang phân vùng MS-DOS (Windows 95/98).2 Cài đ t các h đi u hành khác sau Linux Khi cài đ t MS-DOS và Windows 95/98. Thông thư ng thì v n đ n y sinh do đĩa x u (có khuy t t t) hay không đ t đúng c u trúc hình h c c a đĩa. Có th là l i đưa c u trúc hình h c c a đĩa.3 Chuy n thư m c /boot lên phân vùng DOS Nh ng phiên b n nhân Linux m i nh t h tr kh năng đ t các t p tin c n thi t trên giai đo n kh i đ ng vào h th ng t p tin MS-DOS (hay UMSDOS). ˆ LIL? – trình kh i đ ng ph đã đư c n p vào đ a ch không đúng. Mà trình kh i đ ng MS-DOS và Windows 95/98 ch “bi t” chuy n quy n đi u khi n cho sector đ u tiên c a phân vùng kích ho t. thư ng có th gi i quy t b ng cách kh i đ ng vào Linux b ng đĩa m m kh i đ ng.b b di chuy n mà ngư i dùng quên không ch y /sbin/lilo. mà ti p t c đưa ra m t chu i vô t n các mã l i. ho c t p tin boot/boot. Nguyên nhân thư ng do khuy t t t c a đĩa ho c không đưa đúng c u trúc hình h c c a đĩa.

m c dù b n đ c có th thay th zImage thành bzImage 8 . thư m c /boot đư c chuy n thành liên k t tư ng trưng đ n thư m c /dos/linux. N u như b n đ c mu n quay tr l i DOS.exe thành m t công c tuy t v i đ kh i đ ng Linux khi có v n đ v i LILO. t o trong đó m t thư m c (ví d . bzImage là đ nh d ng m i hơn (s phiên b n nhân l n hơn 1.ffm. Kh năng này th c hi n nh chương trình đ c bi t loadlin. và cu i cùng ch y l nh /sbin/lilo.8 Loadlin. vì chương trình này h tr “kh i đ ng lôgíc” c a máy tính. Gói nén này còn ch a hư ng d n m t s b n phân ph i còn có gói cài đ t cho chương trình này.exe không có nghĩa là Linux làm vi c dư i DOS. Chương trình loadlin.exe cung c p cách kh i đ ng Linux t c ng an toàn nh t.de) vi t. Tuy nhiên. ˆ Chương trình loadlin. Như v y. khi có phân vùng kích ho t là DOS hay Windows.6 c a loadlin. và chuy n t t c các t p tin t thư m c /boot vào đó. Ti p theo chúng ta s ch nói v các t p tin zImage. ˆ Trên máy tính c a b n (t t nhiên v i b x lý 386 ho c cao hơn) c n cài đ t DOS hay WINDOWS 95.exe làm vi c v i m i c u hình DOS và có r t ít h n ch .exe Không ch các t p tin kh i đ ng và nhân có th n m trong phân vùng DOS. Phiên b n này có th s d ng b nh m r ng. thì ph i kh i đ ng l i máy tính.fgan. c n phân vùng DOS ch đ đ c/ghi.exe vào thư m c c a ngư i dùng root 9 Ghi chú. b ng câu l nh reboot. nhân khi gi i nén có kích thư c lên t i 2 Mbyte.40 Cài đ t HĐH Linux trên cùng máy tính v i Windows Đ th c hi n phương án kh i đ ng này.exe đ kh i đ ng và b t đ u tìm hi u Linux. /dos/linux). mà c ti n trình kh i đ ng Linux nói chung có th đư c t ch c t DOS. Đ i v i nh ng ngư i dùng m i thì s thu n ti n hơn khi s d ng loadlin. Chương trình này thư ng có trên các đĩa c a b n phân ph i. Phiên b n 1. ˆ C n có nh nén c a nhân Linux (zImage. “không vào hang c p sao b t đư c c p”.exe và nhân ( nh c a nhân) lên m t trong các đĩa mà DOS nh n ra. Ph n l n ngư i dùng m i (và không ch h ) không đ kiên nh n đ đ c tài li u r t hay nhưng r t dài (và l i vi t trên ti ng Anh n a) c a LILO. bzImage)9 . ví d . Vì th h thư ng s d ng LILO không đúng cách. và k t qu là không th kh i đ ng đư c b t kỳ h đi u hành nào (tác gi cũng đã rơi vào trư ng h p như v y). Có th dùng chương trình này đ kh i đ ng Linux t CD ho c t đĩa trong m ng mà không c n s d ng đĩa m m kh i đ ng. 2. và sau đó DOS đư c thay th hoàn toàn b ng Linux. Kh năng này bi n loadlin.conf.exe. Có th tìm th y trên đĩa phân ph i d ng không nén hay trong gói LOADLIN16.73) có kích thư c lên t i 1 Mbyte. có th n p các nhân l n (các bzImage) và các nh đĩa o (initrd) tr c ti p vào vùng b nh n m trên. v trí m i c a thư m c /boot c n ch ra trong t p tin /etc/lilo. Vi c s d ng loadlin.exe. do Hans Lermen (lermen@elserv. thông thư ng ghi t p tin loadlin.exe không yêu c u ph i cài đ t. do đó. ch c n đ t chương trình – t p tin loadlin.9 Kh i đ ng Linux t MS-DOS b ng loadlin.TGZ.3. c n làm gì đ có th s d ng chương trình loadlin. Phương án kh i đ ng này đư c khuyên s d ng cho ngư i dùng Linux m i.exe. zImage là đ nh d ng nh phân cũ c a nhân.

.22. N u b n ch y loadlin. 1. Sau khi vào DOS hãy chuy n sang thư m c C:\LOADLIN: CD \LOADLIN r i th c hi n l nh: C:\LOADLIN> LOADLIN vmlinuz /dev/hda3 ro vga=ask . 3.TGZ vào đó.5) 2.TXT.PAR. Sao chép t p tin vmlinuz-2. và ch có ý nghĩa thu n ti n cho s d ng): [root]# cp /boot/vmlinuz-2. Chia các phân vùng cho Linux (cách làm xem ph n 2. Ngoài ra sao chép t thư m c /boot vào thư m c đó c t p tin ch a nh c a nhân Linux.22 /mnt/C/loadlin/vmlinuz 4.conf: tìm trong t p tin c u hình dòng “image=.exe không có tham s C:\LOADLIN> loadlin thì s nh n đư c hư ng d n s d ng ng n g n. LILO c n cài đ t vào sector đ u tiên c a phân vùng Linux đ không ghi đè lên MBR và không b m t kh năng kh i đ ng vào Windows.exe 41 s d ng DOC\MANUAL. Sau khi k t thúc ph n cài đ t hãy kh i đ ng Linux (n u không có cách nào khác. Ví d tên c a t p tin này là vmlinuz-2.4.4. còn phân vùng Linux là /dev/hda3): [root]# mount -t vfat /dev/hda1 /mnt/C T o thư m c /mnt/C/loadlin và gi i nén t p tin LOADLIN16.4. ho c qua h p tho i l a ch n khi nh n l nh t t máy (shutdown) Windows 95/98.exe đ kh i đ ng. Thu n ti n hơn đ đ c hư ng d n này khi ch y chương trình v i tham s more (gi ng trong Linux): C:\LOADLIN> loadlin | more Bây gi chúng ta có th xem xét các bư c cài đ t Linux khi s d ng loadlin..9 Kh i đ ng Linux t MS-DOS b ng loadlin. Bây gi i kh i đ ng l i máy tính vào DOS tr c ti p (n u b n đ c có Windows 95/98 thì c n nh n phím <F8> khi kh i đ ng đ hi n th trình đơn cho phép ch n DOS). Có th tìm t p tin ch a nh c a nhân c n thi t nh t p tin /etc/lilo.” và b n đ c s th y tên c n thi t phía bên ph i d u b ng.DOC (đ ng quên r ng chúng là nh ng t p tin DOS).2.22 t /boot vào /mnt/C/loadlin và đ i tên thành vmlinuz (vi c đ i tên là không nh t thi t. t p tin tham s ví d DOC\TEST. G n phân vùng DOS (gi thi t là /dev/hda1. Cài đ t Linux vào phân vùng đã chia. hãy s d ng đĩa m m kh i đ ng). và hư ng d n cách đưa các tham s DOC\PARAMS.

Bây gi b n đ c có th s d ng cách này đ kh i đ ng Linux.edu/~gpg109/BootPrompt-HOWTO.bat). (Đ ch y giao di n đ h a. Có th vi t thêm l nh g i loadlin vào t p tin autoexec.bat ho c t o m t t p tin l nh (ví d . máy tính s chuy n vào ch đ DOS trư c. Tác gi cho r ng nh ng thông tin đã đưa ra trên đ đ t o t p tin bat c n thi t. Mô t đ y đ t t c các tham s c a câu l nh loadlin. . và khi ch y t p tin này. b ng cách thêm vào hai dòng sau (n u chưa có): BootGUI=0 Logo=0 Dòng đ u tiên t t giao di n đ h a. sau đó thì ch y Linux. và DOS s đư c kh i đ ng thay cho Windows 95/98.anu.html.SYS (đây là t p tin văn b n thông thư ng). html và http://rsphy1.42 Cài đ t HĐH Linux trên cùng máy tính v i Windows ho c.DOC ho c Internet trên trang http://sunsite. n u b n đ c mu n n p nhân cùng v i đĩa RAM: C:\LOADLIN> LOADLIN vmlinuz /dev/ram rw initrd=diskimage Còn có th ghi t t c các tham s c a l nh loadlin. V n đ ch . linux. c n nh p câu l nh C:\> win).exe có th tìm th y trong t p tin PARAMS.unc.exe vào t p tin (ví d v i tên params) và g i câu l nh đó d ng sau: C:\LOADLIN> LOADLIN @params Kh năng này đ c bi t có ích khi đưa nhi u tham s dòng l nh và khi đ dài c a dòng l nh l n hơn 127 ký t . n u như có hi n th bi u tư ng Windows.edu/mdw/HOWTO/BootPrompt-HOWTO. Dòng Logo=0 t t vi c hi n th bi u tư ng Windows (c a s ). đ i v i m t s c c màn hình Linux s đưa ra m t màn hình tr ng r ng sau khi kh i đ ng. C n nói thêm r ng. không đư c kh i đ ng Linux t giao di n đ h a DOS/Windows và c n t t m t vài tùy ch n trong t p tin n C:\MSDOS. Công vi c duy nh t còn l i là làm sao đ không ph i gõ l nh loadlin v i t t c các tham s sau m i l n kh i đ ng l i.

Cu i cùng xu t hi n màn hình cho phép ngư i dùng đăng nh p vào h th ng. thì b n s bi t cách thay đ i màn hình này. N u kh i đ ng b ng đĩa m m thì quá trình cũng tương t nhưng ch m hơn m t chút. ví d đưa ra nh ng câu chào d ng “Xin chào! Hôm nay là 02 tháng 09 năm 2006. 1 . Do đó có th b n đ c s không th y nh ng thông báo này. N u Linux không ph i là h đi u hành (HĐH) duy nh t trên máy tính. Trong trư ng h p đó. B t máy tính lên. B n d ch đã c p nh t l i và s d ng trình kh i đ ng GRUB 2 Trong nh ng b n phân ph i Linux m i.1 Kh i đ ng HĐH Linux Như v y là vi c cài đ t Linux đã hoàn thành1 .Chương 3 Kh i đ ng Linux l n đ u V n s kh i đ u nan – Trung Qu c Ngư i d ch: Sau khi cài đ t r t có th b n đ c s không bi t bư c ti p theo ph i làm gì. hãy nh n phím tương ng đ chuy n v màn hình kh i đ ng bình thư ng. N u có đ kiên nh n đ đ c h t cu n sách này.. Hãy nh p vào tên ngư i dùng và m t kh u”. N u không ch m vào bàn phím. Phím này thư ng là <Esc>. có s d ng màn hình flash. thì trên màn hình s xu t hi n r t nhi u thông báo mà t m th i chúng ta s không xem xét ý nghĩa c a chúng2 . T t nhiên màn hình đăng nh p c a b n đ c s khác.. Tuy nhiên bây gi v n còn s m đ nói v v n đ này. 3. Ph i làm gì đ có th ti p t c làm vi c v i h th ng Linux? Sau khi làm vi c xong thì t t máy th nào? Có nh ng chương trình nào nên bi t? Trong khi làm vi c có v n đ n y sinh thì tìm câu tr l i đâu? Trong chương này chúng ta s tìm th y câu tr l i cho nh ng câu h i trên. đ i h th ng kh i đ ng xong và . ví d SuSE Linux. ng i nhìn. thì trên màn hình kh i đ ng GRUB s xu t hi n danh sách các h đi u hành tìm Ngư i d ch: Thông tin trong ph n này c a b n g c ti ng Nga đã hơi cũ và trình kh i đ ng b n g c s d ng là LILO.1. thì sau nh ng dòng ch BIOS thư ng đưa ra s xu t hi n màn hình d ng như trong hình 3. N u ngư i dùng đã cài đ t GRUB làm trình kh i đ ng. N u b n đã ch n t đ ng ch y ch đ đ ho thì hãy nh n <Ctrl>+<Alt>+<F1> đ th y màn hình đăng nh p như sau: ThinhQuyen login: Màn hình đăng nh p này xu t hi n trên máy c a tác gi khi kh i đ ng Debian Linux.

th m chí làm h ng h th ng. có th thêm. Tuy nhiên chúng ta đang trong trư ng h p này. và trong khi cài đ t b n quên t o thêm ngư i dùng. khi hi n ra dòng m i này thì đ u tiên c n nh p vào tên ngư i dùng. Nh ng thao tác không c n th n c a ngư i dùng này có th d dàng d n đ n nh ng h u qu khó lư ng. H th ng s đưa ra câu h i m t kh u: Password: T t nhiên là b n c n nh p vào m t kh u tương ng v i ngư i dùng đã đưa ra. . M t kh u này là m t kh u đã đưa ra cho ngư i dùng root trong quá trình cài đ t. Ngư i dùng này là ch s h u có toàn quy n đ i v i h th ng bây gi cũng như sau này.2 Đăng nh p vào h th ng Như b n đã bi t.1: Màn hình kh i đ ng c a GRUB th y. Có th ch n HĐH mu n kh i đ ng b ng các phím <↑> và <↓> r i nh n phím <Enter>. Vì th thư ng ch đăng nh p dư i tên ngư i dùng này khi th c hi n các công vi c qu n tr h th ng. thì h th ng s t đ ng quay tr l i dòng h i tên ngư i dùng login:. t c là có quy n truy c p không gi i h n đ n các tài nguyên. N u đã ch n kh i đ ng Linux thì cu i cùng ngư i dùng ph i th y dòng login:.v. . xóa nh ng ngư i dùng khác. 3. sau đó nh p vào m t kh u khi có yêu c u đ vào h th ng.44 Kh i đ ng Linux l n đ u Hình 3. thì hãy nh p vào tên ngư i dùng “root” (ngư i dùng cao c p). đây là m t kh u c a root. N u sau khi nh p vào tên ngư i dùng r i r t lâu sau không vào m t kh u. N u đây là l n đăng nh p đ u tiên vào h th ng ngay sau khi cài đ t. t c là dòng m i nh p vào tên đăng nh p. Sau khi nh p m t kh u cũng nh n <Enter>. Đây là ngư i dùng duy nh t luôn luôn có tài kho n đư c t o ra trong quá trình cài đ t. Sau khi nh p . vì th hãy nh p “root” vào dòng login: r i nh n phím <Enter> (<Return>). d ng h th ng v.

ví d . b n s th y dòng như sau: [root@ThinhQuyen /root]# 45 Dòng này đư c g i là d u nh c. Reenter New Password: Đ ng ng c nhiên. “m tài kho n cho ngư i dùng nhimlui”). tên h th ng (ThinhQuyen) và thư m c hi n th i (/root).3. Trong MS-DOS và Windows(TM) màn hình đen và d u nh c h th ng thư ng đư c g i là ch đ dòng l nh.2 Đăng nh p vào h th ng đúng m t kh u. New Password: Hãy nh p vào m t kh u. Sau tên c a câu l nh c n kho ng tr ng và sau đó là tên ngư i dùng. Chúng ta s g i ch đ này là văn b n đ phân bi t v i ch đ đ ho c a h th ng X Window. Trong ví d đưa ra d u nh c g m tên ngư i dùng (root). Sau khi nh p xong. cũng nh n phím <Enter>. b n s không nhìn th y m t kh u vào vì h th ng s không hi n th gì ra. N u b n đã nh p đúng t t c . c n nói r ng trên b t kỳ h th ng UNIX nào ki u ch cũng đ u đóng vai trò quan tr ng. Xu t hi n d u nh c có nghĩa là h th ng đã s n sàng ti p nh n và th c hi n câu l nh c a ngư i dùng. nhimlui: [root]# useradd nhimlui Ngay sau khi nh n phím <Enter> đ ch y l nh này. Vì th c n nh p vào t t c các câu l nh cũng như tham s c a chúng như ch ra trong ví d . c n ph i “t o” thêm cho ngư i dùng này m t kh u b ng câu l nh: [root]# passwd nhimlui S xu t hi n dòng: Changing password for nhimlui. Trư c khi đ ngh b n đ c nh p vào câu l nh đ u tiên. h th ng s h i nh p m t kh u m t l n n a đ ki m tra. “đăng nh p”) dư i tên ngư i dùng này. thì s xu t hi n thông báo thành công d ng: Password changed. th i đi m này nó có nghĩa là b n đã đăng nh p vào h th ng m t cách thành công. k c ki u ch . Đ h th ng cho phép ngư i dùng m i nhimlui làm vi c. Tuy nhiên v n chưa th vào h th ng (thư ng nói. k c d u sao ‘*’ như thư ng th y. Trong t t c các ví d ti p theo chúng ta s s d ng d u nh c ch g m có tên ngư i dùng. Sau này b n có th thay đ i d ng c a d u nh c này. t c là có phân bi t ch hoa và ch thư ng. Câu l nh đ u tiên chúng ta s nh p vào là useradd. . trên h th ng s bi t r ng ngư i dùng nhimlui t n t i (chúng ta nói.

và phím tr ng. Chú ý là có th xem thông tin v chính b n thân câu l nh man. Hãy nh n phím <Q> b t kỳ th i đi m nào đ thoát ra kh i màn hình xem man và quay l i dòng nh p l nh. nhưng h th ng v n ti p nh n m t kh u và cho phép ngư i dùng m i đăng nh p vào h th ng. Vì thông tin thư ng không th n m g n trên m t màn hình nên khi xem c n s d ng các phím <PageUp>. N u như b n không có kh năng đ c ti ng Anh. Ví d : [root]# man passwd K t qu là b n s nh n đư c m t văn b n mô t câu l nh tương ng ho c thông tin v đ tài mà t khoá đưa ra. Bây gi xin b n đ c hãy th xem thông tin v hai câu l nh đã đ c p đ n trên – login và passwd. Ví d . Hãy ch y l nh: [root]# man man R t ti c theo như tác gi bi t thì hi n th i các trang thông tin man còn chưa đư c d ch sang ti ng Vi t. Chúng ta s không xem xét chi ti t danh sách t t c nh ng câu l nh có th g p. Câu l nh ti p theo mà b t kỳ ngư i dùng Linux nào cũng c n ph i bi t đó là câu l nh man. thì s xu t hi n dòng c nh báo (d ng Bad password: too short). hãy th nh ng câu l nh li t kê trong b ng 3. B ng 3.46 Kh i đ ng Linux l n đ u và s l i xu t hi n d u nh c c a h th ng. man là h th ng tr giúp luôn luôn đi kèm v i h th ng Linux. có th đ c v nh ng câu l nh chính trong b t kỳ cu n sách nào nói v UNIX.1: Nh ng câu l nh đơn gi n c a Linux Câu l nh Mô t ng n g n whoami Thông báo tên đăng nh p c a b n w ho c who Cho bi t nh ng ngư i dùng nào hi n đang làm vi c trên h th ng pwd Cho bi t tên c a thư m c hi n th i ls -l Hi n th danh sách t p tin và thư m c con c a thư m c hi n th i cd tên_thư_m c Chuy n thư m c hi n th i đ n tên_thư_m c ps ax Hi n th danh sách các ti n trình đang ch y Hãy xem mô t v nh ng câu l nh này b ng man. Do đó b n s nh n đư c nh ng trang này b ng ti ng Anh. Như v y là b n đ c đã làm quen v i hai câu l nh đ u tiên c a h th ng Linux: useradd và passwd.1 (hãy nh p chúng cùng v i nh ng tham s có trong b ng). thì hay kiên nh n đ c cu n sách này ho c m t cu n sách khác cùng đ tài. Th hai. N u nh p vào m t kh u không t t (m t kh u quá ng n ho c quá đơn gi n). ngư i dùng s d n d n làm quen v i chúng trong quá trình đ c cu n sách này và th c hành trên HĐH Linux c a mình. C n ph i nh p vào câu l nh này v i m t tham s – tên c a câu l nh khác ho c t khóa. Vì th nh t. <PageDown>. . B n đ c còn có th th ch y thêm m t vài câu l nh n a và theo dõi xem h th ng làm gì.

3 Console. Đi m m nh c a gi i pháp này ch t t c nh ng chương trình cũ đã dùng đ qu n tr h th ng UNIX có th làm vi c không có v n đ gì trên d ng console m i này. Hãy nh n t h p phím <Ctrl>+<Alt>+<F2>. Theo m c đ nh. do đó tác gi gi i thích k hơn nh ng khái ni m này. Đ chuy n gi a các terminal o chúng ta s d ng các t h p phím <Ctrl>+<Alt>+<F1> — <Ctrl>+<Alt>+<F6>.3 Console. Nhưng đây không ph i là làm vi c l i t đ u v i h th ng mà b n đ c ch chuy n sang m t terminal o khác. còn có nh ng ngư i dùng khác v n ti p t c làm vi c. đư c g i là console.3. T h p phím nói trên ch đơn gi n là d ng phiên làm vi c hi n th i c a m t ngư i dùng. Máy tính cá nhân c a b n đ c là máy tính th h m i. SuSE.. Xin nói ngay l p t c n u b n mu n thoát kh i m t trong các terminal thì có th th c hi n b ng t h p phím <Ctrl>+<D>. Thao tác này không t t máy và cũng không kh i đ ng l i h th ng. Mainframe có m t terminal đ c bi t dành cho nhà qu n tr (system administrator) h th ng. Hãy th vào h th ng b ng tên ngư i dùng v a m i t o ra (nhimlui). ngoài console Linux còn cho phép k t n i các terminal xa t i máy tính. Chúng ta s còn g p thư ng xuyên nh ng khái ni m trình l nh “terminal” và “console”. nhưng v n có bàn phím và màn hình th c hi n vai trò terminal đ i v i ngư i dùng. Như v y r t thu n ti n cho s d ng. t t hơn h t là làm quen ngay t đ u v i t h p 3 phím. thư ng g m màn hình và bàn phím. Debian. . do đó ch c s không có terminal xa nào k t n i t i. B n s quay l i màn hình ban đ u. Đ ng quên r ng Linux là HĐH nhi u ti n trình (multiproccess) và nhi u ngư i dùng (multiuser). M t ngư i dùng nào đó d ng công vi c không có nghĩa là c n ph i t t máy. Terminal – thi t b dùng đ giao ti p gi a ngư i dùng và máy tính. L nh này s đưa ra tên c a terminal d ng: /dev/tty2. Tuy nhiên. h u h t các b n phân ph i Linux l n (Red Hat. máy tính còn r t to (mainframe) và ngư i dùng làm vi c trên nh ng máy tính này qua m t h th ng nh ng giao di n k ti p nhau dùng đ k t n i các terminal xa. C n nói thêm là khi làm vi c ch đ văn b n (không ph i đ ho ) thì cũng có th s d ng các t h p phím <Alt>+<F1> — <Alt>+<F6> và thu đư c k t qu tương t . . do đó bàn phím và màn hình máy tính cá nhân ngày nay làm vi c gi ng như console ngày xưa. Vì trên các h th ng UNIX ngư i ta thư ng tuân theo các truy n th ng. n u trong quá trình làm vi c b n đ c không nh đang n m trong terminal o nào thì hãy s d ng câu l nh tty. terminal o và shell Như v y là b n đ c đã có kinh nghi m làm vi c đ u tiên ch đ văn b n (hay còn g i là kênh giao tác “console”) c a h th ng Linux. và h th ng s hi n th l i trên terminal này . đây b n đ c có th đăng nh p dư i tên ngư i dùng khác. Nhân ti n cũng c n nói luôn. B n đ c s l i th y dòng m i đăng nh p login:. Sau đó hãy nh n t h p phím <Ctrl >+< Alt>+<F1>. ) m ra 6 phiên làm vi c song song (terminal o) như v y khi kh i đ ng. Ngoài ra thêm vào thành ph n c a terminal bây gi còn có chu t. Tuy nhiên n u làm vi c ch đ đ ho thì không th không dùng phím <Ctrl>. Do đó. Khi h th ng UNIX đ u tiên m i đư c t o ra. terminal o và shell 47 3. Console thư ng k t n i t i máy tính không qua giao di n k ti p nhau mà qua m t c m riêng (đôi khi thi t b đưa ra không ph i là màn hình mà là m t thi t b in). Và hơn th n a còn cung c p kh năng làm vi c v i m t vài terminal o t m t console duy nh t.

Đ ng kh i đ ng l i máy tính m i l n như v y! Câu l nh su giúp đ gi i quy t nh ng trư ng h p như v y. Nhưng như đã nói trên. Bây gi khi đã bi t cách b ng đ u và k t thúc phiên làm vi c trên h th ng. d u nh c c a t t c nh ng ngư i dùng còn l i – ký t $. ch có ngư i dùng cao c p m i có th th c hi n. Còn bây gi c n nói vài dòng v h v . b n s quay l i h v ban đ u (h v mà t đó b n đã ch y l nh bash). Không ch duy nh t l nh login có kh năng ch y shell.48 Kh i đ ng Linux l n đ u d u m i đăng nh p (login:) mà b n đ c đã th y. ví d g n h th ng t p tin. nhưng theo m c đ nh s ch y bash. B n ch c n nh p vào l nh bash (đây cũng là tên c a chương trình h v trên ph n l n các h th ng Linux) và như v y là đã ch y m t shell m i. Hãy đóng t t c nh ng phiên làm vi c mà root m ra. Máy tính c a ngư i dùng thông thư ng là máy cá nhân (personal computer hay nói g n là PC) dù nhà hay cơ quan. ví d : help cd. và ngoài ra còn có th s d ng các chương trình khác n m trên đĩa làm câu l nh. Trong bash có đ y đ các câu l nh tích h p (n i b ) và các toán t . Cũng có th d ng phiên làm vi c b ng m t trong hai câu l nh logout ho c exit. H v bash không ch là b x lý l nh mà còn là m t ngôn ng l p trình m nh. ít nh t b n đ c cũng không th xóa ho c làm h ng các t p tin h th ng (system files) do s không c n th n c a mình. M i l n ngư i dùng nào đó vào h th ng. Cũng c n lưu ý là đ i v i các h th ng UNIX các nhà phát tri n đã vi t ra nhi u h v khác thay th cho bash. đăng nh p dư i tên ngư i dùng cao c p này là không nên. t c là vào h th ng dư i tên ngư i dùng bình thư ng (không có quy n cao “c p” c a ngư i dùng root). Ch c n nh p câu l nh su và shell hi n . Nói m t cách ch t ch thì câu “h th ng hi n th d u nh c” là không đúng. Chính shell nh n t t c nh ng câu l nh mà ngư i dùng nh p vào t bàn phím và t ch c vi c th c hi n nh ng câu l nh này. câu l nh login s ch y cho ngư i dùng này m t b x lý l nh – shell. Hãy th l nh này! Xem thông tin chi ti t v m t l nh nào đó cũng b ng l nh help này v i tham s là tên c a l nh. xin b n hãy th c hi n nh ng l i khuyên trên. H v hay shell (t này thư ng không d ch mà đ nguyên ti ng Anh) là chương trình th c hi n vi c giao ti p c a h th ng v i ngư i dùng. vì th shell còn có th g i là b x lý l nh (thu t ng quen thu c đ i v i ngư i dùng DOS). Cũng có th s d ng nh ng h v này trên Linux. Vì h v bash đóng m t vai trò h t s c quan tr ng trong Linux. vì d u nh c này là do shell đưa ra đ đ i ngư i dùng nh p vào câu l nh ti p theo. N u b n đ c đăng nh p vào h th ng t terminal th hai dư i tên ngư i dùng nhimlui (ho c dư i tên ngư i dùng b n đã ch n). Bây gi chúng ta s xem xét thêm m t câu l nh n a mà b n đ c c n bi t. có m t lo t các thao tác. vì m i thao tác không c n th n c a ngư i dùng này có th d n đ n nh ng h u qu không mong mu n. nên tác gi s dành riêng m t chương c a cu n sách này đ nói v nó. r i vào h th ng dư i tên ngư i dùng m i t o ra. D u nh c c a ngư i dùng root có ký t # cu i. thì hãy chú ý đ n s khác nhau trong d u nh c c a hai ngư i dùng root và nhimlui. Khi thoát kh i h v m i này (b ng câu l nh exit ho c t h p phím <Ctrl>+<D>). Trong khi đó. Có nghĩa b n đ c cũng là ngư i dùng root c a h th ng. Có th xem danh sách các câu l nh tích h p trong bash b ng l nh help. Khi đăng nh p dư i tên ngư i dùng thông thư ng. T t nhiên là b n có th tìm th y nh ng thông tin tương t trong b t kỳ cu n sách nào v UNIX.

Sau khi làm xong nh ng thao tác mà ch có ngư i dùng cao c p m i có th làm.3. Nh ng công vi c thư ng ngày (so n th o văn b n. Nhưng c n ch ra tên c a ngư i dùng này trên dòng l nh. còn khi c n th c hi n các công vi c qu n tr . Đ có thêm thông tin hãy s d ng câu l nh man bash ho c info bash. L ch s l nh Trong nh ng ph n trư c tác gi đã đ ngh b n đ c th c hi n m t vài l nh c a HĐH Linux. Như v y b n đ c s không có nguy cơ làm h ng h th ng khi còn chưa có nhi u kinh nghi m s d ng Linux. <End>. Vì th có th làm vi c dư i tên ngư i dùng root trên terminal o th nh t. còn trên terminal o th hai – dư i tên ngư i dùng bình thư ng. ) b n có th th c hi n b ng tài kho n bình thư ng. trên h th ng có th làm vi c cùng lúc nhi u ngư i dùng. . nhưng chúng ta ch xem xét nh ng câu l nh đơn gi n và c n thi t trong l n làm quen đ u tiên v i Linux này. <Home>. đ c thư.4 So n th o dòng l nh. hãy thoát kh i h v và b n s tr thành ngư i dùng bình thư ng v i nh ng quy n c a mình. thì có th s không th s d ng nh ng phím như <→>. ví d : [user]$ su nhimlui Câu l nh su trư c không kèm theo tên nào. chúng ta s nói v chu t m t ph n riêng). B ng cách tương t như vào h th ng dư i tên root trên. còn có th vào h th ng dư i tên m t ngư i dùng b t kỳ mà b n bi t m t kh u3 (nói cách khác là “ch y m t h v shell m i dư i tên ngư i dùng khác”). Tác gi cho r ng n u trong quá trình nh p l nh có x y ra l i thì b n có th đoán đư c cách s a chúng.2.4 So n th o dòng l nh.. Nhưng dù sao cũng có ích n u đưa ra danh sách ng n g n nh ng câu l nh (hay nói đúng hơn là phím và t h p phím) dùng đ so n th o dòng l nh. Hãy nh r ng Linux là h th ng nhi u ngư i dùng. 3.2. Sau khi th c hi n xong các công vi c qu n tr h th ng. 3 4 Ngư i dùng root không c n ph i bi t m t kh u đ làm vi c này. panel . theo m c đ nh s đ t tên ngư i dùng cao c p root vào. hãy quay l i tài kho n c a ngư i dùng bình thư ng ngay l p t c b ng t h p phím <Ctrl>+<Alt>+<F2>. cũng như gây nh hư ng đ n cách làm vi c c a shell b ng bàn phím (b ng 3. Nhưng trong HĐH Linux còn có thêm m t kh năng chuy n t m th i vào tài kho n c a ngư i dùng root đ th c hi n các ch c năng qu n tr . vì chúng đư c Midnight Commander dùng đ di chuy n dòng chi u sáng trong b ng4 hi n th i. Ghi chú: N u b n làm vi c trong chương trình Midnight Commander. Nhưng m t s t h p phím dùng v i <Ctrl> và <Esc> thì v n dùng đư c bình thư ng. L ch s l nh 49 th i (hay nói không đúng là “h th ng”) s ch y m t shell m i mà khi vào trong đó b n s ch y t t c các l nh v i quy n c a root. . <Del> đ làm các công vi c như b ng trên. <←>. Danh sách nh ng câu l nh (t h p phím) có th dùng không ch gi i h n trong ph m vi b ng 3. b n s dùng tài kho n ngư i dùng cao c p (root). T t nhiên là đ có quy n này b n c n nh p m t kh u c a root vào dòng yêu c u hi n ra (Password:). Đ th c hi n l a ch n này b n ch c n nh n <Ctrl>+<Alt>+<F1> và s có ngay quy n c a nhà qu n tr .

<Shift>+ <PgDown> <Ctrl>+<C> <Ctrl>+<D> . S lư ng nh ng trang này ph thu c vào b nh c a c c màn hình. ngư i dùng không k p th y chúng D ng th c hi n câu l nh v a ch y (mà v n đang ch y) Thoát ra kh i h v bash <Ctrl>+<U> <Esc>+<D> <Esc>+<Del> <Ctrl>+<W> <Ctrl>+<Y> <Esc>+<C> <Esc>+<U> <Esc>+<L> <Shift>+ <PgUp>. Có ích khi có câu l nh nào đó đưa ra màn hình r t nhi u thông tin ch y nhanh qua màn hình.50 Kh i đ ng Linux l n đ u Phím <→>. <Ctrl>+<A> <End>. <Ctrl>+<F> <←>.2: Nh ng phím so n th o dòng l nh Ph n ng c a h th ng Di chuy n sang ph i m t ký t (trong khuôn kh nh ng ký t đã nh p c ng thêm m t ký t s nh p) Di chuy n sang trái m t ký t Di chuy n sang ph i m t t Di chuy n sang trái m t t Di chuy n v đ u dòng l nh Di chuy n v cu i dòng l nh Xóa ký t n m t i v trí con tr Xóa ký t n m bên trái con tr B t đ u th c hi n câu l nh D n màn hình và đưa dòng l nh hi n th i lên dòng đ u tiên Đ i ch hai ký t : ký t n m t i v trí con tr và ký t n m bên trái con tr . <Ctrl>+<B> <Esc>+<F> <Esc>+<B> <Home>. <Ctrl>+<E> <Del>. <Ctrl>+<D> <Backspase> <Enter>. sau đó di chuy n con tr sang ph i m t ký t Đ i ch hai t : t n m t i v trí con tr và t n m bên trái con tr C t ph n dòng l nh b t đ u t ký t n m t i v trí con tr đ n cu i dòng (ph n dòng l nh c t ra đư c lưu trong b đ m và có th đ t vào v trí khác) C t ph n dòng l nh b t đ u t ký t n m bên trái con tr đ n đ u dòng (ph n dòng l nh c t ra đư c lưu tron b đ m và có th đ t vào v trí khác) C t ph n dòng l nh b t đ u t v trí con tr đ n cu i t (n u t i v trí con tr là d u cách thì c t toàn b t n m bên ph i nó) C t ph n dòng l nh b t đ u t v trí con tr đ n đ u t (n u t i v trí con tr là d u cách thì c t toàn b t n m bên trái nó) C t ph n dòng l nh b t đ u t v trí con tr đ n d u cách bên trái Đ t (dán) đo n dòng l nh đã c t cu i cùng vào v trí con tr Chuy n ký t t i v trí con tr thành vi t hoa r i di chuy n con tr t i d u cách đ u tiên bên ph i so v i t hi n th i Chuy n t t c các ký t b t đ u t v trí con tr thành vi t HOA r i di chuy n con tr t i d u cách đ u tiên bên ph i Chuy n t t c các ký t b t đ u t v trí con tr t i cu i t thành vi t thư ng r i di chuy n con tr t i d u cách đ u tiên bên ph i Nh ng t h p phím này cho phép xem các trang màn hình đã hi n th . <Ctrl>+<M> <Ctrl>+<L> <Ctrl>+<T> <Esc>+<T> <Ctrl>+<K> B ng 3.

3. thì s hi n th danh sách t t c nh ng phương án có th ch n. Nhưng nguyên nhân quan tr ng hơn là ch m t s ti n trình này có th đang làm vi c v i các t p tin. giá tr này đư c đ t trong bi n HISTSIZE. Nh đó ngư i dùng có kh năng nh p thêm m t vài ký t n a làm gi m s phương án ch n xu ng còn 1 r i là dùng phím <Tab> m t l n n a.bash_history). Vì trong b t kỳ th i đi m nào trên h th ng cũng có r t nhi u quá trình đang làm vi c.3. G i chương trình con này b ng m t ho c hai l n nh n phím <Tab> sau khi nh p m t vài ký t . t c là bash ch tìm th y có m t câu l nh này. và bash s đưa ra danh sách t p tin c a thư m c hi n th i.5 Ng ng làm vi c v i Linux 51 Xin lưu ý b n đ c trong h v bash có chương trình tích h p giúp d dành nh p câu l nh trên dòng l nh. n u đã nh p vào m t ph n tên t p tin thì ph n còn l i s đư c t đ ng thêm vào. thì h v bash s coi như b n đang tìm tên t p tin đ dùng làm tham s cho l nh này. Khi làm vi c v i HĐH Linux không th t t máy b ng cách ng t ngu n đi n như đ i v i MS-DOS. ch c n s d ng t h p phím <Esc>+<$> thay cho <Tab>. Đây là tính năng tr giúp c a bash trong trư ng h p ngư i dùng quên tên t p tin trong khi làm vi c căng th ng. và sau l n nh n <Tab> th hai s xu t hi n m t dòng d ng Display all 2627 possibilities? (y or n) (Hi n th t t c 2627 kh năng? c n ch n y – có ho c n – không). Có th xem l ch s l nh b ng câu l nh history. và h th ng còn chưa ghi nh t t c các thay đ i v i nh ng t p tin lên đĩa mà ch lưu 5 environment variable . Tương t như v y có th đoán ph n còn l i c a các bi n môi trư ng5 . 3. bash ghi nh m t s câu l nh (theo m c đ nh là 1000 l nh. đây b n c n s d ng các t h p phím <Shift>+<PgUp> và <Shift>+<PgDown> đ xem danh sách (có th ) r t dài này. nhưng ph n l n ngư i dùng máy tính cá nhân đã quen v i vi c t t máy sau khi làm vi c xong. N u chúng là ph n đ u c a duy nh t m t câu l nh. N u bash tìm th y nhi u câu l nh có ph n đ u này. thì h v s thêm ph n còn l i c a câu l nh này vào dòng l nh. B n có th th y đi u này b ng cách th c hi n l nh: [nhimlui]$ ps ax Th c hi n l i l nh này m t l n n a đ xem l i. Đ làm vi c v i l ch s câu l nh trong h v bash ngư i ta s d ng nh ng t h p phím trong b ng 3. thì có hai kh năng x y ra. Cũng gi ng như trư ng h p câu l nh. L ch s l nh đư c lưu trong t p tin xác đ nh b i bi n HISTFILE (thư ng là $HOME/. N u nh ng ký t này là ph n đ u c a ít nh t m t trong nh ng câu l nh mà bash bi t. N u nh n hai l n phím <Tab> sau tên c a m t câu l nh và m t kho ng tr ng.5 Ng ng làm vi c v i Linux M c dù máy tính làm vi c dư i s đi u khi n c a HĐH Linux có th đ ch y su t ngày đêm. Trong khi làm vi c v i h v s có ích n u bi t r ng. N u s phương án ch n là r t nhi u (ví d nh n phím <Tab> hai l n khi dòng l nh tr ng r ng) thì b n đ c s nghe th y ti ng bíp sau l n nh n <Tab> đ u tiên. Đây đư c g i là l ch s l nh. xem chương 5) và cho phép g i l i chúng b ng cách ch n t danh sách.

Câu l nh shutdown có cú pháp như sau: [root]# shutdown <tùy_ch n> <th i_gian> <dòng_thông_báo> Ghi chú: R t có th khi ch y l nh.52 Kh i đ ng Linux l n đ u B ng 3. có ph n đ u trùng v i dòng_ký_t . dòng_ký_t Th c hi n dòng l nh. Ví d . s t t máy) ˆ -r – kh i đ ng l i h th ng (reboot). Đ i v i chúng ta thì t m th i câu l nh sau s thích h p hơn: 6 Cũng có th c u hình đ nh ng ngư i dùng khác th c hi n đư c shutdown. <N> Th c hi n câu l nh th n tính t cu i danh sách <!>. Th i gian h n gi đư c tính t lúc nh n phím <Enter>. sau đó hi n th câu l nh ti p theo trong l ch s l nh t m chúng trong b nh (cache). b n s nh n đư c câu tr l i “bash: shutdown: command not found”. Tham s th i_gian dùng đ “h n gi ” th c hi n câu l nh (không nh t thi t ph i th c hi n câu l nh ngay l p t c). đôi khi có th d n đ n không kh i đ ng đư c máy trong l n sau.3: T h p phím đi u khi n l ch s l nh Phím Ph n ng c a h th ng <↑> ho c <Ctrl>+<P> Chuy n t i (g i vào dòng l nh) câu l nh trư c trong danh sách (di chuy n ngư c l i danh sách) <↓> ho c <Ctrl>+<N> Chuy n t i câu l nh ti p theo trong danh sách (di chuy n theo danh sách) <PgUp> Chuy n t i câu l nh đ u tiên trong danh sách l ch s l nh <!>. vì t p tin chương trình c a shutdown n m t i /sbin. đây là /sbin/shutdown. . Trong trư ng h p đó b n c n nh p vào đư ng d n đ y đ đ n chương trình. ho c dùng câu l nh su đ có đ quy n tương ng. n u b n mu n kh i đ ng l i sau 5 phút thì hãy nh p vào câu l nh: [root]# shutdown -r +5 Câu l nh này có nghĩa là “d ng h th ng sau 5 phút và kh i đ ng l i sau khi hoàn thành công vi c”. N u ng t ngu n đi n thì nh ng thay đ i này s không đư c lưu và s b m t. <N> Th c hi n (không c n nh n <Enter> câu l nh th n trong danh sách <!>. Ch có ngư i dùng root m i có th th c hi n câu l nh shutdown này6 . <->. Thư ng s d ng hai trong s các tùy ch n c a chương trình shutdown: ˆ -h – d ng hoàn toàn h th ng (halt. Vi c tìm dòng l nh c n thi t s đư c th c hi n t cu i t p tin l ch s và dòng l nh đ u tiên tìm th y s đư c th c hi n <Ctrl>+<O> Cũng gi ng như nh n phím <Enter>. Công vi c này do câu l nh (chương trình) shutdown đ m nhi m. do đó b n c n đăng nh p vào h th ng dư i tên ngư i dùng này. Đi u đó có nghĩa là bash không bi t tìm chương trình đây. Do đó c n bi t d ng h th ng m t cách đúng đ n trư c khi t t máy. ví d qua sudo.

Sau khi nh n t h p phím “n i ti ng” <Ctrl>+<Alt>+<Del> trên Linux s th c hi n các hành đ ng tương t v i l nh [root]# shutdown -r now B ng cách này cũng có th t t máy.3. do đó câu tr l i cho câu h i c a b n đã n m trong lòng bàn tay. . nhưng có th nó không gi i quy t đư c t t c nh ng v n đ c a b n. 3. Có m t vài ngu n đ c l p ch a thông tin v h u h t các m t c a h th ng Linux: ˆ các trang tr giúp man ˆ tr giúp siêu văn b n info ˆ tài li u đi kèm v i ph n m m ˆ HOWTO và FAQ c a d án The Linux Document Project (http://www. Các d án d ch chúng sang ti ng Vi t còn chưa đư c t ch c ho c còn chưa đư c hoàn ch nh.1 Các ngu n thông tin tr giúp N u rơi vào tình hu ng mà b n không bi t ph i làm gì đ có đư c k t qu mong mu n.6. Vì th tác gi s đưa ra ngay l p t c nh ng ngu n thông tin khác. Tương đương v i câu l nh này là l nh halt. Do đó chúng ta s xem xét t ng ngu n thông tin này m t cách c th hơn.6 Tr giúp khi dùng Linux [root]# shutdown -h now 53 Câu l nh này s t t máy ngay l p t c.org) ˆ câu l nh locate C n nói ngay l p t c là ph n l n thông tin t nh ng ngu n này b ng ti ng Anh. Các phiên b n Linux có hàng nghìn trang tài li u d ng t p tin.6 Tr giúp khi dùng Linux Như v y là b n đ c đã k t thúc phiên làm vi c đ u tiên v i HĐH Linux và tôi mong r ng b n chưa c n tr giúp trong m t tình hu ng nào đó. Tác gi cũng mong cu n sách này s th c hi n vai trò tr giúp trong th i gian đ u tiên này. Nhưng tôi s ph i “đi trư c” k v cách nh n thông tin tr giúp trong giao di n đ ho (X Window). tldp. nhưng c n ng t ngu n đi n trong khi h th ng b t đ u kh i đ ng l i. Tác gi coi cách gi i quy t này là đúng vì ngư i dùng c n bi t trư c cách thoát kh i nh ng trư ng h p khó khăn. thì t t nh t hãy tìm tr giúp ngay trong h th ng. 3.

2 Các trang tr giúp man Như đã nói ng n g n trên v câu l nh man. b ng câu l nh này ngư i dùng trong hình hu ng khó khăn luôn luôn có th tìm tr giúp v b t kỳ câu l nh nào c a h th ng. do đó có kh năng xem thông tin theo t ng màn hình và di chuy n màn hình này xu ng dư i và lên trên và đ di chuy n có th s d ng các phím như trong chương trình less. và v các g i h th ng (system call). hàm trong thư vi n c a ng d ng) 4 Thi t b (t p tin đ c bi t. thì nó s xem các thư m c con này theo th t đã ch ra trong b ng 3.4. ví d man(7). ví d /etc/passwd 6 Trò chơi 7 Khác (bao g m các gói macro và quy ư c. Vì th n u mu n xem tr giúp v g i h th ng swapon c n ch y l nh [user]$ man 2 swapon đ ch ra s th t c a ph n tr giúp c n tìm ki m thông tin. Đây là cách nh n tr giúp chính trong t t c các h th ng UNIX. chương trình con. thì có th in ra trang man tương ng b ng l nh [user]$ man tên_câu_l nh | lpr ho c n u máy in là postscript thì dùng: [user]$ man -t tên_câu_l nh | lpr . Các trang man đư c xem b ng chương trình less (ho c chương trình xác đ nh b i bi n PAGER). N u b n ch y l nh [user]$ man swapon thì s nh n đư c tr giúp v câu l nh swapon n m trong ph n 8. Nh ng phím thư ng dùng nh t là: N u b n không thích đ c t màn hình mà c m tay đ c. groff(7) 9 Nhân (kernel routines) n các l nh Tcl/Tk Th t li t kê đây không ph i là s nh m l n. thư ng n m trong /dev) 5 Đ nh d ng t p tin và quy ư c.6. v đ nh d ng t p tin. V n đ ch các t p tin ch a thông tin c a tr giúp man n m trong các thư m c con c a thư m c /usr/share/man và khi câu l nh man tìm ki m thông tin c n thi t. hàm do nhân cung c p) 3 G i thư vi n (library call. Các trang tr giúp man chia thành các ph n sau: B ng 3.54 Kh i đ ng Linux l n đ u 3.4: Các ph n chính c a tr giúp man Ph n N i dung 0 Các t p tin header (thư ng n m trong /usr/include) 1 Chương trình ho c câu l nh c a ngư i dùng 8 Câu l nh dùng đ qu n tr h th ng 2 G i h th ng (system call.

Đ nh n thông tin v m t câu l nh nào đó. 3. Ví d : [user]$ info man Thông tin màn b n s th y trên màn hình trong ph n l n trư ng h p s khác v i nh ng gì mà câu l nh man đưa ra. Nhưng s khác nhau cơ b n nh t ch info đưa ra thông tin d ng siêu văn b n (hypertext) gi ng như các trang web. Hãy th ch y l nh sau: [user]$ man -k net C n ph i nói luôn là đ cho các câu l nh man -k. Ch có ngư i dùng root m i có quy n ch y câu l nh makewhatis. Và theo ý ki n c a nhi u ngư i dùng là v chi u hư ng t t hơn. thì cũng gi ng như man. tuỳ ch n và cú pháp c a l nh trong quá trình làm vi c đ không ph i nh m t s lư ng l n nh ng thông tin này trong đ u. Câu l nh whatis tìm ki m t khóa đưa ra trong cơ s d li u bao g m danh sách các câu l nh và mô t ng n g n c a chúng. N u b n đ c đ máy ch y c đêm thì t t nh t ch y câu l nh này d ng công vi c cho ti n trình cron7 . Trong trư ng h p ngư c l i khi tìm ki m b n s nh n đư c thông báo “nothing appropriate”.6 Tr giúp khi dùng Linux 55 B Phím <Q> <Enter> <Space> <B> </>. b n có th 7 cron là chương trình đ ch y t đ ng các công vi c theo th i gian đã đ nh.5: Phím s d ng đ xem trang man Ch c năng Thoát kh i chương trình Xem t ng dòng Hi n th màn hình thông tin ti p theo Quay l i màn hình trư c Tìm ki m dòng ký t ch ra L p l i tìm ki m v a th c hi n. L nh này ch đưa ra nh ng trùng l p chính xác v i t khóa tìm ki m. Chúng dành cho nh ng ngư i dùng có kinh nghi m c n có “s tay tra c u” v đ nh d ng. thì đ u tiên c n t o ra cơ s d li u v các câu l nh có trên máy b ng cách ch y l nh makewhatis. dòng ký t . Nh đó b n có kh năng xem các ph n khác nhau c a tr giúp mà không c n ph i thoát ra kh i chương trình xem này. . Tuy nhiên đ có th nh n đư c thông tin mong mu n thì còn c n ph i bi t ch tìm thông tin đó.3. Tương t như l nh apropos là câu l nh man v i tham s -k. Câu l nh apropos th c hi n tìm ki m theo các ph n c a t khóa. Cu i cùng tác gi mu n nói r ng. whatis và apropos làm vi c. các trang tr giúp man không dành cho th i gian làm quen đ u tiên v i Linux.6. <Enter> <N> ng 3. Trong khi làm vi c ch đ văn b n.3 Câu l nh info Câu l nh info là d ng tr giúp thay th và tương đương v i man. c n nh p vào info cùng v i m t tham s là tên c a câu l nh quan tâm. Trong trư ng h p này có th dùng hai câu l nh whatis và apropos.

Tên c a nh ng ph n tr giúp này đư c hi n th trên màn hình. Đôi khi đ tìm t p tin tr giúp mong mu n b n s c n đ n câu l nh locate. S ký t ph i đ sao cho ch tương ng v i m t ph n tr giúp. Tuy nhiên câu l nh locate không tìm ki m theo các . thì b n s nh n đư c gi i thi u ng n g n v cách s d ng câu l nh này. Mandriva. N u cài đ t chương trình t gói (package) d ng rpm (Fedora Core. Nh ng tài li u này có d ng văn b n ASCII và có th xem chúng b ng các câu l nh more tên ho c less tên ho c b ng chương trình xem có trong Midnight Commander. Nh ng t p tin này có r t nhi u trên máy. . ) thì tài li u s n m trong thư m c con tương ng c a thư m c /usr/share/doc. . sau đó nh p vào dòng Menu item: cu i màn hình m t vài ký t đ u tiên c a tên c a ph n tr giúp c n thi t. SuSE. Trong t khóa (m u) có th s d ng các ký t thay th *. Sau khi di chuy n đ n liên k t mong mu n. Phím <P> đưa ngư i dùng tr l i trang v a xem. trong đó tên là tên c a m t trong nh ng câu l nh nói trên. <Ctrl>+<Alt>+<F3> v. Ph n l n các chương trình ng d ng có kèm theo tài li u hư ng d n cài đ t và s d ng. thì sau khi k t thúc b n s tìm th y trong thư m c /usr/share/doc (ho c /usr/doc) các thư m c con HOWTO. [].9 n m trong /usr/share/doc sau khi cài đ t. h th ng tr giúp v các l nh tích h p c a h v bash là câu l nh help.2. Khi ch y locate nó s tìm t t c nh ng t p tin có tên ch a t khóa đưa ra. ?. Ngoài ra. N u ch y help tên. Nh ng thư m c này ch a tài li u đ y đ v h th ng Linux nói chung cũng như nh ng ph n riêng r c a nó. ) đ có th chuy n sang terminal o đó tìm tr giúp khi c n thi t. Câu l nh này trong m t ch ng m c nào đó tương t v i các l nh whatis và apropos. n u không thì chương trình s yêu c u nh p thêm vào. . Tên c a nh ng thư m c con này tương ng v i tên c a chương trình và phiên b n c a nó. . hãy nh n phím <Enter>. phím <N> đưa đ n trang ti p theo. Có th di chuy n qua các liên k t b ng phím <Tab>. Nh ng liên k t này đư c đánh d u b ng ký t sao (*).. Ví d .9 có thư m c con tương ng xvnkb-0. 3.6.5 Tài li u đi kèm v i b n phân ph i và chương trình ng d ng N u trong quá trình cài đ t không b đi nh ng gói tài li u. khác v i cách đánh d u liên k t trên các trang Web nhưng v n gi nguyên đư c s thu n l i.. FAQ.56 Kh i đ ng Linux l n đ u ch y câu l nh info trên m t trong các terminal o (hãy nh đ n các t h p phím <Ctrl>+<Alt>+<F2>. Trong trư ng h p b n không bi t tìm thông tin c n thi t đâu thì có th chuy n sang các ph n khác nhau b ng các siêu liên k t (hyperlink) mà info t o ra. N u ch y l nh help không có tham s thì s nh n đư c danh sách c a t t c các l nh tích h p c a bash. còn <U> chuy n lên trên m t b c trong c u trúc phân b c c a các trang tài li u này. Đ u tiên c n nh n phím <M>. còn có th chuy n theo liên k t b ng cách khác tương t như h th ng trình đơn. . Thoát ra kh i info b ng phím <Q>.4 Câu l nh help Như đã nh c đ n trên. chương trình nh p ti ng Vi t mà tôi đang dùng đ gõ nh ng dòng này xvnkb phiên b n 0.6. Ví d locate net s tìm t t c nh ng tên t p tin có tên ch a “net”. . 3.2.v.

Trong m t s b n phân ph i locate đư c thay th b i slocate (secure locate). . mà theo cơ s d li u đ c bi t ch a tên các t p tin đư c t o ra (và đôi khi c n c p nh t) b ng l nh updatedb.3. Vi c tìm ki m và hi n th các trang tr giúp đư c th c hi n b ng cách nh n các nút và trình đơn. trang man. m t Vi t Ki u M . Còn l i (theo thông tin hi n th ) xman cũng gi ng như man. Các trang ti ng Vi t 1. Khi này t p tin s đư c hi n th d ng lưu trên đĩa: trang info. 3.org – trang web dành cho ngư i dùng mã ngu n m (MNM) Vi t Nam. có m t ô nh p vào đ ngư i dùng đưa ra thu t ng đang quan tâm.8 Sách và Internet T t nhiên. v. Có nhi u thông tin v Linux.6.6.net – tin t c v Linux và MNM. 3.6 Câu l nh xman Đây là chương trình cho phép xem các trang tr giúp man khi làm vi c giao di n đ ho (GUI). h c Linux d dàng và đơn gi n nh t khi có m t cu n sách t t. Chương trình s xem t t c các t p tin tài li u (b n có th c u hình đ ch n nh ng tài li u nào c n xem khi tìm ki m)..org – đây là trang web dành cho nhóm ngư i dùng Linux Vi t Nam (vietlug).6. http://vnlinux. đ u đã có nh ng tài li u này (r t có th đã đư c d ch sang ti ng Vi t).v. Fedora. qu n lý. SuSE. Trang web do bác Nguy n Đ i Quý đang s ng và làm vi c t i B qu n lý. . http://vnoss. . Trư c tiên b n c n đ c tài li u hư ng d n đi kèm v i b n phân ph i c a mình. Trang này do anh Larry Nguy n. B n s tìm th y nhi u thông tin có ích đây và có th đăng ký tham gia nhóm thư vietlug đ đ t câu h i. Tôi xin đưa ra m t s đ a ch sau làm bư c kh i đ u cho b n đ c trong bi n thông tin vô b b n này. . Các b n phân ph i l n như Debian. 3. N u nh n chu t vào m t t p tin trong danh sách thì s hi n ra m t c a s khác n i dung c a t p tin đã ch n.6 Tr giúp khi dùng Linux 57 thư m c c a h th ng t p tin. . Sau khi hoàn thành tìm ki m chương trình s hi n ra danh sách nh ng t p tin có ch a thu t ng này.7 Câu l nh helptool Sau khi ch y l nh helptool s hi n ra m t c a s đ ho . tài li u v Linux. slocate t t o cho mình cơ s d li u nói trên sau khi ch y v i tham s tương ng. T t nhiên n u b n có k t n i Internet (bây gi không còn quá xa x ) và m t chút ti ng Anh thì có th tìm đư c câu tr l i cho m i câu h i c a mình. R t ti c ngư i d ch chưa đ c cu n sách ti ng Vi t nào v Linux do đó không th gi i thi u v i b n đ c. 2. 3. di n đàn cho phép b n đ t câu h i c a mình. http://vnoss.

r t có th b n s tìm th y tài li u v đ tài mình c n tìm hi u trên trang này. 15. sách.org – Trang web t t cho nh ng ngư i dùng m i. http://vnoss.com 8. 5.tldp.org 3. http://www. thương m i. Có các bài báo và l i bình c a ngư i đ c (không qua ki m duy t).com 2.com 10. .org.org – T ch c Linux International. http://slashdot. Xem trang này b n s bi t ph n l n nh ng s ki n trong th gi i Linux.net – Tin t c hàng tu n v Linux. http://www. http://oreilly. 11.uk – Trang web Linux c a Châu Âu.gnu. .org – Các ng d ng dành cho Linux.org – Nh ng tin t c m i nh t v công ngh máy tính trong đó có Linux. 13.linux.linuxnewbie.org – Trang web chính ch a tài li u v Linux.li.58 Kh i đ ng Linux l n đ u 4. 7. Kho ph n m m kh ng l cho Linux. chương trình cho Linux. . http://www. 4. 14. công c phát tri n chương trình m i.net/dokuwiki/doku. http://www. đây b n s tìm th y r t nhi u tài li u.linux. http://www. . thông tin v nhân Linux.org – Trang ch c a môi trư ng làm vi c KDE. 6. http://www. thông báo qu ng cáo và các thông tin khác.linux. http://www.linuxstart. Tin t c trên tu n báo này đư c ban biên t p chú thích r t t t. http://freshmeat. N u b n mu n tin tư ng r ng Linux phát tri n r t nhanh và mu n nh n tr giúp c a các công ty thương m i l n thì nh t đ nh ph i thăm trang này. http://www.php?id=linux:tailieutiengviet – trên trang này t ng h p t t c nh ng tài li u ti ng Vi t v Linux.lwn. http://www. 5. http://www. http://www. FAQ.linux. Thông tin chia thành t ng h ng m c: thông tin chung.org – trang web c a nhóm d ch giao di n KDE sang ti ng Vi t.co – 9. . v. http://kde-vi.linuxplanet.linuxtoday. Do Allan Cox m t trong các nhà phát tri n Linux h tr . Các trang ti ng Anh 1. trong đó n i ti ng nh t là trình so n th o Emacs (GNU’s Not UNIX). R t nhi u tài li u bao g m HOWTO.kde.net/ – Thông báo hàng ngày v nh ng chương trình ng d ng m i ra dành cho Linux. 12.com – Danh sách dài nh ng tin t c. http://www.v.

http://www. Cách đăng ký còn ph thu c vào t ng nhóm thư (nói chính xác hơn là ph thu c vào máy ch đi u khi n nhóm thư này).com – M t trang web t t có r t nhi u bài báo hay. c n luôn luôn thêm vào thư c a mình càng nhi u chi ti t càng t t (nhưng đ ng thêm thông tin th a) bao g m: tên c a b n phân ph i (Debian.com – Linux Magazin. N u có v n đ trong lúc cài đ t. 21.com – t báo Linux này s thú v đ i v i c ngư i dùng m i và ngư i dùng có kinh nghi m. T t nhiên n u không tìm th y thì đ ng ng i ng n đ t câu h i. Nhưng hi n nay thư ng có hai cách đăng ký: g i thư đ n m t đ a ch xác đ nh đ yêu c u.com – t p chí Linux. n u không hi u thì còn có th yêu c u gi i thích thêm.org – T p chí phi thương m i toàn c u. ví d mailto:vietlug-users@userforge. Ngư i dùng Linux h t s c vui lòng tr l i thư c a b n.3. http://www. đăng ký qua giao di n web. 20. B o đ m là b n s nh n đư c câu tr l i. ho c th m chí có c nh ng lá thư “ng ng n” (ví d “Hôm nay dùng Debian th t vui”) và t t nhiên là ph i đ c c nh ng thư tr l i cho nh ng câu h i này c a nh ng ai bi t m t chút gì đó. Đ ng đòi h i ngư i dùng khác g i câu tr l i th ng đ n đ a ch c a b n. N u b n mua đĩa c a m t công ty chuyên môn thì s có đ a ch liên l c c a d ch v này. http://www. Tuy nhiên b n c n bi t là đ đ c đư c t t c thư chung thì c n r t nhi u th i gian. Vi t thư thì mi n phí. http://www. 18. vi t thư đi n t cũng là s h tr k thu t. Do đó n u mu n b n có th xem kho lưu tr nh ng lá thư này b ng trình duy t.net. Xin hãy luôn nh đi u đó! . Nh ng trang nói trên ch là đi m kh i đ u đ t đó b n s tìm đư c nh ng trang web khác trong bi n thông tin Internet. m t t t p chí r t thú v .linuxjournal. Thông tin này b n có th tìm th y trên trang web gi i thi u v nhóm thư chung. 17. T t nhiên đây không ph i là danh sách đ y đ nh ng trang web nói v Linux. 19. SuSE. B n nên đăng ký v i m t vài nhóm thư chung (mailing list) nào đó. Khi đ t câu h i có liên quan đ n h th ng Linux c a b n. Fedora. thông báo nào hi n ra khi có v n đ . Thư ng đăng nh ng bài báo v nhi u đ tài. http://www. N u b n mua đĩa ghi l i ho c t ghi đĩa t t p tin ISO nh n đư c qua Internet thì r t có th l i cài đ t là do khi ghi đĩa gây ra. “vi t thư vào nhóm thư chung là t th hi n.com. có v n đ v i ph n c ng nào (phiên b n. và còn ph i đ c r t nhi u thư c a nh ng ngư i dùng m i khác (ví d “Console là gì?”). nhưng s h tr k thu t thì không”.linuxgazette. thì hãy h i d ch v khách hàng c a phân ph i đĩa.6 Tr giúp khi dùng Linux 59 16. Đi đ n đâu là ph thu c vào ý mu n c a b n. phiên b n nhân.penguinmagazine. Và như v y b n không c n ph i đăng ký cũng như vi t thư vào nhóm thư chung n a. Hãy s d ng h p thư đi n t . hay m t cái nào khác). http://www.linuxworld. r t có th đã có câu tr l i cho câu h i c a b n đó.linuxfocus.linux-mag. dòng ch ghi trên m ch đi n t ).

T phía c a HĐH thì t p tin là m t chu i liên t c các byte v i chi u dài xác đ nh.1 T p tin và tên c a chúng Máy tính ch là công c đ làm vi c v i thông tin không hơn không kém. H đi u hành không quan tâm đ n đ nh d ng bên trong c a t p tin. mà ngư i dùng không th y. gi ng như m t cái đĩa ăn. Làm sao đ ngư i dùng có th làm vi c v i t p tin đó là công vi c c a h th ng t p tin. v. CD. đĩa t . . đã đ n lúc làm quen v i m t trong nh ng thành ph n chính và quan tr ng c a Linux – đó là h th ng t p tin. chúng ta t m g i nó là m t trư c. M t còn l i s dành cho m t chương sách sau. quay v phía chính b n thân đĩa lưu t o thành m t vùng bên trong c a h th ng t p tin đ i v i ngư i dùng. C n nói thêm là chúng ta s xem xét m t h th ng t p tin c th ext3fs. Tên t p tin trong Linux có th dài 255 ký t bao g m b t kỳ ký t nào tr ký t có mã b ng 0 và ký t d u g ch chéo (/). 4. đ i v i ngư i dùng thì h th ng t p tin là m t c u trúc lôgíc c a các thư m c và t p tin. chúng ta t m g i là m t sau. th c hi n vi c truy c p (ch n thông tin c n thi t) và nhi u thao tác khác. . Tuy nhiên còn có nhi u ký t n a có 1 2 Chương này do ngư i d ch vi t M t s tác gi thích dùng thu t ng “v t ch a” đây. T phía m t trư c này ngư i dùng th y h th ng t p tin là m t c u trúc lôgíc c a các thư m c và t p tin. M t còn l i. Mà thông tin trên m i HĐH đư c lưu d ng t p tin trên các đĩa lưu. ngư i dùng thư ng không c n quan tâm đ n. H th ng t p tin – là c u trúc nh đó nhân c a h đi u hành có th cung c p cho ngư i dùng và các ti n trình tài nguyên c a h th ng d ng b nh lâu dài trên các đĩa lưu2 thông tin: đĩa c ng. M t m t c a nó luôn quay v phía ngư i dùng (hay nói chính xác hơn là quay v phía ng d ng). Vì đây th c hi n các cơ ch ghi t p tin lên các đĩa lưu khác nhau. có hai m t. DVD. Vì th . M t này c a h th ng t p tin có c u trúc không đơn gi n chút nào. M i h th ng t p tin. Còn có nh ng h th ng t p tin khác nhưng chúng ta s đ c p đ n chúng mu n hơn. .Chương 4 Làm quen v i h th ng t p tin ext3fs1 Bây gi b n đã bi t cách kh i đ ng và d ng h th ng Linux. Nhưng nó c n đ t cho t p tin m t cái tên nào đó đ ngư i dùng (hay nói đúng hơn là chương trình ng d ng) có th làm vi c v i t p tin. Trong chương hi n t i chúng ta s xem xét m t quay v phía ngư i dùng c a h th ng t p tin. h th ng t p tin cơ b n c a Linux đ n th i đi m hi n nay.v.

Tuy nhiên n u nhìn t phía h đi u hành và h th ng t p tin thì không ph i 3 4 thư ng g i theo ti ng lóng là tarball. “hai” và “ba”. D u ch m có ý nghĩa đ c bi t trong tên t p tin. t c là có th thêm chúng vào tên t p tin (thư m c) n u đưa tên vào trong d u ngo c kép ho c dùng d u g ch chéo ngư c đ b đi ý nghĩa đ c bi t c a chúng.gz và L4U-0. Còn có th đ t tên t p tin ho c thư m c v i nh ng ký t nói trên vào d u ng c kép. Trên Linux các t p tin chương trình và t p tin bình thư ng không phân bi t theo ph n m r ng c a tên (trong DOS t p tin chương trình có ph n m r ng exe) mà theo các d u hi u khác.tar.4. > < ‘ d u cách N u tên t p tin ch a m t trong nh ng ký t này (không khuyên dùng nhưng v n có th ) thì trư c nó ph i đ t m t d u g ch chéo ngư c (\) (đi u này v n đúng trong trư ng h p có chính b n thân d u g ch chéo ngư c. Làm tương t như v y đ i v i nh ng ký t khác.9. m c dù v n dùng ph n cu i cùng c a tên t p tin sau d u ch m đ làm ký hi u v các d ng t p tin đ c bi t (. ví d . chúng ta s đ c p đ n sau. Chúng ta đã quen v i vi c t p tin đư c xác đ nh hoàn toàn theo tên c a nó.tar.4 Như đã nói chương trư c trong Linux có phân bi t các ký t vi t hoa và vi t thư ng. b i vì có th gây ra v n đ cho m t s ng d ng khi c n s d ng nh ng t p tin như v y và c khi di chuy n nh ng t p tin đó lên h th ng t p tin khác. Ví d : [user]$ mkdir \\mot\&hai s t o thư m c \mot&hai. Đ i v i d u ch m thì không ph i như v y. Đi u này lúc đ u có th gây khó khăn cho ngư i dùng Windows nhưng sau khi quen thì b n s th y nó th t s có ích.gz dùng đ ký hi u các t p tin nén3 ).2.tar. Đó là nh ng ký t sau: ! @ # $ & ~ % * ( ) [ ] { } ’ " \ : . Khi này khái ni m ph n m r ng t p tin (thư ng dùng trong DOS) không còn có ý nghĩa gì. .2. thì t p tin này s là n (thu c tính hidden) đ i v i m t s câu l nh.9.gz. đ t o thư m c có tên “mot hai ba” chúng ta c n dùng câu l nh sau: [user]$ mkdir "mot hai ba" vì câu l nh [user]$ mkdir mot hai ba s t o ba thư m c: “mot”. Tuy nhiên t t nh t là không s d ng nh ng ký t này k c d u cách trong tên t p tin và thư m c. ví d xvnkb-0.2.1 T p tin và tên c a chúng 61 ý nghĩa đ c bi t trong h v shell và do đó không nên dùng đ đ t tên t p tin. Vì th l4u-0.tar. Đi u này cũng đúng đ i v i tên t p tin. N u nó là d u ch m đ u tiên trong tên. Trong Linux ngư i dùng thư ng đ t nhi u d u ch m trong tên c a t p tin. qu bóng tar Nhưng l nh ls -a s hi n th . Ví d . Đ c thêm ls(1) đ bi t chi ti t.gz có th n m trong cùng m t thư m c và là tên c a các t p tin khác nhau. t c là ph i l p l i d u này hai l n).9. l nh ls không hi n th nh ng t p tin như v y.

Vì th các t p tin còn đư c đ t thêm m t tên thân thi n v i ngư i dùng và hơn th n a còn đư c nhóm vào các thư m c. nhưng bây gi cũng c n đ c p đ n m t chút v ch s “inode”. hay còn g i là “inode” (t m th i chưa có thu t ng ti ng Vi t chính xác nên xin đ nguyên t ti ng Anh). chúng ta s nói k hơn v ký t này ngay sau đây. Không ph i ai cũng có kh năng nh đã ghi gì trong t p tin v i s 12081982 (nói chính xác hơn là ch có m t s r t ít ngư i có kh năng này). Đ có th thêm tên khác cho t p tin ho c thư m c (t o liên k t c ng).pdf Ký t ∼ có ý nghĩa đ c bi t. chúng ta s d ng câu l nh ln d ng sau: ln tên_đã_có tên_m i Ví d : [user]$ ln projects/l4u/l4u-0.9. Chính inode lưu t t c nh ng thông tin c n thi t cho h th ng t p tin v t p tin. Chi ti t v câu l nh ln b n có th đ c trong trang man c a nó. Nh ng tên này còn đư c g i là liên k t “c ng” (hard link) (chúng ta s làm quen k hơn v i khái ni m liên k t và cách t o nh ng liên k t này trong chương sau). Bây gi có th dùng ~/l4u. Các ch s inode n m trong m t b ng đ c bi t g i là inode table. Có th tìm ra s lư ng liên k t c ng đ n t p tin (t c là s lư ng tên c a t p tin) b ng l nh ls v i tham s -l5 .pdf đ thay cho đư ng d n dài hơn projects/l4u/l4u-0. Khi b n đ c xóa m t t p tin có nhi u tên (liên k t c ng) thì trên th c t ch xóa đi m t liên k t (mà b n ch ra trên dòng l nh xóa).9. và chính ch s này m i là tên th c s c a t p tin trên h th ng. Tác gi đưa ra nh ng thông tin trên ch đ nói r ng tên c a b t kỳ t p tin nào trong Linux không ph i gì khác mà chính là liên k t đ n ch s inode c a t p tin.2. Tuy nhiên đ i v i ngư i dùng thì nh ng tên như v y th t s không thu n ti n.2.pdf. Vì th m i t p tin có th có bao nhiêu tên tùy thích.62 Làm quen v i h th ng t p tin ext3fs như v y.pdf users 3069 2006-09-06 13:52 l4u. bao g m thông tin v v trí c a các ph n c a t p tin trên đĩa lưu. Chúng ta s g i ch s này là ch s c a t p tin.tex N u b n dùng SuSE Linux thì có th nh p vào l nh ll. V n đ ch m i t p tin trong Linux có m t “ch s ký hi u” (index descriptor) tương ng. Ngay phía sau quy n truy c p đ n t p tin là m t s cho bi t s lư ng nh ng liên k t c ng này: [user]$ ls t ng 1280 -rw-r--r-drwxr-xr-x -rw-r--r--rw-r--r-5 -l 1 2 2 1 teppi82 teppi82 teppi82 teppi82 users 81409 2006-09-06 03:43 bash. . thì nó đư c lưu đ n lúc h th ng ( ng d ng) gi i phóng nó. thông tin v d ng t p tin và nhi u thông tin khác. Th m chí c khi b n đ c đã xóa đi liên k t cu i cùng thì cũng không có nghĩa là đã xóa n i dung c a t p tin: n u t p tin đang đư c h th ng hay m t ng d ng nào đó s d ng. M i đĩa lưu dù là th t s hay lôgíc thì đ u có m t b ng các ch s inode c a riêng mình. Các inode trong b ng đư c đánh s theo th t .2.tex users 4096 2006-09-06 02:16 images users 82686 2006-09-06 14:32 l4u-0. nó ch thư m c cá nhân (home directory) c a ngư i dùng.9. B ng này đư c t o ra trên đĩa lưu cùng lúc v i h th ng t p tin.pdf ~/l4u. Chúng ta s nói k v m t sau c a h th ng t p tin trong m t s chương sách s p t i.

m t h th ng Linux hoàn ch nh s có s lư ng t p tin còn l n hơn th . M i thư m c (con) có th ch a các t p tin riêng l và các thư m c con c a nó.2 Thư m c (Danh sách b c t b t vì không c n thi t). Có th đưa vào thư m c g c này m t s lư ng không h n ch các thư m c n m trên các đĩa lưu khác nhau (thư ng nói là “g n h th ng t p tin” ho c “g n đĩa lưu”). . Đó là thư m c trong đó ngư i dùng có toàn quy n7 : có th t o và xóa các t p tin. r t khó có th tìm đ n t p tin c n thi t. Có m t câu l nh cho bi t tên c a thư m c hi n th i. thì thư m c hi n th i luôn đi li n v i m i ti n trình đã ch y (trong đó có h v shell). Trong c u trúc thư m c c a Linux nh ng thư m c cá nhân c a ngư i dùng thư ng n m trong thư m c /home và thư ng có tên trùng v i tên đăng nh p c a 6 7 đây là đư ng d n tuy t đ i Nói chính xác hơn là: có toàn quy n đ n khi nào root chưa thay đ i chúng :). Tên c a thư m c cũng đư c đ t theo nh ng quy đ nh như đ i v i tên t p tin. H v shell lưu giá tr c a “thư m c hi n th i”. v. Vì th mà các t p tin đư c t ch c vào các thư m c. 63 4. C u trúc phân b c c a thư m c thư ng đư c minh ho b ng “cây thư m c”.4. phương án d ch “thư m c cá nhân” đư c ưu tiên hơn. thay đ i quy n truy c p đ n chúng. các thư m c có th n m trong các thư m c khác. và thư m c g c duy nh t c a c u trúc này đư c ký hi u b ng d u g ch chéo “/”. K t qu là chúng ta thu đư c m t c u trúc thư m c có phân b c b t đ u t m t thư m c g c. v. . Tên đ y đ c a t p tin (ho c còn g i là “đư ng d n”6 đ n t p tin) là danh sách tên c a các thư m c bao g m thư m c ch a t p tin đó và các thư m c m . Và nói chung ngoài c u trúc bên trong c a mình thì thư m c không khác gì so v i nh ng t p tin thông thư ng. b t đ u t thư m c g c “/” và k t thúc là b n thân tên c a t p tin. . Ví d /home/teppi82/projects/l4u/ext3fs. Trên Linux và UNIX nói chung ch có m t c u trúc thư m c duy nh t cho t t c các đĩa lưu. và chúng ta s dùng thu t ng này trong cu n sách l4u). . đó là l nh pwd. trên đó m i thư m c đó là m t nút c a “cây”. còn t p tin – là các “lá”. vì th đôi khi ch y m t chương trình nào đó trong shell có th d n đ n vi c thay đ i thư m c hi n th i sau khi chương trình đó hoàn thành công vi c.v. ví d t p tin văn b n (text file). Ngoài thư m c hi n th i m i ngư i dùng còn có m t “thư m c nhà” (home directory.v. t c là thư m c mà ngư i dùng đang làm vi c trong đó. Ghi chú: n u nói m t cách chính xác. Trong đư ng d n này tên c a các thư m c con cách nhau b i d u g ch chéo “/” dùng đ ký hi u thư m c g c như đã nói trên. .tex là tên đ y đ c a t p tin tôi đang nh p vào trên máy c a mình.2 Thư m c N u như c u trúc t p tin không cho phép s d ng gì khác ngoài tên t p tin (t c là t t c các t p tin n m trên m t danh sách chung gi ng như các h t cát trên bãi bi n) thì th m chí c khi không có gi i h n v đ dài c a tên. Hãy tư ng tư ng b n có m t danh sách kho ng vài nghìn t p tin! Xin đ ng nghi ng . Trên MS Windows ho c DOS c u trúc thư m c như v y có trên m i đĩa (t c là chúng ta có không ph i m t “cây” mà m t “r ng” thư m c) và thư m c g c c a m i c u trúc t p tin đư c đánh d u b ng m t ch cái Latinh (và do đó đã có m t s h n ch ).

.64 Làm quen v i h th ng t p tin ext3fs ngư i dùng đó. nó ch đ n thư m c m ./vnoss/doc Câu l nh ls dùng đ đưa ra màn hình danh sách các t p tin và thư m c con c a thư m c hi n th i. T t nhiên trong b t kỳ trư ng h p nào cũng có th s d ng đư ng d n tuy t đ i. trong đó có li t kê t t c nh ng t p tin và thư m c con c a thư m c này. sau đó thư m c con c a thư m c con (thư m c “cháu”). “ch t” nào đó c a thư m c hi n th i. Tham s c a l nh này là đư ng d n đ y đ ho c đư ng d n tương đ i đ n thư m c mà b n mu n dùng làm hi n th i. t c là ngư i dùng nhimlui có th làm vi c v i thư m c /home/nhimlui/hinhanh b ng ~/hinhanh. Chính nh ng d u hai ch m này đư c dùng đ ghi đư ng d n tương đ i. ho c n m hoàn toàn trên m t “cành” khác c a cây thư m c. Như đã nói trên. Ví d : /home/nhimlui. bây gi chúng ta s nói rõ hơn v khái ni m đư ng d n tương đ i.. và không x y ra b t kỳ nào thao tác làm vi c v i t p tin c a thư m c. ho c “cháu”. Câu l nh cd dùng đ thay đ i thư m c hi n th i. m i thư m c ch là m t t p tin bình thư ng. Đư ng d n tương đ i đó là danh sách các thư m c c n ph i đi qua trong cây thư m c đ có th chuy n t thư m c hi n th i đ n thư m c khác (chúng ta g i nó là thư m c đích). Trong m i thư m c có hai b n ghi đ c bi t. N u thư m c đích n m phía dư i trong c u trúc thư m c./.’). Khi ngư i dùng vào h th ng. thì đơn gi n: ch c n ch ra thư m c con c a thư m c hi n th i. t c là n m trong m t thư m c con. thì ph c t p hơn m t chút. V n đ này đư c gi i quy t như sau: m i thư m c (tr thư m c g c) có duy nh t m t thư m c m trong cây thư m c. đ dùng thư m c m làm thư m c hi n th i. N u ch y câu l nh ls không có tham s thì chúng ta ch th y tên c a các t p tin c a thư m c hi n th i. nhưng khi đó c n ph i nh p vào m t đư ng d n r t dài. . còn b n ghi th hai có ký hi u là hai d u ch m đơn (‘. N u mu n xem n i dung c a m t thư m c khác. C n lưu ý là trên th c t n câu l nh ls ch đưa ra n i dung c a t p tin mô t thư m c này. r i t đó h xu ng thư m c vnoss/doc thì c n ch y l nh: [user]$ cd . M i ngư i dùng có th làm vi c v i thư m c c a mình b ng ký hi u ~.. Còn đ chuy n “leo” lên hai b c c a cây thư m c. cho đ n khi nào t i đư c thư m c đích.’) và ch đ n chính b n thân thư m c này. thì ch c n ch y l nh: [user]$ cd .. thì c n ph i đưa cho câu l nh ls đư ng d n tuy t đ i ho c tương đ i đ n thư m c đó. ch có các danh sách t p tin thông thư ng xác đ nh t p tin hi n th i thu c v m t thư m c nào đó. N u như thư m c đích n m cao hơn trong c u trúc thư m c. thư m c cá nhân s tr thành thư m c hi n th i c a ngư i dùng này. Khái ni m đư ng d n đ y đ (tuy t đ i) đã gi i thích trên. T c là không có các h p đ c bi t ch a các t p tin.. Ví d : [user]$ ls projects BanTin drupal-vn bashscripts fluxbox chem-tex gnomevi debian HocTap KDE-vi l4u manvi mc mrtg others SuSE syslinux Xfce vim vnlinux vnoss . Ví d . M t trong s chúng có ký hi u là d u ch m (‘..

N u ch y câu l nh ls v i tham s -l thì không ch có tên t p tin mà s hi n th c d li u v quy n truy c p đ n t p tin (chúng ta s nói đ n sau). Hơn n a có m t tiêu chu n xác đ nh c u trúc thư m c cho các HĐH dòng UNIX. Tham s -u dùng đ hi n th th i gian truy c p cu i cùng thay vào ch th i gian s a đ i. Tiêu chu n này đư c g i là Filesystem Hierarchy Standart (FHS). Đ th y đư c nh ng thông tin chi ti t đó. do đó s này b ng s thư m c con công thêm 2). .tex ChangeLog ext3fs.tex images l4u. tên nhóm s h u t p tin (xin đư c g i t t là “nhóm t p tin” m c dù t i nghĩa).tex caidat.3 Công d ng c a các thư m c chính 65 B n ghi v t p tin trong thư m c tương ng ngoài tên còn có r t nhi u thông tin v t p tin này. Tham s -r đ o ngư c l i tr t t c a s p x p (c n ph i s d ng cùng v i các tham s -l ho c -t). C n chú ý r ng có th li t kê các tham s m t cách riêng r như th này: [user]$ ls -l -i . thì bi t r ng m c dù ngư i dùng có toàn quy n t ch c c u trúc thư m c. các chương trình thư ng đư c cài đ t vào C:\Program Files. 4. kích thư c t p tin và th i gian s a đ i cu i cùng. Trong Linux cũng có m t c u trúc thư m c ki u như v y và th m chí còn nghiêm ng t hơn. v. s lư ng liên k t c ng hay s lư ng tên (n u là thư m c thì ngay t đ u đã có hai liên k t như v y là . N u có mong mu n b n có th đ c toàn b tiêu chu n này t i đ a ch .. Ví d các t p tin h th ng thư ng n m trong thư m c C:\Windows.3 Công d ng c a các thư m c chính N u như b n đ c đã t ng dùng Windows (ví d 2000 hay XP). Khi dùng tham s -t vi c s p x p đư c th c hi n không theo tên mà theo th i gian s a đ i t p tin.tex N u đưa thêm tham s -i thì trong c t đ u tiên s hi n th ch s inode c a t p tin. M t ví d minh h a khác: [user]$ ls t ng 1316 -rw-r--r--rw-rw-r--rw-r--r--rw-r--r--rw-r--r-drwxr-xr-x -rw-r--r--l 1 1 1 1 1 2 1 teppi82 teppi82 teppi82 teppi82 teppi82 teppi82 teppi82 users users users users users users users 81629 98135 783 20778 2013 4096 3267 2006-09-08 2006-09-08 2006-09-08 2006-09-09 2006-09-08 2006-09-08 2006-09-08 22:11 13:54 21:58 02:48 21:34 14:25 23:13 bash.tex gioithieu. tên ch s h u t p tin. và . thì c n dùng các tham s m r ng khác c a câu l nh ls.. nhưng m t s truy n th ng v n đư c tuân theo.4.v.r ho c g p l i như th này: [user]$ ls -lir Chúng ta d ng mô t ng n g n v câu l nh ls đây (chi ti t v l nh này có th xem trên các trang man ho c info tương ng) và chuy n sang xem xét các thư m c chính c a c u trúc t p tin trong Linux. .

/etc/skel Khi t o ngư i dùng m i. /boot G m các t p tin c đ nh c n cho kh i đ ng h th ng.66 Làm quen v i h th ng t p tin ext3fs http://www. . xorg.1: C u trúc thư m c c a Linux Công d ng Thư m c này g m ch y u các chương trình. Chúng ta s nói đ n nh ng t p tin này ngay sau trong m t ph n riêng. Thư m c /etc không đư c lưu các t p tin chương trình (c n đ t chúng trong /bin ho c /sbin. /etc/rc.com/fhs/.d Thư m c này lưu nh ng t p tin s d ng trong quá trình kh i đ ng h th ng. B ng 4. c t bên trái li t kê các thư m c con c a thư m c g c. /etc Thư m c này và các thư m c con c a nó lưu ph n l n nh ng d li u c n cho quá trình kh i đ ng ban đ u c a h th ng và lưu nh ng t p tin c u hình chính.pathname.1 dư i đây đưa ra danh sách ng n g n nh ng thư m c chính đư c t o ra trong c u trúc t p tin theo tiêu chu n nói trên.conf). ph n l n trong s chúng c n cho h th ng trong th i gian kh i đ ng (ho c trong ch đ m t ngư i dùng khi b o trì h th ng).com/fhs/. trong /etc có t p tin inittab xác đ nh c u hình kh i đ ng. Chúng ta s đ c p chi ti t v nh ng t p tin này và quá trình kh i đ ng nói riêng trong m t vài chương s p t i. Mô t trong b ng này là h t s c ng n g n. Các b n phân ph i Linux l n đ u tuân theo tiêu chu n này. /dev Thư m c các t p tin đ c bi t ho c các t p tin thi t b ph n c ng. /etc/X11 Thư m c dành cho các t p tin c u hình c a h th ng X11 (ví d . Ví d . Dư i đây chúng ta s xem xét công d ng c a m t vài(!) thư m c con c a thư m c /etc. thì nh ng t p tin trong thư m c này s đư c sao chép vào thư m c cá nhân c a ngư i dùng đó. B ng 4. và t p tin ngư i dùng passwd. còn c t th hai li t kê m t vài (không ph i t t c ) thư m c con. B n đ c có th xem qua man mknod (mknode(1)). còn c t th ba cu i cùng đưa ra mô t ng n g n v công d ng c a nh ng thư m c này. /etc/sysconfig Thư m c lưu m t vài (không ph i t t c ) t p tin c u hình h th ng. Thư m c /bin 8 do đó m t s nhà qu n tr không t đ ng g n phân vùng /boot vào trong quá trình kh i đ ng. đây có lưu r t nhi u nh ng câu l nh thư ng dùng c a Linux.pathname. M t ph n các t p tin c u hình có th n m trong các thư m c con c a /usr. T p tin trong thư m c này ch c n trong th i gian kh i đ ng8 . trong đó có nhân (kernel). chi ti t hơn b n có th đ c trong tiêu chu n FHS có trên http://www. /home Thông thư ng trong thư m c này là các thư m c cá nhân c a ngư i dùng (tr root).

4. H th ng s t đ ng d n d p thư m c này theo đ nh kỳ. Hãy chú ý là thư m c này không n m cùng ch v i thư m c cá nhân c a nh ng ngư i dùng khác (trong /home). tr khi khi b n bi t r ng t p tin ho c nhóm t p tin nào đó đang gây nh hư ng đ n công vi c c a h th ng. Đây là đi m g n h th ng t p tin proc cung c p thông tin v các ti n trình đang ch y. v các thi t b tính. fdisk. swapoff. Tuy nhiên không nên xóa nh ng t p tin trong thư m c này. v. route. Trong tiêu chu n FHS có nói r ng c n đ c trong thư m c này nh ng t p tin th c thi s s d ng sau khi g n thành công h th ng t p tin /usr. nên t p tin s nh n đư c tên trùng v i ch s inode c a nó. v nhân. Thư m c này s d ng đ ph c h i h th ng t p tin b ng l nh fsck. reboot. thì các thư vi n chia s v n c n thi t. Các t p tin đ c bi t c a thư m c này s d ng đ nh n và g i d li u đ n nhân. Đây là đi m g n (mount) nh ng h th ng t p tin g n t m th i. Ít nh t trong thư m c này ph i có init. đĩa c ng ngoài. b t kỳ th i đi m này ngư i dùng root cũng có th xóa t p tin kh i thư m c này mà không làm nh hư ng l n đ n ngư i dùng khác. N u trên máy tính có đ ng th i Linux và Windows (DOS) thì thư m c này thư ng dùng đ g n các h th ng t p tin FAT.3 Công d ng c a các thư m c chính Thư m c /lib Công d ng Thư m c này lưu các thư vi n chia s c a các hàm mà trình biên d ch C và các môđun (các driver thi t b ) c n. shutdown. mkfs. như v y cho phép gi m kích thư c mã chương trình n m trong b nh . . thì có th t o trong thư m c này các thư m c con cho t ng đĩa lưu. .v. vì chúng đư c nhi u chương trình s d ng. Nh ng thư vi n này ch n p vào b nh khi có nhu c u th c hi n hàm nào đó.v.*. Vì thư m c /bin ch y u lưu các t p tin th c thi (chương trình và ti n ích c a HĐH) s d ng trong quá trình kh i đ ng và do nhà qu n tr ch y. Đây là thư m c cá nhân c a ngư i dùng cao c p root. flash.*. arp. Đây là h th ng t p tin o. mkswap. Thư m c dành cho các t p tin t m th i. DVD.v. N u fsck tìm ra t p tin mà không xác đ nh đư c thư m c m thì nó s đưa t p tin đó vào thư m c /lost+found. ifconfig. CD. N u b n thư ng g n m t vài đĩa lưu đ ng như đĩa m m. Trong trư ng h p ngư c l i thì cùng m t mã l p l i nhi u l n trong các chương trình khác nhau. Chi ti t b n có th đ c trong man 5 proc. Vì thư m c m b m t. 67 /lost+found /mnt /tmp /root /sbin /proc . vì th không nên lưu đây nh ng t p tin mà b n có th s c n đ n. . swapon. fsck. halt. Th m chí n u trên h th ng không có trình biên d ch C nào. .

. Phân vùng ho c đĩa đó thư ng g n ch đ c và trên đĩa (phân vùng) là các t p tin c u hình cũng như t p tin th c thi dùng chung. vì chúng đã đư c các nhà phát tri n h th ng ki m duy t k càng (không l b n bi t v h th ng t t hơn các nhà phát tri n). Các h th ng ph c t p (ví d Debian Linux) có th có các thư m c con c a mình trong thư m c này. các ti n ích h th ng và c các t p tin thêm vào (t p tin d ng include). ˆ /usr/local/src – mã ngu n c a các chương trình. m t s chương trình không th g i tr c ti p. ng d ng. đây thư ng đ t các chương trình và các thư m c con (n i b ) ch dành cho máy tính này. ˆ /usr/local/sbin – các chương trình dành cho nhà qu n tr . Và đây cũng thư ng là liên k t đ n /usr/X11R6/bin. /usr/bin /usr/include /usr/lib /usr/local đây thư ng lưu nh ng chương trình ˆ /usr/local/doc – các tài li u đi kèm v i chương trình ng d ng. Các chương trình (ti n ích và ng d ng) thư ng đư c ngư i dùng bình thư ng s d ng. Dù trong trư ng h p nào cũng đ ng s a nh ng t p tin trong thư m c này. các t p tin tài li u. /usr/sbin Thư m c này g m các chương trình th c thi dành cho nhà qu n tr và không s d ng trong th i gian kh i đ ng. bao g m: ˆ /usr/local/bin. Trong thư m c này là các thư vi n object c a các chương trình con. /usr/bin/X11 là nơi thư ng dùng đ lưu các chương trình ch y trên X Window. Trên Linux đó thư ng là liên k t m m đ n thư m c /usr/X11R6/lib/X11. ˆ /usr/local/lib – thư vi n và t p tin c a các chương trình và h th ng n i b . Theo tiêu chu n FHS thì nên dành cho thư m c này m t phân vùng riêng ho c đ t hoàn toàn trên đĩa s d ng chung trong m ng. Ngư i dùng c n có ít nh t là quy n đ c đ i v i thư m c này. Thư m c con này lưu mã ngu n c a các thư vi n tiêu chu n c a ngôn ng C. Trong các thư m c con c a /usr là t t c các ng d ng chính. các thư vi n đ ng (dynamic library). ˆ /usr/local/man – các trang tr giúp man. /usr/lib/X11 – nơi thư ng dùng đ đ t các t p tin có liên quan đ n X Window và các t p tin c u hình c a h th ng X Window.68 Thư m c /usr Làm quen v i h th ng t p tin ext3fs Công d ng Thư m c này r t l n và c u trúc c a nó nhìn chung l p l i c u trúc c a thư m c g c.

ˆ /usr/share/man – các trang tr giúp man. các t p tin t m th i. spool. /var /var/adm /var/lock /var/log Trong thư m c này là các t p tin lưu các d li u bi n đ i (variable). C n chú ý là thư m c này không dùng đ chia s gi a các HĐH khác nhau ho c gi a các phiên b n khác nhau c a cùng m t HĐH. M t nơi n a đ lưu các t p tin t m th i. ˆ /usr/X11R6/bin – các chương trình th ng này. Nh ng thư m c sau ho c liên k t m m sau ph i có trong /usr/share: man (các trang tr giúp man). . misc (nh ng gi li u tùy theo ki n trúc khác nhau). Chúng ta xem xét m t vài thư m c con c a thư m c này: ˆ /usr/share/dict – các danh sách t (word list) c a ti ng Anh dùng cho các chương trình ki m tra chính t như ispell. Các t p tin b n ghi (log). ng d ng. . và PPC có th dùng chung m t thư m c /usr/share n m trên m t phân vùng ho c đĩa chia s trên m ng. M i ph n c a man n m trong m t thư m c con riêng trong thư m c này. ˆ /usr/share/misc (đã nói 69 trên). ví d i386. Các t p tin thu c v h th ng X Window. Lưu các thông tin v tài kho n và thông tin chu n đoán dành cho nhà qu n tr . vì thư m c gi các t p tin như b n ghi (log). /usr/src /usr/tmp /usr/X11R6 Mã ngu n c a các thành ph n khác nhau c a Linux: nhân. ng d ng c a h ˆ /usr/X11R6/lib – các t p tin và thư vi n có liên quan đ n X-Window. Tiêu chu n FHS khuyên dùng thư m c con cho m i chương trình. Thông thư ng đây là liên k t m m đ n /var/tmp. Các t p tin đi u khi n h th ng dùng đ d tr tài nguyên. v. Thư ng dùng đ chia s gi a các ki n trúc khác nhau c a HĐH.3 Công d ng c a các thư m c chính Thư m c /usr/share Công d ng Thư m c này dùng cho t t c các t p tin d li u dùng chung và có quy n truy c p là ch đ c. . Nh ng d li u này xác đ nh c u hình c a m t s chương trình trong l n ch y sau ho c là nh ng thông tin lưu t m th i s s d ng sau.4. khóa locking. Dung lư ng thông tin trong thư m c này có th thay đ i trong m t kho ng l n. .v. Alpha. .

T p tin trong thư m c này thư ng đư c d n s ch trong th i gian kh i đ ng Linux. S khác nhau gi a hai d ng này n m cách đ c và ghi .v. Có hai d ng thi t b : ký t (hay còn g i là các thi t b trao đ i theo byte) và kh i (trao đ i theo kh i). 4. Như đã nói. v. chu t. ˆ /var/spool/uucp – t p tin c a h th ng uucp. Đi u này đơn gi n hoá s t ch c và trao đ i các d li u. Nh ng trên Linux còn có m t vài d ng t p tin n a. ˆ /var/spool/lpd — t p tin trong hàng đ i in. nh ng thành ph n sau cũng đư c Linux coi là t p tin: ˆ các t p tin thi t b ˆ các ng (kênh) có tên (named pipe) ˆ các socket (t v i nghĩa như t chim) ˆ các liên k t m m (symlinks). máy in. thì h th ng th c hi n thao tác ghi vào t p tin /dev/tty1. ví d : ˆ /var/spool/at – các công vi c mà at đã ch y. máy scan. Chúng ta s làm quen v i chúng trong ph n này. Do đó ngoài các t p tin thông thư ng và thư m c. đ i v i Linux thì t t c các thi t b k t n i vào máy tính ( c ng. . vì có th th c hi n ghi d li u vào t p tin. terminal. ˆ /var/spool/mail – t p tin thùng thư c a ngư i dùng.1 Các t p tin thi t b Như đã nói. tháo r i. /var/spool /var/tmp Các t p tin t m th i. Ví d . Chúng lưu thông tin v s ti n trình (PID) và ghi thông tin hi n gh i (utmp). .4 D ng t p tin Trong các ph n trư c chúng ta đã xem xét hai d ng t p tin đó là t p tin thông thư ng và các thư m c. chuy n d li u lên các thi t b và trao đ i d li u gi a các ti n trình b ng cách tương t như nhau. 4.4. bàn phím. môđem. ˆ /var/spool/cron – t p tin c a h th ng Verb+cron+. Nh v y có th dùng khái ni m t p tin cho các thi t b và các đ i tư ng khác. T p tin đư c đ t vào hàng đ t c a các chương trình khác nhau. n u c n đưa ra màn hình terminal th nh t thông tin nào đó.70 Thư m c /var/run Làm quen v i h th ng t p tin ext3fs Công d ng Các t p tin bi n đ i trong th i gian th c hi n các chương trình khác nhau. Trong t t c các trư ng h p này s d ng cùng m t phương pháp d a trên ý tư ng chu i các byte. ) đ u là các t p tin. đ i v i h đi u hành thì t p tin ch là m t chu i các byte liên t c.

/dev/ttS1 tương ng v i COM2. Trao đ i d li u v i các thi t b trên Linux do các driver thi t b đ m nhi m.2: Nh ng t p tin thi t b chính T p tin Ý nghĩa /dev/console Console h th ng t c là màn hình và bàn phím k t n i t i máy tính. N u s d ng /dev/null làm thi t b nh p vào. câu l nh ls -l cho bi l n và s nh đã nói thay vì kích thư c c a t p tin. Đ trao đ i v i các ph n khác c a h đi u hành m i driver t o ra m t giao di n liên l c có v ngoài gi ng như t p tin. đĩa /dev/hda. Nh ng driver này ho c n m trong nhân ho c n m riêng d ng môđun và có th g n vào nhân sau.4. Các thi t b ký t trao đ i thông tin theo t ng ký t (theo t ng byte) trong ch đ chu i các byte. S l n c a thi t b cho nhân bi t p tin này thu c v driver nào. Còn thông tin đư c đ c và ghi vào các thi t b kh i theo các kh i. Ph n l n nh ng t p tin như v y đã đư c t o s n t trư c và n m trong thư m c dev. t c là đĩa Primary Master. còn s nh cho bi t c n ph i làm vi c v i thi c th nào c a d ng này.4 D ng t p tin 71 thông tin vào các thi t b . thì s thu đư c m t chu i các s 0. trao đ i thông tin v i đĩa ch có th theo t ng kh i. đ u tiên là /dev/fd0. T t c nh ng gì ghi vào /dev/null s m t vĩnh vi n. Ví d thi t b d ng này là terminal. /dev/cua Các t p tin cho môđem. Ví d các c ng. /dev/sd c ng v i giao di n SCSI. B ng 4. Thi t b /dev/hda1 tương ng v i phân vùng đ u tiên c a đĩa c ng đ u tiên. S d ng cho các k t n i t xa qua telnet. M i d ng thi t b có th có m t vài t p tin thi t b .2 Các ng có tên (pipes) Còn có m t d ng t p tin thi t b n a đó là các ng có tên. B ng 4. /dev/tty Các t p tin h tr terminal c a ngư i dùng. /dev/pty Các t p tin h tr terminal gi . /dev/ttS0 tương ng v i COM1 trong DOS. hay b đ m FIFO (First In – First Out). T p tin d ng này ch y u dùng đ t ch c trao đ i d li u gi a . tb t là tb ts 4. /dev/fd Các t p tin đĩa m m. Đ i v i các t p tin thi t b . /dev/null Thi t b này có th g i là “l đen”. Tên g i v n đư c lưu k t khi k t n i teletype vào các h th ng UNIX làm terminal.2 cho bi t nh ng t p tin thư ng dùng nh t. /dev/hd Các c ng v i giao di n IDE. t c là trong trư ng h p này t p tin có c b ng 0. /dev/ttS T p tin h tr làm vi c v i các c ng k t ti p nhau (các c ng COM). Nh ng ngư i vi t script thư ng chuy n nh ng thông báo không c n thi t vào thi t b này. N u nhìn vào thư m c /dev (t c là chuy n vào thư m c đó b ng l nh cd r i ch y ls). Trên Linux nh ng t p tin này h tr các terminal o (hãy nh l i chương trư c). th hai là /dev/fd1. thì b n s th y m t lư ng kh ng l nh ng t p tin thi t b . Không th đ c t đĩa c ng và ghi lên đó t ng byte.4. Vì th các t p tin thi thư ng có hai s : l n (major) và nh (minor).

Khác v i liên k t c ng. Tuy nhiên t phía h th ng t p tin socket th c t không khác các ng có tên: đó ch là các đi m cho phép n i các chương trình v i nhau. thì liên k t m m tuy không b xóa nhưng tr thành vô giá tr . Trong trư ng h p ngư c l i c n t o ra m t ng có tên. t c là trên cùng m t phân vùng (đĩa lưu). M t ti n trình có th đ c t t c nh ng gì mà m t ti n trình khác đ t vào ng. trong đó có Linux: socket là khái ni m then ch t c a TCP/IP và như v y là d a trên socket đã xây d ng toàn b Internet. N u có hai ti n trình đư c sinh ra t cùng m t ti n trình m trao đ i thông tin (thư ng x y ra). Sau khi đã t o ra k t n i. ví d trên nh ng đĩa lưu đ ng.4 Liên k t m m Trong ph n v tên t p tin chương trư c chúng ta đã nói r ng t p tin trong Linux có th có vài tên hay liên k t c ng. . Nói chung socket và s trao đ i qua socket đóng vai trò h t s c quan tr ng trên t t c các h th ng UNIX.3 Các socket Socket đó là k t n i gi a các ti n trình. Đi m đ c bi t c a liên k t c ng là nó ch th ng đ n ch s inode. do đó đưa ra c hai trư ng h p có th g p. nhưng nh ng ti n trình không tham gia vào k t n i hi n th i không th th c hi n b t kỳ thao tác đ c hay ghi nào lên t p tin socket. Sau khi t o liên k t c ng không th phân bi t đâu là tên t p tin còn đâu là liên k t. R t khó phân bi t tên đ u tiên c a t p tin và nh ng liên k t c ng đư c t o ra sau đó. liên k t m m có th ch đ n nh ng t p tin n m trong h th ng t p tin khác. Hãy s d ng liên k t m m trong nh ng trư ng h p b n mu n tránh s l m l n mà liên k t c ng có th gây ra. 4. Trong s nh ng h th ng s d ng socket c n k đ n X Window. ví d b ng chương trình mkfifo. 9 thu t ng này v n chưa đư c th ng nh t. cho phép chúng giao ti p mà không ch u nh hư ng c a các ti n trình khác. 4. và do đó liên k t c ng ch có th dùng cho t p tin c a cùng m t h th ng t p tin.72 Làm quen v i h th ng t p tin ext3fs các chương trình khác nhau (pipe d ch t ti ng Anh sang là ng. h th ng in và h th ng syslog. thì trao đ i đư c th c hi n mà không c n đ n socket: d li u do nhân chuy n tr c ti p t chương trình này đ n chương trình khác. Nh ng liên k t này cũng có th coi là tên ph cho t p tin. Nó đư c ghi trong mô t inode c a t p tin đó. M c dù nh ng ti n trình khác có th th y các t p tin socket. N u b n đ c xóa m t trong s nh ng t p tin này (nói đúng hơn là m t trong s nh ng tên này). ng là phương ti n h t s c thu n ti n và s d ng r ng rãi đ trao đ i thông tin gi a các ti n trình.4. M t trong nh ng ng d ng c a liên k t c ng đó là ngăn ch n kh năng xóa t p tin m t cách vô tình. Vì v y ch dùng liên k t c ng nh ng nơi không c n bi t s khác nhau. ho c khi t p tin n m trên m t h th ng t p tin khác. nhưng chúng là nh ng t p tin khác – nh ng t p tin liên k t m m. Nhưng trên Linux còn có m t d ng liên k t khác g i là (liên k t tư ng trưng9 ). thì ng có th không có tên. ho c th m chí trên m t máy tính khác. thì t p tin v n còn đư c lưu trên đĩa cho đ n khi v n còn ít nh t m t tên.4. N u t p tin ban đ u b xóa. đư ng ng). Liên k t c ng ch là m t tên khác cho t p tin ban đ u. Khi này b n thân t p tin ng ch tham gia vào s kh i đ u trao đ i d li u.

” luôn luôn là thư m c m c a thư m c hi n th i. b i vì v trí c a liên k t m m có th thay đ i.” (liên k t đ n thư m c m ) trong tên t p tin ch đ n.pdf -> projects/l4u/l4u-0. Ngoài ra. Thành viên c a các nhóm khác nhau có th có quy n truy c p khác nhau đ n t p tin. mà “. nhưng khác ch là tên ban đ u c a t p tin cũng như liên k t cùng ch đ n m t t p tin th c s trên đĩa.pdf Hãy chú ý đ n ký t đ u tiên c a dòng này. thì s th y nh ng thay đ i này khi xem t p tin qua tên khác. Và bây gi n u xem danh sách t p tin trong thư m c b ng câu l nh ls -l. Cơ s c a cơ ch quy đ nh quy n truy c p đó là tên ngư i dùng và tên nhóm c a ngư i dùng. 4. Đ t o liên k t m m c n s d ng câu l nh ln đã nói đ n và thêm vào tùy ch n -s: [user]$ ln -s tên_t p_tin tên_liên_k t Ví d : [user]$ ln -s projects/l4u/l4u-0. nên yêu c u quy đ nh truy c p đ n các t p tin và thư m c là m t trong nh ng yêu c u thi t y u nh t mà h đi u hành ph i gi i quy t. Ngày t đ u khi t o t p tin ch c a nó là ngư i dùng đã t o ra nó. và hi n th i v n còn đư c s d ng đ gi i quy t bài toán này. T t nhiên đi u này có th th y rõ trong ph n cu i (ph n tên t p tin). T o và xóa các nhóm là công vi c c a ngư i dùng cao c p root. ví d nhóm các nhà qu n tr có quy n nhi u hơn so v i nhóm các nhà l p trình.4. Nhưng khi t o liên k t m m.pdf Sau khi th c hi n câu l nh này trong thư m c cá nhân c a tôi xu t hi n t p tin l4u. N u b n t o trong thư m c mot m t liên k t m m ch đ n m t thư m c khác. Cơ ch quy đ nh truy c p đư c phát tri n cho h th ng UNIX vào nh ng năm 70 c a th k trư c r t đơn gi n nhưng có hi u qu đ n n i đã đư c s d ng hơn 30 năm.9.9.. trên h th ng còn có các nhóm ngư i dùng.. Vì th n u b n đ c thay đ i t p tin qua m t tên nào đó c a nó.pdf. thì có th di chuy n thư m c mot đi đâu tùy thích. đó sau tên t p tin c a liên k t là m t mũi tên → ch đ n t p tin ban đ u. và Linux cho phép m t ngư i dùng có th n m trong m t ho c nhi u nhóm.5 Quy n truy c p đ n t p tin và thư m c B i vì Linux là h đi u hành nhi u ngư i dùng. Nói chính xác hơn là ngư i dùng mà ti n trình t o t p tin đã ch y dư i tên h . Cũng như v y đ i v i chính b n thân liên k t m m.5 Quy n truy c p đ n t p tin và thư m c 73 Vi c t o b t kỳ m t liên k t nào cũng gi ng như sao chép t p tin. thì trong danh sách s có m t dòng như sau: lrwxrwxrwx 1 teppi82 users 20 2006-09-10 06:39 l4u. hãy h n ch s d ng “. Trong mô t inode c a m i t p tin có ghi tên c a ch và nhóm s h u t p tin. liên k t m m khi đó v n làm vi c đúng.2. Như b n đã bi t trong Linux m i ngư i dùng có m t tên riêng không l p l i dùng đ đăng nh p vào h th ng. nó cho chúng ta bi t t p tin là m t liên k t m m.2. và root có th thay đ i thành ph n c a m t nhóm nào đó. Cùng lúc v i .pdf ~/l4u.

Sau ký t xác đ nh d ng t p tin là ba nhóm. hãy chú ý kh năng này c a câu l nh ls -l – hi n th thông tin v m t t p tin c th nào đó ch không ph i t t c các t p tin trong thư m c m t lúc. 9 . tên c a nhóm s h u cũng đư c ghi vào theo thông tin tên nhóm c a ti n trình t o t p tin. Có th thay đ i ch và nhóm s h u trong quá trình làm vi c sau này b ng hai câu l nh chown và chgrp (chúng ta s đ c p k hơn v hai l nh này ngay sau đây). nhưng có thêm m t tham s n a đó là tên c a m t t p tin c th nào đó. Nhân ti n.74 Làm quen v i h th ng t p tin ext3fs ch s h u. có nghĩa là h không th s a t p tin và nói chung là không th thay đ i t p tin b ng cách nào đó. [user]$ ls -l /bin/bash -rwxr-xr-x 1 root root 501804 2006-04-23 05:46 /bin/bash Như b n đ c th y. w. x. Đi u này là t t nhiên vì máy tính ch làm vi c d a trên các bit ch không ph i d a trên các ký t r. t t c nh ng ngư i dùng khác (k c nh ng ngư i dùng c a nhóm root) b tư c m t quy n ghi vào t p tin này. Nhưng bây gi trên dòng này chúng ta s quan tâm hơn đ n vùng đ u tiên. Vùng này trong ví d trên là chu i các ký t t m th i chưa nói lên đi u gì “-rwxr-xr-x”. nhóm s h u t p tin và cho nh ng ngư i dùng khác. trong trư ng h p này ch s h u là ngư i dùng root. có nghĩa là ch s h u root có quy n đ c (r). m i nhóm g m ba ký t xác đ nh quy n truy c p tương ng cho ch s h u. Nhóm th nh t ch g m m t ký t xác đ nh d ng t p tin (m t trong b n d ng đã nêu ph n trên). Nh ng ký t này có th t m chia thành b n nhóm. Và cu i cùng 9 bit cu i cùng xác đ nh quy n truy c p đ n t p tin. Thay b t kỳ ký t nào trong s nh ng ký t này b ng d u g ch ngang có nghĩa là ngư i dùng b tư c m t quy n tương ng. Cũng trong ví d trên chúng ta th y. Ví d t p tin chương trình c a h v bash /bin/bash. Ba bit ti p theo xác đ nh các tính ch t đ c bi t c a t p tin th c thi (chúng ta s nói đ n m t chút sau). ghi vào t p tin (w) và ch y t p tin này (x). B n bit trong s 16 bit này đư c dùng cho b n ghi v d ng t p tin. Bây gi hãy th c hi n m t l n n a câu l nh ls -l. vùng xác đ nh d ng t p tin và quy n truy c p đ n nó. nhóm s h u – root. Trong ví d c a chúng ta quy n truy c p c a ch s h u là rwx. Nó có th là m t trong s nh ng ký t sau: ˆ – (g ch ngang) – t p tin thông thư ng ˆ d – thư m c ˆ b – t p tin thi t b kh i ˆ c – t p tin thi t b ký t ˆ s – socket ˆ p – ng có tên (pipe) ˆ l – liên k t m m (symbolic link). Quy n truy c p và thông tin v d ng t p tin trên các h th ng UNIX đư c lưu trong mô t inode d ng c u trúc 2 byte (16 bit).

Trong trư ng h p này quy n g i ch quy n chuy n vào thư m c này. Khi có quy n này.4. Hơn n a còn c n ph i cho ngư i dùng “quy n g i” đ i v i t t c các thư m c n m trư c thư m c này trong cây thư m c. x nói trên đư c dùng đ xác đ nh quy n truy c p đ n thư m c. . N u b n đ c là ch s h u thư m c và mu n cho nh ng ngư i dùng khác quy n xem m t t p tin nào đó trong thư m c c a mình thì c n ph i cho h quy n truy c p (chuy n) vào thư m c này. ví d more. w. n u không có quy n ghi w vào t p tin này. m i nhóm 3 bit. n u chúng ta nh r ng thư m c cũng ch là t p tin lưu danh sách các t p tin khác trong thư m c đó. còn “0” th hi n d ng d u g ch ngang.5 Quy n truy c p đ n t p tin và thư m c 75 bit này chia thành ba nhóm. perl. “quy n ghi” và “quy n g i” có thay đ i m t chút. ngư i dùng có th t o và xóa các t p tin trong thư m c. Ba bit đ u tiên xác đ nh quy n c a ch s h u. d ng ch cái thì “1” đư c thay th b ng các ch cái tương ng (r. thì t c là có th xem n i dung c a thư m c (có th nói khác là xem danh sách t p tin trong thư m c). thì có quy n đó. Cho nên n u ngư i dùng có quy n đ c thư m c. ph n m r ng c a t p tin đây không có liên quan gì. nhưng ngư c l i n u t p tin là chương trình mà không có quy n g i thì cũng không th ch y chương trình đó. T t nhiên n u trên th c t t p tin không ph i là chương trình (ho c các script shell. còn n u b ng “0” thì quy n đó b tư c m t. ho c b ng các trình so n th o văn b n. Nhưng khi so n th o b n s không th lưu nh ng thay đ i trong t p tin lên đĩa. Chính vì v y mà theo m c đ nh t t c các thư m c có đ t quy n g i cho ch s h u cũng như nhóm và nh ng ngư i dùng khác. ) thì không th g i t p tin. ba bit cu i cùng – quy n c a nh ng ngư i dùng còn l i (t c là t t c nh ng ngư i dùng. và khác v i các HĐH c a Microsoft không ph i ai cũng có quy n g i t p tin. . N u v n th c hi n câu l nh ls -l nhưng tham s không ph i là tên t p tin mà là tên thư m c thì chúng ta s th y thư m c cũng có quy n truy c p và cũng v n nh ng ch cái r. n u th c hi n câu l nh: [user]$ ls -l /usr thì s th y dòng tương ng v i thư m c share như sau: drwxr-xr-x 128 root root 4096 2006-09-07 02:20 share T t nhiên là đ i v i thư m c thì ý nghĩa c a các khái ni m “quy n đ c”. ba bit ti p theo – quy n c a nhóm s h u. t c là thêm vào ho c xóa kh i thư m c dòng lưu thông tin v m t t p tin nào đó và các liên k t tương ng. Và t t nhiên n u mu n ngăn ch n truy c p vào thư m c thì ch c n b đi quy n chuy n vào thư m c (r) c a . Quy n ghi cũng d hi u. Quy n g i đ i v i thư m c có hơi khó hi u m t chút. Quy n đ c đ i v i thư m c thì h t s c d hi u. t t c đ u do tính ch t “th c thi” đ t ra. Khi này n u bit tương ng có giá tr b ng “1”. Ví d . w ho c x). . t c là cho nh ng ngư i dùng khác “quy n g i” (th c thi) thư m c. Quy n th c thi (tôi thích dùng thu t ng quy n g i) có nghĩa là b n đ c có th n p t p tin vào b nh và th ch y mã này gi ng như trư ng h p chương trình. tr ch s h u và nhóm s h u t p tin). B n th y không. Quy n đ c r t p tin có nghĩa là ngư i dùng có th xem n i dung t p tin b ng các chương trình xem khác nhau. Như v y là chúng ta đã bi t đư c trên Linux nh ng t p tin nào là có th th c thi.

76 Làm quen v i h th ng t p tin ext3fs t t c ngư i dùng (k c nhóm s h u). Đ u tiên h th ng ki m tra xem tên ngư i dùng có trùng v i tên ch s h u t p tin hay không. nhưng c n ph i nh tên c a thư m c con này. N u ngư i dùng không ph i là ch s h u và cũng không n m trong nhóm s h u. Tuy nhiên v n có s khác nhau gi a hai quy n này. vì s không th y b t kỳ danh sách và t p tin thư m c nào (trư ng h p này gi ng như khi chúng ta đi trong màn đêm không th y đư ng. nhưng s không th y đó b t kỳ m t t p tin nào khi ch y l nh ls (có th th y rõ hơn n u b n s d ng chương trình Midnight Commander). ghi và g i) không. Đ thay đ i quy n truy c p t i t p tin ngư i ta s d ng l nh chmod (change mode). Khi dùng cách th nh t b n ph i ch ra rõ ràng thêm quy n nào cho ai ho c tư c quy n nào và c a ai như sau: [user]$ chmod wXp tên_t p_tin Trong đó. thì s đư c cho phép th c hi n thao tác tương ng. N u có quy n truy c p đó. Như v y nhóm tính ch t th ba trong quy n truy c p là dành cho t t m i ngư i dùng. thì th m chí h th ng không ki m tra quy n có th có nhóm s h u và nh ng ngư i dùng khác mà đưa ra luôn thông báo l i không th th chieejn đư c hành đ ng yêu c u (d ng “Permission denied”). và không chú ý đ n các quy n c a ch s h u và nh ng ngư i dùng còn l i. N u có quy n truy c p t i m t thư m c con nào đó c a thư m c này. N u có thì kh năng truy c p đ n t p tin đư c xác đ nh b ng quy n truy c p c a nhóm. thì ngư i dùng có th vào thư m c. nhóm và nh ng ngư i dùng còn l i. thì b n có th chuy n sang thư m c con b ng l nh cd. N u ch s h u không có quy n nào đó. thì quy n c a h đư c xác đ nh b ng nhóm tính ch t th ba (nhóm dành cho nh ng ngư i dùng còn l i). ch ký t w ph i đ t m t trong các ký t sau: ˆ u – ch s h u ˆ g – nhóm s h u g ˆ o – nh ng ngư i dùng còn l i ˆ a – t t c bao g m ch s h u. Sau khi đ c đo n trên có th th y “quy n đ c” thư m c là th a thãi vì không cho ra tính năng gì m i so v i “quy n g i”. Đ ng tư c b quy n này c a chính b n thân mình. N u hai tên này trùng nhau (t c là ch s h u đang dùng t p tin c a mình). n u không s ph i ph c h i l i nó trư c khi có th đ c các t p tin. Đ ng ng c nhiên khi ch s h u l i không có t t c m i quy n. N u tên ngư i dùng không trùng v i tên ch s h u thì h th ng ki m tra xem ngư i dùng này có n m trong nhóm s h u hay không. Cơ ch ki m tra quy n ngư i dùng khi s d ng t p tin như sau. ngư i dùng root có th tư c b m t s quy n c a ch s h u t p tin. ch X là m t trong các ký t sau: ˆ + – thêm quy n ˆ – – tư c b quy n . N u ch đưa ra quy n g i. tr ch s h u và nh ng ngư i dùng n m trong nhóm s h u. Có hai cách s d ng l nh này. thì ki m tra xem ch s h u có các quy n truy c p tương ng (đ c. ch nh hư ng đi).

Chúng ta c n đ t ba s này phía sau tên l nh và phía trư c tham s th hai (tên t p tin). Đ xác đ nh quy n c a ngư i dùng c n c ng các s tương ng l i v i nhau. t c là có th dùng l nh: [user]$ chmod +x tên_t p_tin đ thay cho [user]$ chmod a+x tên_t p_tin Phương án s d ng th hai c a câu l nh chmod có khó hi u hơn m t chút trong th i gian đ u s d ng Linux. Nó d a trên mã hóa quy n truy c p d ng s .5 Quy n truy c p đ n t p tin và thư m c ˆ = – dùng quy n ch ra thay cho quy n đã có. cho nhóm s h u quy n đ c và ghi (4+2=6) và nh ng ngư i dùng còn l i quy n g i (1=1). ghi. N u không ch ra ai đư c thêm quy n truy c p. ghi và g i (th c hi n).4. nhóm s h u và nh ng ngư i dùng còn l i). 77 ch p là m t trong nh ng ký t sau: ˆ r – quy n đ c ˆ w – quy n ghi ˆ x – quy n g i (quy n th c hi n. w – s 2. nh ng ngư i dùng còn l i ch có quy n g i (th c hi n). [user]$ chmod u=rwx. Sau khi thu đư c ba giá tr s (cho ch s h u. thì s áp d ng cho t t c m i ngư i dùng. Sau đây là m t s ví d s d ng câu l nh chmod: [user]$ chmod a+x tên_t p_tin thêm quy n g i t p tin tên_t p_tin cho m i ngư i dùng c a h th ng. x – s 1. g i). Ví d . n u c n cho ch s h u m i quy n (4+2+1=7). nhưng l i thư ng xuyên đư c các nhà qu n tr cũng như ngư i dùng có kinh nghi m dùng. [user]$ chmod ugo+rwx tên_t p_tin [user]$ chmod a+rwx tên_t p_tin cho m i ngư i dùng quy n đ c. thì dùng l nh sau: [user]$ chmod 761 tên_t p_tin . chúng ta đưa ba s này vào dùng làm tham s cho l nh chmod.go=x tên_t p_tin cho ch s h u có t t c m i quy n (đ c. Ký t r đư c mã hóa b ng s 4. [user]$ chmod go-rw tên_t p_tin tư c b quy n đ c và ghi c a m i ngư i dùng tr ch s h u t p tin.

nhóm s h u và nh ng ngư i dùng còn l i. Ví d : Identificator. chúng chi m các v trí 5 – 7 ngay sau mã cho bi t d ng t p tin. Trong mô t inode. Đ k t thúc bài h c v quy n truy c p đ n t p tin c n nói thêm v nh ng tính ch t khác có th g p c a t p tin mà cũng xác đ nh b ng l nh chmod. N u như có đ t “bit thay đ i ID ngư i dùng”. T t nhiên là trong chương trình passwd đã có mã đ ngư i dùng ch đư c phép thay đ i m t dòng trong t p tin này – dòng tài kho n c a ngư i dùng đó. Ý nghĩa c a bit này cũng gi ng như trên nhưng ch thay th “ngư i dùng” b ng “nhóm”. m i ngư i dùng có m t ID d ng s như v y. không trùng l p. Ngư i dùng cao c p root có th đ t “bit thay đ i ID ngư i dùng” b ng l nh: [root]# chmod +s tên_t p_tin Tương t như v y chúng ta có “bit thay đ i ID nhóm”. Có nghĩa là ngư i dùng không th thay đ i m t kh u c a mình. Ví d ID c a ngư i dùng cao c p root là 0. ID c a ngư i dùng là duy nh t. thì hi u r ng nh ng s đ ng sau tên l nh không ph i gì khác mà chính là b n ghi h cơ s tám c a 9 bit xác đ nh quy n truy c p cho ch s h u. Ch có ch s h u t p tin ho c ngư i dùng cao c p m i có kh năng thay đ i quy n truy c p b ng câu l nh chmod. Trên nh ng máy “top model” (high end) hi n đ i thì r t hi m khi s d ng. Đó là nh ng tính ch t cho các t p tin th c thi. Tính ch t đ u tiên đó là “bit thay đ i ID10 ngư i dùng”. Như v y bit này còn có th g i là “bit thay đ i ID ch s h u ti n trình”. Vì th chương trình n u do ngư i dùng ch y s không th th c hi n l nh ghi vào t p tin này. R t thu n ti n khi đ t bit này cho nh ng chương trình thư ng g i. Đi u này cho phép gi i quy t m t s v n đ khó th c hi n. Thông thư ng. Bit này ch h th ng bi t sau khi d ng chương trình c n lưu l i nó trong b nh . 10 . Ví d đi n hình nh t là câu l nh thay đ i m t kh u passwd. M t tính ch t n a c a t p tin th c thi đó là “bit dính” (chính xác hơn là “bit lưu chương trình”) hay thu t ng ti ng Anh là “sticky bit”. Đ có th thay đ i quy n c a nhóm s h u. Bit này ch c n thi t trên nh ng máy cũ. thì ch s h u (không ph i root) ph i là thành viên c a nhóm đó. và root là ch s h u t p tin chương trình này.78 Làm quen v i h th ng t p tin ext3fs N u b n bi t v mã đôi c a h cơ s tám. thì giá tr c a ba tính ch t v a nói ph i n m trư c nh ng s xác đ nh quy n truy c p (t c là s đ u tiên trong dãy 4 s xác đ nh t t c các tính ch t c a t p tin). thì chương trình này nh n đư c nh ng quy n truy c p đ n t p tin và thư m c c a ngư i dùng đã ch y nó. Nhưng t p tin /usr/bin/passwd có “bit thay đ i ID ngư i dùng”. trong đa s trư ng h p là /etc/shadow) mà ch s h u là ngư i dùng cao c p root. ph n c u trúc 2 byte xác đ nh tính ch t t p tin. Do đó chương trình thay đ i m t kh u passwd đư c ch y v i quy n root và nh n đư c quy n ghi vào t p tin /etc/passwd. Ý nghĩa c a bit này như sau. thì chương trình nh n đư c quy n truy c p đ n t p tin và thư m c c a ch s h u t p tin chương trình. N u s d ng phương án xác đ nh tính ch t d ng s c a l nh chmod. Chúng ta s dùng thu t ng “bit lưu chương trình” vì đúng v i ng c nh này hơn. T t c m t kh u đư c lưu trong t p tin /etc/passwd (ho c m t t p tin mã hóa nào khác. vì trong trư ng h p này s ti t ki m đư c th i gian n p chương trình vào b nh m i l n ch y. khi ngư i dùng g i th c hi n m t chương trình nào đó.

đó là pwd. chúng ta v n có th th y đư c nh ng thông tin này. thì thay th x b ng ch cái S l n. N u có (nh ng) bit nào đó trong s ba bit này đư c đ t (nh n giá tr 1). S thay th như v y cũng x y ra n u có đ t “bit thay đ i ID nhóm”. thì s có thay đ i c a k t qu c a l nh ls -l trong ph n quy n truy c p (ph n đ u tiên). m c dù trong k t qu c a l nh ls -l không có nh ng v trí riêng đ hi n th k t qu c a ba bit (“bit thay đ i ID ngư i dùng”. t c là dùng nhi u t p tin làm tham s cho l nh ls. thì thay th ký t x trong ph n xác đ nh quy n truy c p c a nh ng ngư i dùng còn l i b ng ký t t. N u “bit lưu chương trình” (sticky bit) b ng 1. còn ngư c l i (ví d t p tin không ph i là chương trình). cd.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c [root]# chmod 4775 tên_t p_tin 79 Khi này cũng v n s d ng phép c ng như đ i v i trư ng h p quy n truy c p và các tính ch t có giá tr như sau: ˆ 4 – “bit thay đ i ID ngư i dùng” ˆ 2 – “bit thay đ i ID nhóm” ˆ 1 – “bit lưu chương trình” (sticky bit). M t vài ví d : [user]$ ls -l /usr/bin/passwd /usr/bin/write -rwsr-xr-x 1 root shadow 72836 2006-05-02 12:50 /usr/bin/passwd -rwxr-sr-x 1 root tty 8936 2006-05-02 10:50 /usr/bin/write ( đây chúng ta th y có th li t kê nhi u t p tin trên dòng l nh ls -l. Như v y. Lúc này n u ch s h u có quy n g i t p tin thì ký t x đư c thay th b ng ch cái s nh . . Trong ph n này chúng ta s xem xét m t cách ng n g n m t vài câu l nh thư ng dùng n a. ln. t t nhiên là s thay th ký t x trong ph n xác đ nh quy n truy c p c a nhóm s h u. chmod. ls.) [user]$ touch vidu [user]$ chmod 7766 vidu [user]$ ls -l vidu -rwsrwSrwT 1 teppi82 users 0 2006-09-11 12:46 vidu 4. thì ký t x trong ph n xác đ nh quy n truy c p c a ch s h u s đư c thay th b ng ký t s.4. “bit thay đ i ID nhóm” và “bit lưu chương trình”). n u nh ng ngư i dùng còn l i có quy n th c hi n t p tin. b ng ký t T. n u ngư c l i. N u “bit thay đ i ID ngư i dùng” b ng 1.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c Trong nh ng ph n trư c chúng ta đã đ c p đ n m t vài câu l nh đ làm vi c v i t p tin và thư m c.

3 Câu l nh cat Câu l nh cat thư ng dùng đ t o các t p tin. n u dùng thu t ng c a Hoá h c là “s c ng” các t p tin). (liên k t đ n thư m c m ). Trong thư m c v a t o s t đ ng t o ra hai m c: .2 Câu l nh mkdir Câu l nh mkdir cho phép t o thư m c con trong thư m c hi n th i.6. b n đ c c n ph i có quy n ghi vào thư m c hi n th i. (liên k t đ n chính b n thân thư m c này) và .80 Làm quen v i h th ng t p tin ext3fs 4.6. còn thay đ i nhóm s h u t p tin có th là root ho c ngư i dùng ch s h u.. Vì nó đư c t o ra cho s móc n i (concatenate. m c dù có th s d ng l nh touch. Cú pháp c a hai câu l nh này tương t nhau: [root]# chown tên_ngư i_dùng tên_t p_tin [root]# chgrp tên_nhóm tên_t p_tin 4. Có th t o ra thư m c con trong m t thư m c khác thư m c hi n th i. L nh cat cũng đưa ra màn hình (đ u ra) n i dung c a (các) t p tin dùng làm tham s c a nó.6. thì ch s h u còn ph i là thành viên c a nhóm s s h u t p tin này. N u chuy n k t qu làm vi c c a l nh cat vào m t t p tin nào đó thì có th t o ra b n sao c a t p tin như sau: [user]$ cat t p_tin1 > t p_tin2 Chính b n thân câu l nh cat lúc đ u đư c phát tri n đ dùng cho vi c chuy n hư ng k t qu làm vi c. Ví d : teppi82@ThinhQuyen:~> mkdir mot/hai mkdir: cannot create directory ’mot/hai’: No such file or directory teppi82@ThinhQuyen:~> mkdir -p mot/hai teppi82@ThinhQuyen:~> ls -l mot t ng 4 drwxr-xr-x 2 teppi82 users 4096 2006-09-11 13:36 hai 4. Ch có ngư i dùng cao c p root m i có quy n thay đ i ch s h u. nhưng khi này c n ph i ch ra đư ng d n t i đó. Có th dùng các tùy ch n sau c a câu l nh mkdir: ˆ -m mode – xác đ nh quy n (ch đ ) truy c p cho thư m c m i (ví d : -m 700) ˆ -p – t o ra các thư m c trung gian ch ra trong đư ng d n (n u chưa có chúng). Đ t o ra thư m c con. Ví d : [user]$ mkdir ~/projects/l4u/images (hãy nh l i ký hi u ∼ dùng đ ch c a ngư i dùng).1 Câu l nh chown và chgrp Nh ng câu l nh này dùng đ thay đ i ch s h u và nhóm s h u t p tin. t c là s k t h p các t p tin khác nhau vào m t: . Tham s c a câu l nh này là tên c a thư m c mu n t o ra. Đ có quy n thay đ i nhóm.

–R ho c –r N u ngu n là thư m c thì sao chép thư m c đó cùng v i t t c nh ng gì (t p tin.3. nhưng trong Linux có m t câu l nh chuyên dùng cho vi c này – l nh cp. Tùy ch n –p . và t t c nh ng gì b n đã gõ s đư c lưu l i trong t p tin t p_tin_m i. T t nhiên là như v y ch y u dùng cat đ t o các t p tin văn b n ng n.4. N u s d ng m t t p tin đã có vào ch c a t p tin đích thì n i dung c a nó s b xóa m t. Đ sao chép thì c n có quy n đ c t p tin mu n sao chép và quy n ghi vào thư m c s sao chép đ n (“thư m c đích”). –f Ghi chèn t p tin khi sao chép mà không h i l i hay c nh báo.4 Câu l nh cp M c dù đôi khi có th dùng câu l nh cat đ sao chép các t p tin. N u không đưa ra tùy ch n này thì quy n truy c p c a t p tin s đư c thi t l p theo quy n c a ngư i dùng đã ch y l nh. Câu l nh cp còn có m t vài tùy ch n có ích khác li t kê trong b ng 4. hãy nh n t h p phím <Ctrl>+<D> ho c <Ctrl>+<C>. t c là gi l i đư c c u trúc c a thư m c b n đ u (recursive). t p_tinN > t p_tin_m i 81 Và cũng chính kh năng chuy n hư ng k t qu c a câu l nh này đư c dùng đ t o các t p tin m i. –d N u đưa ra tùy ch n này thì các liên k t m m s v n là các liên k t..3: Nh ng tùy ch n chính c a l nh cp Ý nghĩa Gi l i th i gian s a đ i t p tin và c gi l i nh ng quy n truy c p có th gi l i.6. B ng 4. do v y khi sao chép c n ph i c n th n. Còn trong trư ng h p th hai thì t p tin có trong thư_m c_ngu n s đư c sao chép vào thư m c thư_m c_m i. Có th áp d ng m t trong hai d ng c a l nh này: [user]$ cp [tùy_ch n] ngu n đích [user]$ cp [tùy_ch n] thư_m c_ngu n thư_m c_m i Trong trư ng h p th nh t sao chép t p tin (ho c thư m c) ngu n vào t p tin (ho c thư m c) đích. Khi này đ u vào c a l nh cat đó là dòng d li u nh p t bàn phím (đ u vào tiêu chu n). R t nên dùng tùy ch n này. n u không thì s sao chép t p tin (n i dung) mà liên k t này ch đ n. V l i có th s d ng câu l nh cp v i tùy ch n -i. Khi đó trư c khi ghi chèn lên t p tin đã có h th ng s h i l i ngư i dùng.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c [user]$ cat t p_tin1 t p_tin2 . còn đ u ra s là t p tin m i: [user]$ cat > t p_tin_m i Sau khi nh p vào nh ng gì mu n nh p. 4. thư m c con) n m trong nó..

Vì th hãy khi hai l n trư c khi xóa gì đó và đ ng quên tùy ch n -i. thì có th s d ng câu l nh mv. b n đ c c n có quy n ghi vào thư m c lưu nh ng t p tin ho c thư m c mu n xóa. N u ch y l nh rm *. N u mu n câu h i xác nh n s cho phép c a ngư i dùng xu t hi n trư c khi xóa t p tin. Khi này quy n thay đ i chính b n thân các t p tin và thư m c là không c n thi t. Ch c n đ t vào ch hai tham s tên cũ và tên m i c a t p tin như th này: [user]$ mv tên_cũ tên_m i Nhưng hãy chú ý là câu l nh mv không cho phép đ i tên m t vài t p tin cùng lúc b ng cách s d ng các m u tên. Đ xóa c t p tin và thư m c con c a thư m c hi n th i c n dùng tùy ch n -r k trên. Khi s d ng l nh mv cũng gi ng như khi s d ng cp. Theo tôi nghĩ b t kỳ ngư i dùng Linux nào cũng có th chia s v i b n c m giác b m t t p tin “ngay trư c m t”. T t nhiên b n có th tham kh o tài li u HOWTO có trên http: //www. Cú pháp c a l nh này tương như cú pháp c a cp. sau đó xóa b n th n thư m c b ng l nh rmdir. th m chí c khi v a xóa xong11 . mà c n di chuy n t p tin t m t thư m c này vào t thư m c khác.5 N m t m gi Câu l nh mv u b n không c n sao chép. do đó không xem xét chúng. 11 . mv đã k trên). Do đó câu l nh: [user]$ mv *. Tuy nhiên có th xóa thư m c không r ng cùng v i t t c nh ng t p tin và thư m c có trong nó. thì hãy dùng tùy ch n -i (r t d nh . đ ng quy n thêm vào tùy ch n -i đ hi n ra c nh báo khi có t p tin s b ghi chèn.tldp. Các thư m c con không b đ ng t i. Các tùy ch n c a nó cũng ng như c a cp. Đ xóa thư m c thì c n xóa t t c nh ng t p tin có trong nó.82 Làm quen v i h th ng t p tin ext3fs 4. Hơn n a. thì s xóa t t c nh ng t p tin có trong thư m c hi n th i. n u s d ng câu l nh rm v i tùy ch n -r. và sau đó m i xóa t p tin (thư m c) ban đ u.odt s không làm vi c. Câu l nh mv không ch dùng đ di chuy n. t c là di chuy n chúng trong ph m vi c a m t thư m c.6. tùy ch n này có nh ng câu l nh cp.org này trong trư ng h p kh n c p. mà còn dùng đ thay đ i tên t p tin và thư m c. Đ s d ng nh ng câu l nh này. 4.doc *. Tuy nhiên c n luôn luôn nh r ng.6. trên Linux không có câu l nh ph c h i t p tin sau khi xóa. l nh này đ u tiên sao chép t p tin (hay thư c). Có m t s cách ph h i t p tin đã xóa trên h th ng t p tin cũ ext3fs. đây là thư m c).6 Câu l nh rm và rmdir Đ xóa nh ng t p tin và thư m c không c n thi t trên Linux có các câu l nh rm (xóa t p tin) và rmdir (xóa thư m c r ng). nhưng chúng ta là nh ng ngư i dùng m i. N u dùng câu l nh rm (không có tùy ch n) đ xóa thư m c thì s xu t hi n thông báo d ng “cannot remove ‘l4u’: Is a directory” (không th xóa b .

Ti n ích less là m t trong nh ng chương trình đư c d án GNU phát tri n. Nguyên nhân là n i dung c a t p tin l n s ngay l p t c ch y qua màn hình và ngư i dùng ch th y nh ng dòng cu i cùng c a t p tin. less có t t c các ch c năng và l nh đi u khi n c a more. trong đó có th có các thư m c m ng . Đ tìm ki m t khóa “string” (m t c m ký t nào đó) thì đ u tiên c n nh n “/” đ chuy n vào ch đ tìm ki m.6. <Home>. và cũng không đưa ra danh sách các tùy ch n c a l nh more. nhưng chúng ta s không li t kê đ y đ nh ng phím này đây. <↓>. Ví d . N u tìm th y t khóa trong t p tin. Câu l nh (b l c) more đưa n i dung c a t p tin ra màn hình theo t ng trang có kích thư c b ng kích thư c màn hình (nói chính xác thì là g n b ng. <End>. th i gian t o ho c th i gian s a đ i t p tin và theo các tiêu chí khác.8 Câu l nh tìm ki m find và m u tên t p tin Còn có m t câu l nh thư ng dùng đ làm vi c v i t p tin trong Linux đó là câu l nh tìm ki m t p tin find.6. Vì th cat dùng ch y u theo ch c năng chính c a nó. ví d phím <B> đ quay l i màn hình trư c. và ch dùng đ hi n th nh ng t p tin có dung lư ng r t nh . tuy nhiên r t ít khi l nh cat đư c s d ng cho m c đích này. Tuy nhiên trong trư ng h p đó tìm ki m có th kéo dài r t lâu. Đ xem trang ti p theo c n nh n vào phím tr ng <Space> (phím dài nh t trên bàn phím hi n nay). và có thêm m t vài s m r ng khác. <PgDown>) đ di chuy n trong văn b n. T t c các tuỳ ch n c a l nh more b n có th đ c trong trang hư ng d n man (more(1)) ho c info c a nó. trong less có th dùng t h p phím <Shift>+<N> đ tìm ki m theo hư ng ngư c l i. vì có m t dòng cu i cùng dành cho đ hi n th tr ng thái (status)). Bây gi b n đ c ch c n nh phím <Q> dùng đ thoát ra kh i ch đ xem c a more. N u mu n ti p t c tìm ki m hãy nh n phím <N>. Đơn gi n nh t là dùng thư m c g c “/” làm nơi kh i đ u tìm ki m. còn đ xem n i dung c a các t p tin văn b n chúng ta dùng các l nh more và less ho c các trình so n th o khác. <←>.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c 83 4. <→>. Các l nh more và less cho phép tìm ki m t khóa có trong t p tin đang xem. n u không thì b n s ph i nh n phím <Space> cho đ n khi h t t p tin (ch ng may n u nó quá dài thì b n s m t r t nhi u th i gian). cho phép s d ng các phím đi u khi n con tr (<↑>. vì s “l c soát” t t các thư m c k c nh ng h th ng t p tin g n vào. Câu l nh find có th tìm ki m t p tin theo tên. Ngoài <Space> và <Enter> còn có m t vài phím đi u khi n khác. chúng ta đã nói v đi u này khi nói v h th ng tr giúp man. 4. Nh n phím <Enter> đ đ c m t dòng ti p theo. trong đó l nh less cho phép tìm ki m theo hai hư ng: t trên xu ng dư i và ngư c l i. thì s hi n th đo n văn b n tương ng sao cho dòng tìm th y n m trên cùng. theo kích thư c.4. Cú pháp chung c a câu l nh find có d ng sau: find [danh_sách_thư_m c] tiêu_chí_tìm_ki m Trong đó tham s “danh sách thư m c” xác đ nh nơi tìm ki m t p tin mong mu n. t c là dùng đ “c ng” các t p tin.7 Câu l nh more và less Câu l nh cat cho phép đưa ra màn hình (đ u ra tiêu chu n) n i dung c a b t kỳ t p tin này. <PgUp>. Hãy nh l i. sau đó nh p vào “string” vào dòng “/” cu i màn hình.

txt. H. ˆ “a*p” tương ng v i anhchup và anhchep. Trong ví d này. thì tìm ki m s b t đ u t thư m c hi n th i và đi sâu vào trong các thư m c con. Và b i vì m u tên t p tin không ch s d ng cho câu l nh find mà còn s d ng cùng v i nhi u câu l nh khác (bao g m c nh ng câu l nh đã nói đ n: chmod. Trong hai d u ngo c này đ t danh sách các ký t (có th d ng kho ng12 ) có th g p.*” tương ng v i t t c nh ng t p tin n (trong đó có thư m c hi n th i “. ˆ “*. “. c.*” ch tương ng v i nh ng t p tin và thư m c có d u ch m (. mà t p tin có th n m trong. ˆ “*a*” tương ng v i May và march.txt. “)”. taptin9. Ngư i dùng thư ng th c hi n tìm ki m theo tên t p tin như ví d trên. N u không ch ra m t thư m c nào. Ký t “*” s d ng đ thay th cho b t kỳ dòng ký t nào. Ph n đ u này là tham s b t đ u b ng “–”. cp.. 7. 5. “(”. 6.” ho c “!”.” và thư m c m “. đây tiêu_chí_tìm_ki m có d ng “–name tên_t p_tin”. taptin2. Ngoài “*” và “?” trong Linux còn s d ng các d u ngo c vuông ([]) đ t o “m u tên”. cat. mv). ch tùy ch n -name có th s d ng tùy ch n -path. T t nhiên đây ch đưa ra nh ng thông tin th t ng n g n v “m u tên” t p tin và các ký t thay th . J. chgrp.84 Làm quen v i h th ng t p tin ext3fs (và chuy n gì x y ra n u t c đ đư ng truy n th p)./l*es’ s tìm th y trong thư m c hi n th i thư m c con l4u/images. rm. câu l nh: [user]$ find . Ví d . Ví d : [user]$ find /usr/bin /sbin /bin /usr/local/bin -name cp Ph n đ u c a tiêu_chí_tìm_ki m xác đ nh xem chương trình find ph i tìm cái gì. Có th làm s kh i lư ng công vi c. ch tên c a t p tin ho c thư m c chúng ta s d ng m t “m u tên”. ˆ “. T t c các tham s đ ng trư c tiêu_chí_tìm_ki m đư c coi là tên thư m c c n “l c soát”. K. nên chúng ta c n chú ý và dành th i gian đ nghiên c u các quy đ nh s d ng và vi t “m u tên”.) ho c cu i cùng. vì th taptin?. 4. Trong đa s trư ng h p m u tên t p tin đư c t o ra nh các ký t đ c bi t “*” và “?”. Hãy chú ý là không có kho ng tr ng trong c hai ví d k trên. n u dùng m t danh sách nh ng thư m c. -path ’ . Ví d [xyz]* tương ng v i t t c nh ng tên t p tin b t đ u b ng a.”). đ thay th cho thư m c g c.txt. b. Còn *[G-K4-7] tương ng v i nh ng t p tin có tên k t thúc b ng G. chown. gi a tên Ký t “?” ch thay th m t ký t b t kỳ. Trong Linux: ˆ “*” tương ng v i t t c các t p tin tr nh ng t p tin n.txt s tương ng v i các tên sau (taptin1. B n đ c có th tìm th y thông tin chi ti t hơn v “m u 12 interval . khi đó câu l nh s tìm ki m s tương ng c a tên t p tin đ y đ bao g m c đư ng d n ch ra. I.

f (t p tin thư ng). –type d ng_t p_tin Tìm t p tin d ng ch ra. N u không ch ra phép lôgíc c th . thì có th b đi d u ngo c. Còn bây gi sau khi đã làm quen v i “m u tên” t p tin.4. thì có th dùng tiêu chí tìm ki m như sau: (-name *.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c 85 B ng 4. [user]$ find ~/projects \( \( -name *. p ( ng có tên pipe). Nh ng tiêu chí tìm ki m đơn gi n khác b n có th tìm th y trong trang man c a câu l nh find ho c trong tài li u LPI tutorial nói trên. Ví d .odt) ho c (-name *. Giá tr Tìm t p tin có tên tương ng v i m u_tên. ho c l (liên k t m m). C n nói r ng t nh ng tiêu chí đơn gi n có th t o ra nh ng tiêu chí ph c t p hơn nh các phép lôgíc and.tex \) -or \( -size -200 \) \) 14 đ trong d u ngo c vì chúng ta bi t r ng trong Linux không có khái ni m ph n m r ng t p tin. d (thư m c). n u b n đ c mu n tìm thư m c theo tên c a nó thì có th dùng l nh: [user]$ find /usr/share -name man1 -type d ho c dùng tiêu chí ph c t p: [user]$ find /usr/share \( -name man1 -and -type d \) Trong ví d sau chúng ta tìm t p tin theo tiêu chí như sau: ho c tên t p tin có “ph n m r ng” *. n u b n mu n tìm t t c nh ng t p tin có “ph n m r ng”14 là . Trư c d u ngo c c n đ t m t d u g ch chéo ngư c (\). chúng ta quay tr l i v i câu l nh find và nói chi ti t hơn v nh ng kh năng có th c a tiêu chí tìm ki m. ho c kích thư c t p tin nh hơn 200KB. Ví d . t c là có th dùng m t trong hai cách ghi: (-name *.tex.tex -or -name *.odt). or ho c phép ph đ nh (ký hi u là d u ch m than “!”). D ng t p tin đư c xác đ nh b ng m t trong các ký t sau: b (thi t b kh i). ch không ph i theo kh i.net/ projects/vnoss. Có th s d ng k t h p như v y m t s lư ng b t kỳ các tiêu chí k c tiêu chí ph c t p. c (thi t b ký t ). . Tìm t p tin thu c v nhóm ch ra.tex. còn sau d u ngo c c n đ t m t kho ng tr ng.org (trong đó có tôi) th c hi n có trên http://sourceforge. Tùy ch n –name m u_tên –group tên –size s [c] tên” t p tin trong tài li u IBM LPI tutorial b n d ch ti ng Vi t do nhóm c ng tác c a vnoss. charater).odt và . –mtime s _ngày Tìm t p tin đư c thay đ i l n cu i cùng trư c s _ngày ch ra. Tìm t p tin có c b ng s kh i 512 byte 13 . N u ch dùng m t phép lôgíc and ho c !.tex -name *. M t vài ví d đơn gi n c a tiêu chí tìm ki m có trong b ng 4. còn phép lôgíc or và các tiêu chí ph c t p hơn thì c n d u ngo c.tex -and -name *. thì coi như dùng and. N u sau s có ký t c thì có nghĩa là kích thư c đư c tính theo byte (ký t .4: Tiêu chí tìm ki m c a câu l nh find. –newer m u Tìm t p tin đư c thay đ i sau khi thay đ i t p tin có trong m u.4.odt).

ch -exec có th dùng -ok. thì hãy dùng câu l nh sau: [user]$ find . Các t p tin thu đư c s có tên g m ph n đ u (prefix) này và hai ch thêm vào đ chúng không trùng . -type f -atime +365 -exec rm {} \.6. Và b n mu n sao chép t p tin này qua m t máy khác nhưng l i không có m t k t n i m ng. Đương nhiên là chưa ph i t t c nh ng kh năng c a l nh này đư c li t kê ra đây. Do đó có th chia t p tin này thành hai ph n m i ph n nh hơn 700MB sau đó s g p chúng l i. Hãy tìm hi u trong trang tr giúp man ho c m t cu n sách dày c p nào đó v Linux. Nhưng t p tin này không th n m g n trên m t CD (dung lư ng kho ng 700MB). t c là luôn luôn đư c dùng khi không ch ra thao tác nào như trong các ví d trư c đây. Đ làm đư c vi c này chúng ta có th s d ng l nh split. Và cũng không có ghi DVD mà ch có ghi CD. có ích và là m t công c tìm ki m t t trong h th ng t p tin. N u không có d u “+” và d u “–” thì tìm t p tin có giá tr c a tham s b ng s đưa ra. Và hãy c n th n khi s d ng nh ng kh năng c a câu l nh này như g i nh ng câu l nh khác đ th c hi n trên t t c nh ng t p tin tìm th y. Ví d .tex -print dùng đ đưa ra màn hình danh sách tên c a t t c nh ng t p tin tìm th y cùng v i đư ng d n đ y đ đ n t p tin. Hãy nh r ng s thay đ i thư ng là m t chi u. Ví d đơn gi n nh t là thao tác –print. kho ng 1.2GB. L y ví d b n có m t t p tin phim d ng mpg l n. Tham s c a l nh này là tên c a t p tin ban đ u và ph n đ u (prefix) tên c a các t p tin s t o ra. khi đó trư c khi th c hi n câu l nh cmd cho m i t p tin tìm th y h th ng s h i l i xem b n có mu n th c hi n th t không.9 Câu l nh split Đôi khi chúng ta c n chia m t t p tin l n thành t ng ph n nh . Trong trư ng h p này s th c hi n câu l nh cmd đ i v i t t c nh ng t p tin tìm th y. Câu l nh split cho phép sao chép t p tin b ng cách chia chúng ra thành t ng ph n nh theo kích thư c đã đ nh.) có d u g ch chéo ngư c “\” trư c (chúng ta s hi u rõ hơn tác d ng c a d u g ch chéo ngư c trong chương ngay sau). 4. Trong đó cmd là m t câu l nh b t kỳ nào đó c a h v shell. Tương t d u “+” có nghĩa là c n tìm t p tin có giá tr c a tham s l n hơn s đưa ra. Nói chung câu l nh cmd là m t câu l nh r t m nh. Có nghĩa r ng c n tìm t p tin có giá tr c a tham s nh hơn s đưa ra. n u b n mu n xóa t t c nh ng t p tin trong thư m c hi n th i mà ngư i dùng không “đ ng” đ n trong vòng 365 ngày ho c lâu hơn. D u này có th s d ng v i b t kỳ tham s có giá tr s nào trong tiêu chí tìm ki m c a câu l nh find. Đ k t thúc ph n v câu l nh find này. Sau cmd {} là d u ch m ph y (. [user]$ find ~/projects -name *.86 Làm quen v i h th ng t p tin ext3fs Trong ví d cu i cùng này hãy chú ý r ng trư c giá tr kích thư c t p tin có d u “–”. Thao tác này đư c dùng theo m c đ nh. c n nói thêm r ng sau tiêu chí tìm ki m có th đưa ra ngay thao tác x lý t t c nh ng t p tin tìm th y. M t ví d khác là thao tác -exec cmd {}.

6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c 87 nhau: ‘aa’. Công c đơn gi n nh t trong s này là l nh cmp (compare). phiên b n 0. Vì th nh ng công c dùng đ so sánh t p tin là c n thi t và t t nhiên là có trong Linux.9.4. còn n u chúng khác nhau thì đưa ra s th t c a dòng và byte ch có s khác nhau. Ngoài các tham s có th thêm vào tùy ch n -b đ xác đ nh kích thư c c a các t p tin t o ra (tính theo byte). 4. T t nhiên thông tin mà l nh cmp đưa ra hơi ít đ có th quy t đ nh ch n t p tin nào trong s hai t p tin này. phimab) lên hai đĩa CD-R(W). Chúng ta có th chuy n hư ng báo cáo này vào m t t p tin: . N u không đưa ra ph n đ u. Đ gi i quy t bài toán đã đưa lúc đ u thì c n ch y l nh: [user]$ split -b 650m phim.mpg Sau đó có th xóa đi các t p tin phimaa.9. . v.3 --> 18 tháng 09 năm 2006. ‘xab’. Ch c n cho câu l nh này bi t tên hai t p tin mà b n mu n so sánh. (không có kho ng tr ng và các d u ch m gi a ph n đ u và nh ng ch cái này). phiên b n 0. . L nh này ch so sánh n i dung c a hai t p tin theo t ng byte: [user]$ cmp t p_tin1 t p_tin2 N u hai t p tin hoàn toàn trùng nhau. ‘ad’. ‘xad’ v. Sau -b là m t s và sau đó là m t ch cái: k (kích thư c tính theo KB) ho c m (tính theo MB). ‘xac’. . ‘ac’.6. t c là s thu đư c các t p tin ‘xaa’. r i đưa chúng (có nghĩa là dùng l nh cp) lên máy th hai vào m t thư m c nào đó.10 So sánh các t p tin và l nh patch Có th b n không đ ý nhưng khi làm vi c v i máy tính công vi c so sánh n i dung c a hai t p tin khác nhau g p m t cách thư ng xuyên. Vì th còn có th s d ng câu l nh diff đ bi t đư c s khác nhau gi a hai t p tin đây là gì. Là vì có th sao chép t p tin m t cách d dàng. N u không đưa ra tùy ch n này thì theo m c đ nh kích thư c c a t p tin thu đư c b ng 1MB. r i sau đó quên luôn là t p tin nào m i hơn ho c t t hơn. Ví d : teppi82@ThinhQuyen:~> diff ChangeLog ChangeLog2 1c1 < 11 tháng 09 năm 2006. t p tin nào quan tr ng hơn. phimab.v. ‘ab’. thì theo m c đ nh s d ng ‘x’. thì l nh hoàn thành công vi c mà không đưa ra thông báo gì. .3 Thông báo v s khác nhau s hi n th trên màn hình (đ u ra tiêu chu n). Cu i cùng ph c h i t p tin ban đ u b ng l nh: [user]$ cat phim* > phim.mpg phim Sau đó dùng chương trình ghi đĩa sao chép hai t p tin thu đư c (phimaa.v.

2. vì đã có nh ng chương trình ti n ích như Midnight Commander và các .diff. Thông thư ng kh năng này đư c dùng khi phân ph i b n c p nh t c a chương trình ng d ng. Có th d dàng hi u đi u này n u bi t r ng k t qu báo cáo c a diff v s khác nhau gi a hai t p tin có th s d ng cho câu l nh patch.c. Bây gi c n đưa nh ng thay đ i đã làm đ n cho ngư i dùng.9. Sau đó nhà phát tri n s a các l i và c p nh t chương trình r i lưu mã ngu n trong m t t p tin khác xvnkb-0. Trong trư ng h p chương trình ng d ng l n thì s ti t ki m này là đánh k . t c là k t qu báo cáo t o ra b ng l nh: [chuoi]$ diff xvnkb-0. Mà s phát tri n c a ng d ng mã m m i là đi m chính. T t nhiên là ch c n g i cho ngư i dùng nh ng thay đ i.diff teppi@ThinhQuyen:~> more ChangeLog. Đã có xvnkb-0. Bài toán này là do patch gi i quy t.diff > xvnkb-0.2.c.c.9.9. Tuy nhiên ti t ki m cho ngư i dùng không ph i là ng d ng chính. L y ví d đơn gi n (“m t cách ngu ng c”).diff Như v y t t nhiên là kích thư c c a t p tin xvnkb.diff. K t qu so sánh khi này s hi n th d ng hai c t.2.9.9.3 Đ đánh giá phiên b n c a m t t p tin thì thu n ti n hơn n u s d ng câu l nh sdiff. n u không có trong t p tin th hai – m t ký t “>”.c s thu đư c t p tin xvnkb-0.diff s nh hơn nhi u so v i xvnkb-0.2.c xvnkb-0.8. phân cách nhau b i các kho ng tr ng.c.2. phiên b n 0.2. ch c n ch y l nh: [user]$ patch xvnkb-0.2. N u hai c t có cùng s th t khác nhau.3 --> 18 tháng 09 năm 2006.2. 4.8.9.diff 1c1 < 11 tháng 09 năm 2006. Tuy nhiên sau khi nh n đư c t p tin *.diff thì c n ph i đưa nh ng s a đ i đã làm vào phiên b n hi n th i. có ch a mã ngu n c a chương trình này trên ngôn ng C.c và xvnkb. phiên b n 0. Nhưng thư ng s d ng nh t trên các h th ng UNIX và Linux v n là câu l nh diff.9. s ti t ki m đư c dung lư ng truy n t i qua m ng Internet n u ch g i xvnkb.c > xvnkb. m t chương trình ng d ng nào đó đư c đưa cho ngư i dùng d ng t p tin xvnkb-0. N u m t dòng nào đó ch có trong t p tin th nh t thì nó đư c đánh d u b ng m t ký t “<”.2. Còn có câu l nh diff3 cho phép so sánh 3 t p tin m t lúc.c. thì chúng s cách nhau b i m t d u g ch th ng đ ng “|”.c.c xvnkb.8.88 Làm quen v i h th ng t p tin ext3fs teppi@ThinhQuyen:~> diff ChangeLog ChangeLog2 > ChangeLog. M i nhà phát tri n s đóng góp đo n mã c a mình b ng chính cách này. Chúng ta nh r ng m t ng d ng mã m đư c phát tri n b i c m t nhóm các nhà phát tri n và c ng đ ng.c.8.c.7 Các câu l nh lưu tr và nén t p tin Khi s d ng Linux r t có th b n s ít làm vi c v i ph n l n các l nh h v shell.

pkzip. --get L y t p tin ra kh i kho (“gi i phóng”). . M c dù không ai c m b n s d ng các chương trình arj. N u mu n t o t p tin này trên đĩa c ng. lha. 4. Nhưng truy n th ng c a Unix đó là tar và gzip và ph n l n mã ngu n (và không ch mã ngu n) c a các chương trình ng d ng đư c phân ph i d ng này. N u b n làm vi c v i các t p tin kho trên đĩa ch không ph i v i băng ghi (đây là đa s trư ng h p s d ng máy tính cá nhân). --concatenate Thêm t p tin vào kho đã có. --delete Xóa t p tin kh i kho (không dùng cho băng ghi). Chúng s giúp b n làm vi c nhanh hơn v i nh ng t p tin nén thư ng g p trong Internet. Nh ng tùy ch n khác (tr 8 tùy ch n b t bu c k trên) là không c n thi t. GNOME. -t. và s th y đây không ph i là m t y u đi m c a Linux mà còn là đi m m nh n u bi t cách k t h p “nh p nhàng” hai chương trình này. --compare Tìm s khác nhau gi a các t p tin trong kho và trên h th ng t p tin (so sánh). -u. Ví d . -r. --update Ch thêm nh ng t p tin m i hơn b n sao trong kho (c p nh t kho).v.4.1 Chương trình tar Nh ng ngư i dùng đã quen v i nh ng chương trình nén d ng winzip (đưa t t c t p tin vào m t “kho” r i sau đó nén chúng) thì có th s h i “T i sao l i c n hai chương trình?”. chúng ch dùng đ thêm vào các ch c năng ph c th nào đó.7 Các câu l nh lưu tr và nén t p tin 89 môi trư ng giao di n đ ho như KDE. cũng gi ng như samurai ph i bi t s d ng ki m v y. tùy ch n v b t bu c chương trình ph i đưa ra danh sách các t p tin đưa vào kho.7. . sau đó ch ra tên t p tin. thì nh t đ nh ph i dùng tùy ch n f. -d. thì c n s d ng l nh tar v i tùy ch n f. -c. --append Thêm t p tin vào cu i kho. Tên chương trình tar có nghĩa là tape archiver. --list Đưa ra danh sách các t p tin trong kho. rar v. --catenate. Nhưng là ngư i dùng Linux th c s b n cũng nên bi t nh ng câu l nh nén và gi i nén làm vi c trong h v shell.5). -x. Và các ti n ích và môi trư ng đó giúp b n làm vi c d dàng v i các t p tin nén s nói t i. Chương trình tar có 8 tùy ch n khác v i nh ng tùy ch n còn l i ch khi ch y l nh tar thì c n ph i đưa ra m t trong s 8 tùy ch n này. Tám tùy ch n này xác đ nh các ch c năng chính c a chương trình (xem b ng 4. B ng 4. Phương ti n chính đ làm vi c v i các t p tin nén trong UNIX và Linux là hai chương trình tar và gzip. --diff. --extract. Chúng ta s tìm th y câu tr l i cho câu h i này sau khi đ c xong hai ph n t i đây. --create T o kho m i. Vì th bi t cách làm vi c v i tar và gzip đó là danh d c a b t kỳ ngư i dùng Linux nào. t c là chương trình này không nén các d li u mà ch k t h p chúng vào m t t p tin chung sau đó ghi t p tin này lên cách băng nh (tape) thư ng dùng đ lưu tr thông tin. .5: Nh ng tùy ch n chính c a tar Tùy ch n Ý nghĩa -A.

Cũng trong ví d này n u không ch ra tên thư m c thì s lưu t t c các t p tin và thư m c con c a thư m c hi n th i. N u ch y l nh sau: [user]$ tar cvf tên_kho . ho c “lưu toàn b c u trúc thư m c”).tar trong thư m c hi n th i. .*” thì s ch lưu nh ng t p tin n m tr c ti p trong thư m c projects và nh ng thư m c con có d u ch m trong tên (ít g p). C n chú ý là trong ví d trên n u ch “*” đ t “*. f. c n dùng l nh: [user]$ tar xvf tên_kho Hi n th danh sách các t p tin trong kho b ng l nh: [user]$ tar tvf tên_kho | less Gi i phóng m t t p tin nào đó b ng: . mà còn lưu nh ng t p tin c a thư m c m . mà ch cho bi t m t s dòng l nh c n thi t nh t đ làm vi c v i các kho t p tin.tar projects/* ho c th m chí còn đơn gi n hơn: [user]$ tar cf projects. Như v y s có ích hơn trong th i gian này. . Đ t o m t kho t p tin tar t vài t p tin c n s d ng m t trong hai l nh sau: [user]$ tar -cf tên_kho t p_tin1 t p_tin2 [user]$ tar cf tên_kho t p_tin1 t p_tin2 trong đó tùy ch n c (t bây gi tôi s b đi d u g ch ngang “–” phía trư c tuỳ ch n) cho bi t chương trình c n t o ra (create) kho t p tin. nh ng thư m c con còn l i c a projects s không đư c lưu./. Tôi s không đưa ra mô t t t c các tùy ch n c a l nh tar. Trong ph n tên t p tin mu n lưu vào kho có th s d ng các “m u tên”. Ví d .90 Làm quen v i h th ng t p tin ext3fs Có th li t kê các tuỳ ch n m t ch cái (c. Kho này không ch lưu t t c nh ng t p tin có trong thư m c projects mà còn lưu t t c nh ng thư m c con c a nó cùng v i t t c nh ng t p tin n m trong chúng (chúng ta dùng thu t ng “lưu đ quy”. thì ch c n g i l nh: [user]$ tar cf projects. ) li n nhau và d u g ch ngang (–) phía trư c có th dùng nhưng không nh t thi t ph i có. Bây gi b n đ c đã bi t cách t o kho t p tin. đ t o ra kho ch a t t c các t p tin c a m t thư m c con c a thư m c hi n th i.tar projects Câu l nh này s t o ra kho projects. . bao g m c các ký t thay th đơn gi n như “*” và “?”. Nh vào tính năng này có th lưu vào kho ngay l p t c nhi u t p tin b ng m t câu l nh r t ng n. còn tuỳ ch n f cho bi t là kho này ph i đư c t o d ng t p tin có tên tên_kho phía sau tùy ch n. Đ l y (gi i phóng) t t c t p tin ra kh i kho.* thì không ch lưu t t c các t p tin và thư m c con c a thư m c hi n th i. gi s projects. Chúng ta s th y ví d t i đây. Trong t p tin kho c u trúc thư m c c a projects v n đư c gi nguyên.

. Ph c h i l i b ng l nh: [user]$ tar xpvf tên_kho N u có khó khăn khi s d ng l nh tar. thì v n có th sao lưu d li u quý báu c a mình lên đĩa m m b ng: [user]$ tar Mcvf /dev/fd0 thư_m c r i ph c h i thư m c b ng l nh: [user]$ tar Mxpvf /dev/fd0 Ho c đơn gi n hơn. B i vì chương trình gzip không có kh năng lưu nhi u t p tin vào trong m t t p tin. Bây gi chúng ta s li t kê m t vài tùy ch n có ích c a chương trình gzip vào b ng 4. Nhưng đó là nh ng t p tin hoàn toàn khác nhau! Hãy s d ng l nh ls -i đ ki m tra ch s inode c a chúng. Đ nén t p tin này l i thư ng s d ng câu l nh gzip. Đ gi i nén t p tin hãy dùng m t trong hai câu l nh sau: [user]$ gzip -d tên_t p_tin ho c [user]$ gunzip tên_t p_tin T p tin ban đ u sau khi nén s b xóa. . ). DVD. Chúng ta có c m giác như t p tin đư c “đưa ra. ch còn l i t p tin đã nén.4. nên thư ng dùng gzip đ nén nh ng kho t p tin do tar t o ra.6. T t nhiên còn có nh ng ti n ích sao lưu chuyên dùng khác. .7 Các câu l nh lưu tr và nén t p tin [user]$ tar xvf tên_kho tên_t p_tin 91 Chương trình tar là phương ti n thu n l i đ t o các b n sao lưu tr (sao lưu) c a t p tin. hãy đ c tr giúp man c a nó ho c đ c nh ng thông tin hi n ra khi ch y tar v i tùy ch n --help 4. ftp. đưa vào” m t kho. Nhưng khi này m i t p tin s đư c nén riêng r . Hơn n a còn có th s d ng “k t h p” hai chương trình này.7. .2 Chương trình gzip M c dù chương trình tar t o ra kho t p tin. Còn khi gi i nén thì t p tin nén s b xóa. nó không nén kho này l i mà ch k t h p các t p tin riêng r vào m t t p tin chung. Chúng ta s xem xét v n đ này ngay sau. Trư ng h p đơn gi n nh t c a l nh này trông như sau: [user]$ gzip tên_t p_tin Trên dòng l nh có th đưa ra cùng lúc vài tên ho c “m u tên” t p tin. nhưng c khi b n đ c không bi t nh ng ti n ích này. t o m t t p tin kho ch a: [user]$ tar cvf tên_kho thư_m c r i sao chép t p tin tên_kho lên m t thi t b lưu tháo r i ho c thư m c trên m ng nào đó (CD. ch không t o m t t p tin chung. nhưng như đã nói trên. ch còn l i t p tin bình thư ng. flash.

--list Đưa ra tên t p tin n m trong t p tin nén. vì cơ ch nén s d ng ph n đ u (head) có kích thư c 50 byte. Chương trình bzip2 làm vi c tương t như gzip.bz2. --best M c đ nén m nh hơn. -1. Theo m c đ nh . --recursive Nén toàn b (đ quy) thư m c. —-suffix Thêm ph n sau (suffix) vào tên t p tin nén. -t. -r.5%. quy n truy c p và có th c ch s h u như t p tin ban đ u.suf s d ng ph n sau là gz. –S . 4. -l. -L. --name Lưu ho c ph c h i tên ban đ u và th i gian t o t p tin. --fast Nén nhanh (m c đ nén th p). Do đó có kh năng ph c h i nh ng tính ch t này c a t p tin khi gi i nén.suf. --help Hi n th tr giúp ng n g n v cách s d ng chương trình. Đi u này có th x y ra đ i v i nh ng t p tin có kích thư c nh hơn 100 byte. -v. t c là thay th m i t p tin đưa vào dòng l nh b ng phiên b n đã nén c a t p tin đó.92 Làm quen v i h th ng t p tin ext3fs B ng 4. nhưng thêm vào ph n cu i là .bz2 thay th b ng tên_t p_tin ˆ tên_t p_tin. thì kích thư c c a t p tin tăng lên kho ng 0. kích thư c c a nó và m c đ nén (tính theo %). trong đó có các t p tin nén. Nh ng t p tin g m m t chu i ng u nhiên (random) c a các ký t . -9. --verbose Đưa ra các thông báo ph trong khi làm vi c.3 Chương trình bzip2 Trong th i gian g n đây ngư i dùng Linux thư ng s d ng thêm m t chương trình nén n a đ thay th cho gzip – chương trình bzip2.6: Nh ng tùy ch n chính c a chương trình gzip Tùy ch n Ý nghĩa -h. Chương trình này nén m nh hơn (có m c đ nén cao hơn. Khi gi i nén bzip2 s đoán tên c a t p tin s t o ra theo quy lu t sau: ˆ tên_t p_tin. S d ng trong trư ng h p có đưa ra “m u tên” t p tin.bz thay th b ng tên_t p_tin . Trong m t s trư ng h p t p tin nén có th còn l n hơn theo kích thư c so v i t p tin ban đ u. --version Hi n th phiên b n c a chương trình. --no-name Không lưu ho c không ph c h i tên ban đ u và th i gian t o t p tin. Các b n phân ph i Linux m i đã có cài đ t s n chương trình này. -q. -V. N u t p tin này không ph i do bzip2 t o ra thì chương trình s không gi i nén mà đưa ra l i c nh báo. --quiet B đi nh ng c nh báo. -N. Kích thư c t p tin thu đư c nh hơn nhưng t t nhiên là s lâu hơn.7. -n. --test Th (ki m tra) tính nguyên v n c a t p tin nén. --license Hi n th s phiên b n và b n quy n c a chương trình. Câu l nh bunzip2 ho c bzip2 –d gi i nén t p tin ch ra. t o ra các t p tin nh hơn) và làm vi c nhanh hơn. Chú ý: n u s d ng ph n sau khác “gz” thì khi gi i nén chương trình s đưa ra thông báo l i d ng “unknown suffix – ignored” (ph n sau không bi t – l đi). T p tin nén có th i gian s a đ i.

sj teppi82@ThinhQuyen:~> bunzip2 2. Theo m c đ nh bzip2 không ghi chèn lên t p tin đã có trên đĩa. Tùy ch n này c n thi t vì trên th c t bzip2.7. --decompress B t bu c gi i nén t p tin. –L. --force Ghi chèn lên t p tin đã có. N u mu n ghi chèn thì hãy dùng tùy ch n này.tar ˆ tên_t p_tin. --verbose Đưa ra các thông báo ph trong khi làm vi c (ch có ý nghĩa chu n đoán). -q.out Các tuỳ ch n c a bzip2 r t gi ng v i tùy ch n c a gzip nhưng không ph i t t c .tbz2 thay th b ng tên_t p_tin. -v. -t. -s. M i chương trình tuỳ theo “ph n m r ng” t p tin mà quy t đ nh xem s làm gì v i t p tin đó. --compress B t bu c nén t p tin (xem trên). —-license. -z. Tôi s đưa ra m t danh sách ng n nh ng tùy ch n c n thi t nh t trong b ng 4. -f. 93 Ví d : teppi82@ThinhQuyen:~> bzip2 2 teppi82@ThinhQuyen:~> mv 2. Ví d : [user]$ bzip2 -.-tên_t p_tin Bây gi đã đ n lúc chúng ta h c cách k t h p tar v i hai câu l nh gzip và bzip2 đ làm vi c nhanh và có hi u qu hơn. bunzip2 và bzcat ch là m t chương trình.sj bunzip2: Can’t guess original name for 2. —-version Tham s đ ng sau hai d u g ch ngang (--) và m t kho ng tr ng đư c coi là tên t p tin. --test Th (ki m tra) tính nguyên v n c a t p tin nén.tar ˆ tên_t p_tin khác thay th b ng tên_t p_tin. Hi n th s phiên b n và b n quy n c a chương trình. --keep Gi gìn (không xóa) t p tin ban đ u khi nén ho c gi i nén. –V.using 2. --small Gi m yêu c u đ i v i dung lư ng b nh c n s d ng b ng cách gi m t c đ nén.4. Ch nên dùng tùy ch n này trên nh ng máy tính cũ có ít b nh (8MB ho c ít hơn). dù tham s có m t d u g ch ngang đ u.sj -.7 Các câu l nh lưu tr và nén t p tin ˆ tên_t p_tin.tbz thay th b ng tên_t p_tin.out.sj. .bz2 2.7: Nh ng tùy ch n chính c a chương trình bzip2 Tùy ch n Ý nghĩa -d. B ng 4. Có l chúng ta không bao gi c n đ n tùy ch n này ho c ít nh t là hy v ng như v y. -k. Tùy ch n -d b đi cơ ch này và b t bu c chương trình ph i gi i nén t p tin đã ch ra. --quiet B đi nh ng c nh báo ít ý nghĩa.

tar.9.tar.9.rar thì cũng đ ng v i ch y sang nh m t máy s d ng Windows đ gi i nén.2. Do đó c n đ t tên rõ ràng cho nó cùng v i ph n đuôi .9. ví d xvnkb-0. Đ gi i nén t p tin này thông thư ng b n c n dùng hai câu l nh sau ti p n i nhau: [user]$ gzip -d xvnkb-0.2.gz. Đ có thêm thông tin hãy tìm hi u trang tr giúp man ho c các tài li u HOWTO tương ng.gz vào tên c a t p tin thu đư c. B n có th th các chương trình unzip và unrar có trên h th ng Linux c a mình.gz thư_m c C n chú ý r ng trong trư ng h p này chương trình s không t đ ng thêm ph n đuôi . nhưng s nhanh hơn n u chúng ta ch c n s d ng m t câu l nh đ có th t o ra m t t p tin nén.9.9. Tôi ch c ch n là b n s t gi i quy t đư c v n đ .bz2 thư_m c Tôi nghĩ r ng nh ng thông tin k trên đã đ đ làm vi c m t cách có hi u qu v i các chương trình nén tar.2. S d ng k t h p tar và bzip2 là hoàn toàn tương t . hay gi i nén m t t p tin. gzip ho c bzip2 vì b n là ngư i dùng Linux! . tôi mu n nói thêm r ng. Cách s d ng nh ng l nh này h t s c đơn gi n.gz K t qu thu đư c là hoàn toàn như trên tr m t đi m: trong trư ng h p dùng 2 câu l nh thì trên đĩa s gi l i t p tin trung gian (xvnkb-0.tar.94 Làm quen v i h th ng t p tin ext3fs 4. gzip và bzip2. Đ k t thúc ph n v nh ng chương trình làm vi c v i t p tin nén này.gz.tar). T c là.2. Vi c t o t p tin b ng cách s d ng k t h p tar và gz cũng đư c th c hi n b ng tùy ch n z: [user]$ tar czvf tên_t p_tin. Hãy tư ng tư ng b n nh n đư c m t t p tin.tar.tar Nhưng trong s nh ng tùy ch n c a chương trình tar còn có m t tuỳ ch n đ c bi t z cho phép gi i nén t p tin b ng chương trình gzip (th c hi n vai trò c a l nh th nh t trong hai l nh k trên). n u “không may” b n nh n đư c m t t p tin d ng *.tar. ch c n đưa vào dòng l nh tên c a t p tin.tar.tar.7. Và đ ng quên ch t o ra các t p tin nén b ng tar. ngư i dùng không c n ph i gõ thêm m t l nh xoá t p tin. nhưng c n dùng tùy ch n j c a tar đ thay cho tuỳ ch n z.zip hay *.2. Đ gi i nén t p tin k trên ch c n dùng m t câu l nh như sau: [user]$ tar xzvf xvnkb-0. gi i nén t p tin b ng l nh: [user]$ tar xjvf tên_t p_tin.4 S d ng k t h p tar v i gzip và bzip2 T t nhiên không ai ngăn c n b n s d ng riêng r các câu l nh tar v i gzip và bzip2.bz2 và t o t p tin nén b ng: [user]$ tar cjvf tên_t p_tin.gz [user]$ tar xvf xvnkb-0. Như v y cách th hai còn có m t ưu đi m n a là không gi l i các t p tin trung gian. N u có gì khó khăn hãy th “unzip –help” ho c “unrar –help”.

h th ng t p tin ISO9660 s d ng đ ghi thông tin trên CD-ROM và các h th ng t p tin khác (k c NTFS15 ). thì đ u tiên c n k t n i nó và cây thư m c chung (chúng ta s d ng thu t ng “g n”. Như v y là có th nói g n h th ng t p tin ho c g n đĩa lưu cùng v i các h th ng t p tin có trên nó. Khi chúng ta có m t đĩa lưu m i. 16 15 . Còn m t đi m n a cũng c n nói đ n là Linux có th làm vi c v i nhi u d ng h th ng t p tin khác nhau. Ngoài hai h th ng t p tin này Linux còn có th làm vi c v i các “phiên b n” khác nhau c a h th ng t p tin FAT (FAT16 và FAT32). T o h th ng t p tin d ng ext3fs có nghĩa là t o trên phân vùng này c a đĩa m t siêu kh i (superblock). Vì th ti p theo chúng ta s nói v t o h th ng t p tin trên m t phân vùng. N u dùng chúng thì ch c n b đi ph n -t ext3 ho c -t ext2.ext2.4.8 T o và g n các h th ng t p tin Trong nh ng ph n trư c chúng ta đã đ c p ng n g n m t s câu l nh chính đ làm vi c v i nh ng h th ng t p tin đã đ nh d ng s n.ext3 và các câu l nh tương t . n u ghi nh m b n s b m t d li u. ví d đĩa c ng. Đ u tiên chúng ta s xem xét trư ng h p c n t o h th ng t p tin trên m t phân vùng nào đó (đã có) c a đĩa. m t b ng các mô t inode. xác đ nh quy n truy c p. Bây gi chúng ta s d ng l i v n đ làm sao đ t o ra h th ng t p tin và cách thay đ i nó. N u b n mu n t o h th ng t p tin trên đĩa m m thì c n ch y: [root]# mkfs -t ext3 /dev/fd0 S h tr đ c đã t t. chúng ta c n t o trên đĩa này h th ng t p tin. Vi c t o nh ng phân vùng như v y giúp th c hi n d dàng các thao tác như: sao lưu. mount). nh t là đ i v i nh ng đĩa m i s n xu t g n đây có dung lư ng l n t vài ch c đ n vài trăm GB. Nhưng h th ng t p tin g c c a nó là “h th ng t p tin m r ng” (extfs) phiên b n 2 và 3. Trên các b n phân ph i Linux m i còn có th s d ng các câu l nh mkfs. và các kh i d li u. Cây thư m c c a Linux đư c t o ra t nh ng “cành” riêng r tương ng v i các đĩa khác nhau. Th c hi n t t c nh ng vi c này b ng l nh mkfs16 . T c là khi t o và g n các h th ng t p tin c n luôn luôn nh r ng d ng h th ng t p tin trên các đĩa lưu khác nhau có th không gi ng nhau. Còn c n ph i nói thêm r ng thông thư ng đĩa c ng đư c chia thành các phân vùng. mkfs. Trong trư ng h p đơn gi n nh t ch c n ch y l nh sau: [root]# mkfs -t ext3 /dev/hda2 T t nhiên là c n thay th /dev/hda2 b ng tên c a phân vùng trên máy c a b n. Hãy c n th n khi vi t tên phân vùng. Thư ng nói là cây thư m c đư c t o thành t các h th ng t p tin riêng. Nói như v y vì trong UNIX (và Linux) không có khái ni m “đ nh d ng đĩa” mà s d ng khái ni m “t o h th ng t p tin”. tuy nhiên s h tr ghi lên NTFS chưa th t hoàn h o. nh ng đĩa không b chia có th coi là m t phân vùng.8 T o và g n các h th ng t p tin 95 4. Ví d h th ng t p tin có d ng ext3fs. đ ng th i tăng hi u su t làm vi c và làm gi m kh năng m t thông tin do chương trình gây ra. T c là m i đĩa đư c đ t tương ng v i h th ng t p tin riêng. Đ có th s d ng h th ng t p tin này đ ghi các t p tin.

và dùng làm “thư m c g c” đ i v i h th ng t p tin g n vào (gi ng như nút n i gi a thân cây và cành cây). còn đư ng_d n xác đ nh đi m g n. Vì th t t nh t là dùng các thư m c r ng đã chu n b s n t trư c đ làm “đi m g n” (vì th mà trong tiêu chu n FHS có đ c p đ n thư m c /mnt. thì c n s d ng d ng đ y đ c a l nh mount. N u không có t p tin đó (ch khi nào b n c tình ho c vô tình xóa) ho c trong t p tin không có nh ng d li u c n thi t. Trong h th ng t p tin m i s t đ ng t o ra m t thư m c v i tên lostfound+.96 Làm quen v i h th ng t p tin ext3fs Có th nói r ng chúng ta đã “đ nh d ng đĩa m m”. D ng đơn gi n nh t trong ví d trên c a l nh mount ch làm vi c v i đi u ki n t t c nh ng tham s còn thi u có th tìm th y trong t p tin /etc/fstab. N u không đưa ra tùy ch n -t thì s dùng d ng h th ng t p tin m c đ nh (hi n nay là phiên b n cũ c a ext – ext2fs). như sau: [root]# mount -t d ng_httt thi t_b đư ng_d n trong đó d ng_httt xác đ nh d ng h th ng t p tin trên thi t_b (phân vùng). M i dòng c a t p tin này ch a thông tin v m t h th ng t p tin và g m 6 vùng phân cách nhau b i các kho ng tr ng17 : ˆ Tên thi t b (phân vùng). vì v y đ ng xóa nó. Ph i có ít nh t hai tham s cho câu l nh mount: thi t b (device. N u chưa có hãy t o ra b ng l nh mkdir. Ví d . đ u tiên c n k t n i (g n) nó vào cây thư m c chung b ng l nh mount. C n chú ý là sau khi g n h th ng t p tin vào thư m c /mnt/diaC. thì ngư i dùng không còn truy c p đư c t i n i dung (bao g m c thông tin v ch s h u cũ và quy n truy c p t i chính b n thân thư m c) c a thư m c này n a. Sau khi th c hi n câu l nh mkfs. cũng như tên c a h th ng t p tin m ng NFS (ví d ThinhQuyen:/home/nhimlui – thư m c /home/nhimlui trên máy có tên ThinhQuyen). N i dung cũ c a thư m c không b hu .1). . Đi m g n là m t thư m c đã có trong cây thư m c. Thư m c này đư c chương trình fsck dùng trong nh ng trư ng h p kh n c p. mà ch t m th i b gi u đi. C n ph i có thư m c /mnt/diaC trong cây thư m c. N i dung này s ch “quay tr l i” khi ngư i dùng b g n (unmount) h th ng t p tin ra kh i thư m c. nhưng đi u đó là không nh t thi t. Đ t o ra nh ng đĩa m m có th đ c trên DOS và Windows c n dùng tùy ch n -t v i giá tr vfat ho c nh ng ti n ích đ c bi t khác. b xóa. Có th s d ng tên thi t b có trên máy (ví d /dev/hda10). câu l nh: [root]# mount /dev/hda10 /mnt/diaC s g n h th ng t p tin c a phân vùng /dev/hda10 vào thư m c /mnt/diaC. hãy xem b ng 4. nhưng c n bi t là v i h th ng t p tin ext3fs thì b n không đ c đư c đĩa m m này trên DOS ho c Windows (n u không dùng chương trình ho c driver đ c bi t). s t o ra h th ng t p tin d ng ext3fs trong phân vùng ch ra. T p tin c u hình /etc/fstab ch y u dùng đ g n t đ ng các h th ng t p tin trong quá trình kh i đ ng Linux. tên phân vùng) và đi m g n (mount point). Đ b t đ u làm vi c v i h th ng t p tin m i. 17 Đ ti n đ c các vùng thư ng s p cho th ng hàng.

Hi n nay Linux h tr các h th ng t p tin sau: minix.ext g n t t c các h th ng t p tin tr các d ng smb (Samba19 ) và ext Khi g n h th ng t p tin có trong /etc/fstab. nên t t hơn h t là ch ra d ng m t cách chính xác. Ví d . ch d ng h th ng t p tin trong vùng “d ng h th ng t p tin” và sau tùy ch n -t c a l nh mount có th đ t giá tr auto. sysv. Trong trư ng h p đó câu l nh mount th t xác đ nh d ng c a h th ng t p tin đang g n. proc. ˆ Th t ưu tiên ki m tra h th ng t p tin b ng câu l nh fsck. iso9660. ext. nfs. N u b ng nhau thì s ki m tra song song (t t nhiên n u có th ). hpfs. thì ch c n đưa ra m t tham s : ho c tên c a thi t b (phân vùng) ho c đi m g n. nhưng n u trong vùng các tùy ch n g n có ch ra tùy ch n user. msdos. hãy xem trang man c a dump. ˆ Các tuỳ ch n g n. Theo m c đ nh là rw (đ c và ghi). Vùng này đư c chương trình sao lưu dump s d ng. n u không – s 0. H th ng t p tin v i giá tr nh hơn s đư c ki m tra trư c. Còn có th li t kê m t s d ng phân cách nhau b i d u ph y (. Tuy nhiên trong m t s trư ng h p có th d n đ n l i. ext3. ext2. Ví d . Tên đ y đ bao g m c đư ng d n c a thư m c s g n t p tin vào. Trong câu l nh mount còn có th đưa ra danh sách các d ng h th ng t p tin không c n g n b ng c (flag) no. ncpfs18 . câu l nh: [root]# mount -a -t nosmb. Thông thư ng ch có ngư i dùng cao c p root m i có kh năng g n các h th ng t p tin. umsdos. vfat.sync 0 0 thì b t kỳ ngư i dùng nào cũng có quy n g n h th ng t p tin trên đĩa DVD c a mình b ng câu l nh: [user]$ mount /dev/hdd ho c: [user]$ mount /media/dvd . Kh năng này có ích trong trư ng h p s d ng câu l nh mount v i tham s -a (câu l nh mount v i tham s -a s g n t t c các h th ng t p tin li t kê trong t p tin /etc/fstab). thì t t c m i ngư i dùng s có kh năng g n (b g n) h th ng t p tin đó.).4. n u trong t p tin /etc/fstab có dòng: /dev/hdd /media/dvd auto noauto. N u h th ng t p tin c n đư c sao lưu thì đây ph i có s 1. smb. Có th có các giá tr khác. ˆ M c đ dump. T t c các tham s khác câu l nh mount s l y t t p tin /etc/fstab.8 T o và g n các h th ng t p tin 97 ˆ Đi m g n. xia.user. ˆ D ng h th ng t p tin.

suid.8 có đưa ra thêm m t vài tùy ch n có th s d ng trong câu l nh mount và trong t p tin/etc/fstab (vùng các tùy ch n g n). sync Vào/ra (ghi/đ c) c a h th ng t p tin th c hi n đ ng b (t c th i). exec Cho phép th c hi n các t p tin chương trình n m trên h th ng t p tin này. user Cho phép ngư i dùng bình thư ng g n h th ng t p tin. nosuid Không cho phép dùng “bit thay đ i ID ngư i dùng” và “bit thay đ i ID nhóm”. Tham s c a câu l nh umount là tên thi t b (phân vùng) ho c đi m g n.8: Nh ng tùy ch n chính c a câu l nh mount Tùy ch n Ý nghĩa async Vào/ra (ghi/đ c) c a h th ng t p tin th c hi n không đ ng b (không t c th i). dev Các thi t b kh i và thi t b ký t (byte) trong h th ng t p tin là nh ng t p tin đ c bi t. nosuid. auto Có th g n h th ng b ng câu l nh mount v i tùy ch n -a. nouser C m ngư i dùng bình thư ng g n h th ng t p tin.98 Làm quen v i h th ng t p tin ext3fs B ng 4. nodev Không coi các thi t b kh i và thi t b ký t (byte) trong h th ng t p tin là nh ng t p tin đ c bi t. Thao tác này đư c th c hi n b ng câu l nh umount (không ph i unmount!). nodev. Có th xem tr c ti p t p tin này b ng các chương trình xem t p tin (less. đ c bi t trong trư ng h p m r ng quy n truy c p (ví d thêm quy n ghi cho h th ng t p tin đã g n ch đ c). B ng này n m trên đĩa d ng t p tin /etc/mtab. more ho c b ng câu l nh mount (không có tham s ). N u mu n g n m t h th ng t p tin nào đó và ch cho phép đ c thì c n ch ra tùy ch n r (read only) trên dòng tương ng c a t p tin /etc/fstab (theo m c đ nh s d ng rw. Đ i v i nh ng ngư i dùng này luôn luôn g n v i các tùy ch n noexec. các chia s trong m ng c a Windows . remount Cho phép g n l i h th ng t p tin đã g n. dev. auto. Ch có ngư i dùng đã g n h th ng t p tin và t t nhiên c ngư i dùng cao 18 19 Hãy xem trang man fs đ đ c mô t ng n g n v nh ng h th ng t p tin này. Trong b ng 4. nouser. t c là đ c và ghi). async. ro G n h th ng t p tin ch đ đ c. defaults S d ng các tuỳ ch n theo m c đ nh: rw. Trư c khi b các đĩa tháo r i (đĩa m m. exec. rw G n h th ng t p tin đ đ c và ghi. noauto Ch có th t g n h th ng t p tin. Tùy ch n -a không t đ ng g n h th ng t p tin này. Thư ng s d ng đ thay đ i các tùy ch n g n. ho c s d ng câu l nh mount v i tham s -r Câu l nh mount và umount h tr b ng các h th ng t p tin đã g n. suid Cho phép dùng “bit thay đ i ID ngư i dùng” và “bit thay đ i ID nhóm”. flash) ra kh i máy thì c n “tháo” (b g n) các h th ng t p tin có trên các đĩa tháo r i này.

openSUSE) s t o s n cho b n nh ng đi m g n này. n u b n có m t đĩa m m. CD. Đ thay m t đĩa r i khác thì đ u tiên c n b g n (“tháo”) đĩa đã có ra r i m i g n ti p đĩa th hai. . Ví d . Ch có th b g n h th ng t p tin khi không có t p tin nào c a nó m ra. ) trên Linux có m t chút ph c t p hơn. m t sau (c u trúc bên trong). Zip. Còn bây gi b n đ c s chuy n sang nghiên c u thành ph n quan tr ng th 2 trong 4 thành ph n chính c a Linux – h v bash. và m i ch đ c p đ n “m t trư c”.8 T o và g n các h th ng t p tin 99 c p root m i có quy n b g n nó. nhưng b n cũng c n bi t cách làm vi c v i các đĩa r i n u có v n đ x y ra v i các d ch v đó.v. M t s b n phân ph i (Debian. v. Đây là t t c nh ng gì mà ngư i dùng Linux m i (và r t m i) c n bi t v h th ng t p tin ext3fs. Vì đ u tiên b n c n g n các đĩa này (nói chính xác là h th ng t p tin có trên đĩa) vào cây thư m c chung. không ti n trình nào đang ch y t t p tin chương trình n m trên h th ng t p tin này và trong h th ng không có ti n trình nào s d ng h th ng t p tin này. m t dvd và m t flash thì hãy t o ba thư m c floppy. T c là h th ng t p tin không đư c b n.4. ch đư c nói đ n trong chương này khi c n thi t. Đ b t kỳ ngư i dùng nào cũng có th b g n h th ng t p tin thì trong t p tin /etc/fstab c n thay th tùy ch n user b ng tùy ch n users (trong vùng các tùy ch n g n). C n nói r ng n u so v i Windows thì làm vi c v i các đĩa r i (đĩa m m. Xin nh c l i là nh ng gì đã nói đây ch dành cho h th ng t p tin ext3fs (m t s thông tin v n còn đúng cho phiên b n ext2fs). Chúng ta s xem xét k hơn m t sau này trong m t vài chương s p t i. DVD. . dvd và flash trong /mnt đ làm đi m g n cho ba thi t b c a mình. m t quay v phía ngư i dùng c a h th ng này (ch y u là c u trúc t p tin). Tuy trên các b n phân ph i m i đã có các d ch v cho phép t đ ng g n và t đ ng “tháo” các đĩa r i. . M t còn l i. T t nh t hãy chu n b s n cho m i đĩa r i m t “đi m g n” riêng.

Nh ng ngư i dùng Linux m i (newbie) thư ng nghĩ s ch ng bao gi làm vi c ch đ này.1 H v là gì? Chúng ta thư ng nói “ngư i dùng làm vi c v i h đi u hành”. Nhưng m t khác. Tuy nhiên đây là m t ý ki n sai l m. C n nói ngay r ng. vài bi n th c a sh đư c phát tri n và làm t t hơn. Sau đó. Tuy nhiên. Vì Linux là HĐH đa ti n trình.Chương 5 Bash T t g hơn t t nư c sơn – ca dao t c ng Vi t Nam Trong ph n này chúng ta s đ c p đ n v n đ làm vi c v i Linux ch đ text. b t kỳ chương trình nào trong Linux có th kh i đ ng t dòng l nh c a h v (n u máy ch X đã ch y). Đưa các tham s cho chương trình trên dòng l nh tương đương v i vi c chúng ta kéo và th cái gì đó lên bi u tư ng chương trình trong môi trư ng đ h a. 5. b i vì r t nhi u công vi c có th th c hi n nhanh và thu n ti n trong ch đ này hơn là s d ng giao di n đ h a. Nói ngoài l m t chút. cũng như qua giao di n đ h a. hay còn đư c g i là console ho c terminal. Đi u này không hoàn toàn đúng. vi t b i Steve . vi t t t c a shell. Trên các h th ng UNIX đ u tiên có m t chương trình. th c hi n “liên h ” v i ngư i dùng trong môi trư ng đ h a. Và dù sao thì ch đ text c a HĐH Linux không ph i là ch đ text m t ti n trình c a MS-DOS. m t s chương trình không th ch y GUI và ch có th th c hi n t dòng l nh. Ch y chương trình t dòng l nh c a h v tương đương v i vi c nháy (đúp) chu t lên bi u tư ng c a chương trình trong GUI. Và đ so n th o m t t p tin văn b n không nh t thi t ph i ch y các trình so n th o l n và ch m ch p (đ c bi t trên các máy có c u hình ph n c ng th p) c a môi trư ng đ h a. tên g i “h v ” b ph n đ i r t nhi u.phiên b n m r ng c a sh. vì đã có giao di n đ h a. vì trên th c t “liên h ” v i ngư i dùng đư c th c hi n b i m t chương trình đ c bi t. trong đó có Bourne shell . Có hai d ng c a chương trình đã đ c p . đ làm vi c trong ch đ text (giao di n dòng l nh) và giao di n đ h a GUI (Graphical User Interface).h v . g i là sh. nên ngay trong ch đ text đã có kh năng làm vi c trong vài c a s . tên g i “h v ” (shell) đư c dùng cho các chương trình dùng đ biên d ch l nh trong ch đ text trên m i h th ng UNIX. Theo ý ki n c a m t s chuyên gia ngôn ng cũng như chuyên gia Linux thì nên g i chương trình này m t cách đúng hơn là “trình x lý l nh” hay “trình biên d ch l nh”. hay shell.

và . hoán đ i v trí) các tham s l nh. Tuy nhiên các ký t _. D án GNU (d án phát tri n chương trình ng d ng c a Stallman. <Tab> và các phím có mũi tên. g ch ngang và d u ch m) thư ng đư c s d ng trong tên t p tin. 5. Ph thu c vào tình hu ng các ký t đ c bi t này có th s d ng v i ý nghĩa đ c bi t c a nó hay s d ng như m t ký t thông thư ng. K t qu thu đư c là m t ngôn ng l p trình m nh. . Đây cũng là s c m nh và là m t trong các ch c năng chính c a h v .org/) sau đó cho ra đ i h v bash. Trư c khi b t đ u ph n này. Chúng ta s xem xét chúng d n d n trong các ph n sau. b n đ c nên bi t các t h p phím chính.) và g ch chéo (/) có giá tr đ c bi t.gnu. ho c đ bi u th các thao tác nào đó. đó là nó bao g m m t ngôn ng l p trình đơn gi n. Ký hi u g ch chéo dùng đ phân chia tên các thư m c trong đư ng d n. Các ký t này bao g m: ‘ ~ ! @ # $ % ^ & * ( ) _ -. H v cung c p các toán t đi u ki n và toán t vòng l p. Nhưng nó h tr vi c th c thi m i chương trình khác. (d u g ch dư i.[ ] { } : . Trong tên t p tin ch d u ch m (. vì t Bourne đ c gi ng v i t borne (sinh ra.2 Các ký t đ c bi t H v bash s d ng m t vài ký t t b 256 ký t ASCII cho các m c đính riêng. Nên nh ít nh t cách s d ng c a các (t h p) phím <Ctrl>+<C>. Nhưng trong đa s các trư ng h p không khuyên dùng các ký t v i giá tr th hai. và như th bash còn có th gi i mã là “shell đư c sinh ra l n hai”. hay đư c cài đ t riêng) đ làm các thao tác cơ b n cho ngôn ng l p trình mà nó h tr .5. t vi c tìm ki m chương trình đư c g i. còn d u ch m có giá tr đ c bi t khi nó là ký t đ u tiên trong tên t p tin (cho bi t t p tin là “ n”). Trong toán h c t lâu đã đư c ch ng minh r ng. Tuy nhiên. tên g i c a nó đư c gi i mã ra là Bourne-again shell. ch y chúng đ n vi c t ch c d li u đ u vào/đ u ra. t c là “l i là h v c a Bourne”. Ký hi u \ (g ch chéo ngư c) có th g i . vì th dư i khi nói đ n h v . s d ng đ đi u khi n vi c nh p d li u trên dòng l nh. ký t hàng m i (t o ra khi nh n phím <Enter>) và ký t kho ng tr ng. khi c n s d ng đ n. Ngoài ra. 3 ký hi u có ý nghĩa l n và c n đ c p đ n đ u tiên. xem http://www. Ti p theo chúng ta s ch xem xét bash. <Ctrl>+<D>. Nhưng tính ch t chính c a h v . và đây là m t ví d cho th y không ph i lúc nào chúng cũng có giá tr đ c bi t. ho c đ bi n đ i bi u th c. xin ng m hi u đó là bash T m t mình bash không th c hi n m t công vi c ng d ng nào. Đ ng th i cho phép đưa các tham s cũng như k t qu làm vi c c a m t chương trình t i các chương trình khác hay t i ngư i dùng.2 Các ký t đ c bi t 101 Bourne. Nó s d ng các ti n ích và chương trình khác (có trong thành ph n h đi u hành. Vi c đưa ngay t t c ý nghĩa đ c bi t c a nh ng ký t này và các tình hu ng s d ng chúng t m th i không có ích. nh đó đưa h v tr thành m t công c m nh c a ngư i dùng. ’ " / \ > < và ký t v i mã 0. Trư c h t đó là vi c s d ng chúng trong tên t p tin và thư m c. b t kỳ m t thu t toán nào cũng có th đư c xây d ng t hai (ba) thao tác cơ b n và m t toán t đi u ki n. Trên ti ng Anh đây là m t cách chơi ch . h v ch u trách nhi m v công vi c v i các bi n môi trư ng và th c hi n m t vài bi n đ i (th . đ ra).

102

Bash

là “ký hi u xóa b ý nghĩa đ c bi t” cho b t kỳ ký t đ c bi t nào, đ ng ngay sau \. Ví d , n u mu n s d ng kho ng tr ng trong tên t p tin, thì chúng ta c n đ t ˙ trư c ký t kho ng tr ng đó m t d u Ví d , câu l nh sau: teppi82@teppi:~$ cp lennon_imagine lennon\ imagine Các ký t ’ và " (ngo c đơn và ngo c kép) có th g i là “các ký t trích d n”. M i ký t này luôn luôn đư c s d ng trong m t c p v i b n sao c a chính nó đ đóng khung m t bi u th c nào đó, gi ng như trong các văn b n, sách báo, . . . thông thư ng. N u như m t đo n văn b n nào đó đ t trong ngo c đơn, thì t t c các ký t n m trong ngo c đơn này có giá tr như các ký t thông thư ng, khôn m t ký t nào có ý nghĩa đ c bi t. Tr l i v i ví d s d ng kho ng tr ng trong tên t p tin trên, có th nói, n u mu n đ t t p tin cái tên “lennon imagine” c n đưa tên đó vào d u ngo c: teppi82@teppi:~$ cp lennon_imagine ’lennon imagine’ S khác nhau trong cách s d ng ký t ’ và " đó là, trong ngo c đơn m t ý nghĩa đ c bi t t t c các ký t , còn trong ngo c kép – t t c chúng ngo i tr $, ’ và \ (d u đô la, ngo c đơn và d u g ch ngư c).

5.3

Th c thi các câu l nh

Như đã nói trên, m t trong các ch c năng chính c a h v là t ch c vi c th c hi n các câu l nh mà ngư i dùng đưa vào trên dòng l nh. H v , nói riêng, cung c p cho ngư i dùng hai thao tác đ c bi t đ t ch c vi c đưa các câu l nh trên dòng l nh: ; và &.

5.3.1

Thao tác ;

M c dù ngư i dùng thư ng ch nh p trên dòng l nh t ng câu l nh m t, nhưng còn có th đưa vào dòng l nh đó ngay l p t c vài câu l nh, và chúng s th c hi n l n lư t t câu l nh này đ n câu l nh khác. Đ làm đư c đi u này c n s d ng ký t đ c bi t - ;. N u dùng ký t này đ phân chia các câu l nh, thì câu l nh ti p theo s đư c coi như tham s c a l nh phía trư c. Như v y, n u nh p vào dòng l nh cái gì đó gi ng như sau: teppi82@teppi:~$ command1 ; command2 thì h v đ u tiên s th c hi n câu l nh command1, ch cho l nh đó hoàn thành, sau đó ch y command2, ch l nh hoàn thành, sau đó l i đưa ra dòng nh p l nh và ch các hành đ ng ti p theo c a ngư i dùng.

5.4 Đ u vào/đ u ra tiêu chu n

103

5.3.2

Thao tác &

Thao tác & đư c dùng đ t ch c vi c th c hi n các câu l nh trong ch đ n n sau. N u đ t d u & ngay sau câu l nh, thì h v s tr l i quy n đi u khi n cho ngư i dùng ngay sau khi ch y câu l nh, mà không đ i cho câu l nh đó hoàn thành. Ví d , n u nh p vào dòng l nh “command1 & command2 &”, thì h v ch y câu l nh command1, ngay l p t c ch y l nh command2, và sau đó không ch m tr tr l i dòng nh p l nh cho ngư i dùng.

5.3.3

Thao tác && và ||

Các thao tác && và || lá nh ng thao tác đi u khi n. N u trên dòng l nh là command1 && command2, thì command2 s th c hi n và ch th c hi n trong trư ng h p tr ng thái thoát ra c a l nh command1 b ng không (0), t c là l nh đó th c hi n thành công. M t cách tương t , n u dòng l nh có d ng command1 || command2, thì command2 s th c hi n và ch th c hi n khi tr ng thái thoát c a l nh command1 khác không. Chúng ta s không xem xét m t k thu t c a vi c th c hi n m t câu l nh nào đó. Ch có th nói ng n g n r ng, h v ph i tìm mã (code) chương trình, n p mã đó vào b nh , chuy n các tham s đã nh p trên dòng l nh vào cho câu l nh, và sau khi th c hi n xong thì theo m t cách nào đó tr l i k t qu th c hi n l nh này cho ngư i dùng hay ti n trình khác. Chúng ta s xem xét qua các bư c này. Bư c đ u tiên - tìm ki m câu l nh. Các câu l nh chia thành hai lo i: n i trú (mã c a chúng có trong mã c a chính h v ) và ngo i trú (mã c a chúng n m trong m t t p tin riêng l trên đĩa). H v luôn luôn tìm th y l nh n i trú, còn đ tìm các l nh ngo i trú ngư i dùng, theo nguyên t c, ph i ch cho h v đư ng d n đ y đ t i t p tin tương ng. Tuy nhiên đ g “gánh n ng” cho ngư i dùng h v bi t cách tìm l nh ngo i trú trong các thư m c, mà đư c li t kê trong đư ng d n tìm ki m. Ch khi (h v ) không th tìm th y t p tin c n thi t trong các thư m c đó, nó m i quy t đ nh r ng ngư i dùng đã nh m khi nh p tên l nh. V cách thêm thư m c vào đư ng d n tìm ki m chúng ta s nói đ n dư i, còn bây gi chúng ta s xem xét cách h v t ch c vi c đưa d li u vào cho câu l nh đang th c hi n và vi c đưa k t qu t i cho ngư i dùng.

5.4
5.4.1

Đ u vào/đ u ra tiêu chu n
Dòng d li u vào – ra

Khi m t chương trình đư c th c hi n, nó đư c cung c p ba dòng d li u (hay còn g i là kênh):
ˆ đ u vào tiêu chu n (standard input hay stdin). Qua kênh này d li u đư c đưa vào cho chương trình; ˆ đ u ra tiêu chu n (standard output hay stdout). Qua kênh này chương trình đưa ra k t qu làm vi c c a mình;

104

Bash
ˆ kênh thông báo l i tiêu chu n (standard error hay stderr). Qua kênh này chương trình đưa ra thông tin v l i.

T đ u vào tiêu chu n chương trình ch có th đ c, còn hai đ u ra và kênh thông báo l i đư c chương trình s d ng ch đ ghi. Theo m c đ nh đ u vào có liên k t1 v i bàn phím, còn đ u ra và kênh báo l i hư ng đ n terminal c a ngư i dùng. Nói cách khác, toàn b thông tin c a l nh hay chương trình mà ngư i dùng đã ch y, và t t c nh ng thông báo l i, đư c đưa ra c a s terminal. Tuy nhiên, chúng ta s th y dư i, có th chuy n hư ng thông báo đ u ra (ví d , vào t p tin). Đ cho th y kênh thông báo l i tiêu chu n làm vi c như th nào, hãy th c hi n câu l nh ls v i m t tham s không đúng, ví d dùng tham s là m t tên t p tin không t n t i. Trong trư ng h p này, ls đưa m t tin nh n báo l i ra kênh thông báo l i tiêu chu n. Tuy nhiên, đ i v i ngư i dùng thì trong trư ng h p này kênh thông báo l i tiêu chu n không khác gì v i đ u ra tiêu chu n, b i vì chúng ta cũng th y thông báo l i đó trên c a s terminal. Làm vi c v i đ u vào và đ u ra tiêu chu n đư c minh h a t t nh t qua ví d các l nh echo và cat.

5.4.2

L nh echo

Câu l nh echo dùng đ chuy n t i đ u ra tiêu chu n dòng ký t , mà đư c đưa vào làm tham s cho nó. Sau đó l nh này đưa ra tín hi u chuy n dòng và hoàn t t công vi c. Hãy th th c hi n câu l nh sau: [user]$ echo ’xin chao cac ban!’ Tôi nghĩ r ng l i gi i thích s là th a thãi (ch xin hãy s d ng d u ngo c đơn, n u không k t qu có th s khác. N u b n đ c chú ý thì có th gi i thích t i sao l i khác).

5.4.3

L nh cat

Chúng ta s xem xét l nh cat đây vì l nh này thư ng làm vi c v i đ u vào và đ u ra tiêu chu n. Theo m c đ nh k t qu làm vi c c a l nh cat hư ng t i đ u ra tiêu chu n. Đ ch ng minh là l nh này theo m c đ nh ti p nh n dòng d li u nh p vào, hãy ch y l nh cat không có tham s . K t qu là con tr chuy n t i m t dòng m i, và hơn n a có v như không có gì x y ra. Lúc này câu l nh ch các ký t đ n t đ u vào tiêu chu n. Hãy nh p b t kỳ ký t nào, và nó s xu t hi n ngay l p t c trên màn hình, t c là chương trình ngay l p t c đưa chúng t i đ u ra tiêu chu n. Có th ti p t c nh p các ký t , và chúng cũng s xu t hi n trên màn hình. Thông thư ng bàn phím đư c c u hình đ nh p vào theo t ng dòng, vì th n u b n nh n phím <Enter>, dòng ký t b n v a nh p s đư c đưa t i l nh cat, và l nh này s l i đưa d li u ra màn hình thông qua đ u ra tiêu chu n. Như v y, m i dòng ký t nh p vào s đư c hi n ra hay l n: m t l n khi gõ và l n th hai b i câu l nh cat. N u nh n t h p phím <Ctrl>+<D>, mà dùng đ ng ng vi c nh p d li u, chúng ta s qua l i dòng nh p l nh. Cũng có th s d ng t h p phím <Ctrl>+<C>, mà là câu l nh trong h v đ d ng chương trình
1

gi ng liên k t hóa h c

5.1 S d ng >. đ đưa n i dung t p tin /home/maikhai/ls.txt > /dev/tty2 Như b n th y. Thư ng s d ng vi c chuy n hư ng đ li u ra c a câu l nh vào t p tin. thông thư ng đ u vào/đ u ra c a m t chương trình liên k t v i các đ u vào/đ u ra tiêu chu n.5. “<” và “»”.5 Chuy n hư ng đ u vào/đ u ra. Dư i đây là m t ví d tương ng: maikhai@fpt:/some/where$ ls -l > /home/maikhai/ls. N u b n không mu n xóa n i dung cũ mà ghi thêm d li u đ u ra vào cu i t p tin. d nhìn. đây ch là m t ví d minh h a. trên th c t thư ng s d ng câu l nh đơn gi n hơn): maikhai@fpt:/sw$ wc -w < /home/maikhai/ls.5. có th đ m s t trong t p tin ls. m t cơ ch r t có ích c a h v . Ví d . B n có th chuy n hư ng không ch vào t p tin. Ch c năng tương t đ i v i đ u vào đư c th c hi n b i <. Khi này kho ng tr ng trư c và sau các ký hi u > hay >> không có ý nghĩa và ch dùng v i m c đích thu n ti n.txt không t n t i. mà t đó ngư i dùng th c hi n l nh ls2 s đư c ghi vào t p tin /home/maikhai/ls. đư ng ng và b l c 105 đang ch y. N i dung t p tin --> Đ u vào tiêu chu n (stdin) --cat--> đ u ra tiêu chu n (stdout) Đây ch là m t trư ng h p riêng c a vi c chuy n hư ng d li u đ u vào. như đã nói trên. < và » Đ chuy n hư ng đ u vào/ra. máy in).txt 2 3 thư m c hi n th i b n c n dùng t h p phím <Ctrl>+<Alt>+<F2> đ chuy n t i c a s terminal này và đăng nh p trư c . Ví d .txt. 5. thì nó s đư c t o ra.txt v a t o trên t i c a s terminal th hai3 có th s d ng l nh sau: maikhai@fpt:/sw$ cat /home/maikhai/ls. n u t p tin đã có. N u đưa tên m t t p tin vào làm tham s cho l nh cat. khi này n u t p tin ls.txt Theo l nh này danh sách t p tin và thư m c con c a thư m c. đư ng ng và b l c M c dù. Và t t nhiên chúng ta c n xem xét k hơn cơ ch này.txt như sau (chú ý. s d ng các ký hi u “>”. trong h v còn có các môi trư ng đ c bi t cho phép chuy n hư ng đ u vào/đ u ra. mà còn t i đ u vào c a m t câu l nh khác hay t i m t thi t b nào đó (ví d .5 Chuy n hư ng đ u vào/đ u ra. t đó l nh cat s đ c n i dung này và đưa t i đ u ra tiêu chu n (xem sơ đ ). > dùng đ chuy n hư ng d li u c a đ u ra. thì n i dung c a nó s b xóa và ghi đè b i danh sách nói trên. thì n i dung c a l nh này s đư c đưa t i đ u vào tiêu chu n. thì c n s d ng ký hi u >> thay cho >.

s 1. Ví d . t c là đ u ra tiêu chu n. còn < s đư c biên d ch là 0 <. t chúng (không có m t l nh nào. kho ng tr ng c nh > là không nh t thi t): command N > M Trong đó. Đ u vào tiêu chu n stdin có s 0. đ u ra c a kênh v i s N đư c g i đ n c đ u ra tiêu chu n. > và >> mà không ch ra s kênh hay tên t p tin. khi đ t nó (&) trư c s c a kênh s chuy n d li u đ n: command N > &M L nh này có nghĩa là. còn có kh năng không nh ng chuy n hư ng d li u vào kênh này hay kênh khác. vì vào ch còn thi u s đ t. có th đưa các thông tin c n thi t cho câu l nh t t p tin: trong t p tin này ghi s n nh ng gì c n đ th c hi n l nh đó. t c là không có kênh tiêu chu n nào cho l nh) các ký t chuy n hư ng này không th đư c s d ng. Ngoài vi c chuy n hư ng các kênh tiêu chu n đơn gi n như v y. t c là đ u vào tiêu chu n. cho các câu l nh mà thư ng ti p nh n (hay ch ) d li u vào t bàn phím. Như th . theo m c đ nh. 1. Ví d . c n đ t trư c ký hi u chuy n hư ng s c a kênh mu n chuy n. và 2) ho c tên t p tin. > và >> làm vi c v i các kênh tiêu chu n (đ u vào ho c đ u ra). kênh thông báo l i stderr . đ u ra tiêu chu n stdout . thư ng dùng. nh p vào dòng l nh sau: [user]$ file1 > file2 mà thu đư c b n sao c a m t t p tin nào đó. ho c 0 n u dùng <. > s đư c biên d ch là 1 >. v a ghi chúng vào t p tin. Ví d . Ký hi u & dùng đ th c hi n đi u này. T c là l nh chuy n hư ng có d ng đ y đ như sau (xin đư c nh c l i. Khi này. còn 1>&2 sao chép stdout vào stderr. các câu l nh sau là tương đương: [user]$ [user]$ [user]$ [user]$ cat > file cat>file >file cat > file cat Tuy nhiên. B i vì các ký hi u <.s 2. mà còn có th theo cách khác. ví d . Đ làm đư c đi u này. có th chuy n hư ng không ch đ u vào và đ u ra tiêu chu n.s c a kênh tiêu chu n (0. mà còn sao chép n i dung c a các kênh tiêu chu n đó. Trong m t vài trư ng h p có s d ng các ký hi u <. Nhưng đi u này không làm gi m giá tr c a cơ ch này. N và M . và sao chép t i kênh có s M. như th không th . chúng không ch đư c dùng theo các cách quen thu c. b i vì các kênh tiêu chu n có cho m i câu l nh. “l m t” hơn. c n dùng l nh 2>&1. trư ng h p sau thư ng đư c ng d ng trong các script ch y khi kh i đ ng Linux: teppi82@teppi:~$ cat hiho > /dev/null cat: hiho: No such file or directory teppi82@teppi:~$ cat hiho > /dev/null 2>&1 . khi không có s nào ch ra. Kh năng này đ c bi t có ích khi mu n ghi đ u ra vào t p tin. đ sao chép thông báo l i vào đ u ra tiêu chu n. 1 n u dùng >. Trong script dùng đ t đ ng hóa m t thao tác nào đó. vì khi đó chúng ta v a có th nhìn th y thông báo trên màn hình. mà còn các kênh khác.106 Bash Cách chuy n hư ng này thư ng đư c s d ng trong các script.

b l c bao g m các l nh đã nói đ n trên cat. B l c – đó là l nh (hay chương trình). 5. các l nh ti p theo th c hi n các công vi c c a mình: ch d li u t l nh trư c và đưa k t qu cho l nh ti p theo. Vì th ngay khi chương trình th nh t b t đ u đưa k t qu đ u ra. mà ti p nh n d li u vào. chương trình ti p theo b t đ u x lý k t qu này. nhân đôi d li u đ u vào. mà tính s nh ng dòng thu đư c. Ví d : maikhai@fpt:/sw$ cat ls. b n có th sư d ng trên m t dòng c ký hi u dây chuy n |. Đư ng ng s d ng đ k t h p vài chương trình nh l i v i nhau (m i chương trình th c hi n m t bi n đ i xác đ nh nào đó trên đ u vào) t o thành m t l nh t ng quát. và c nh ng câu l nh có trong b ng 5. D th y r ng theo ch c năng c a mình l nh tee tương t như nhóm ký t chuy n hư ng 1>&file. Hai hay vài câu l nh. s đư c chuy n đ n đ u vào c a l nh grep. less. liên k t v i nhau (có th nói phân cách nhau. Tr ng thái thoát ra (giá tr lôgíc. diff. cũng như d u ch p ph y . Trư c m i d u ch m ph y. trư c câu l nh đ u tiên c a đư ng ng có th đ t ký hi u “!”.5. gi ng như m t dây chuy n s n xu t.5 Chuy n hư ng đ u vào/đ u ra. đư ng ng và b l c 107 5.5.. t c là n i dung t p tin ls. m t m t g i d li u này đ n đ u ra tiêu chu n. trư c khi th c hi n l nh ti p theo. Các câu l nh .txt | grep knoppix | wc -l Dòng này có nghĩa là k t qu c a l nh cat. n u mu n) b i ký hi u g ch th ng đ ng “|”. h v g i và th c hi n t t c các câu l nh có trong đư ng ng cùng m t lúc. l nh này s phân chia n i dung nói trên và ch l y ra nh ng dòng nào có ch a t knoppix.1. mà đư c tr l i sau khi th c hi n xong chương trình) c a m t đư ng ng s trùng v i tr ng thái thoát ra c a câu l nh sau cùng trong đư ng ng. ho c băng chuy n). d ng bên ph i so v i |. h v s d ng l i và ch cho đ n khi th c hi n xong t t c các câu l nh trư c c a đư ng ng. ch y m i l nh đó trong m t b n sao h v riêng. H v ch cho t t c các câu l nh k t thúc r i m i xác đ nh và đưa ra giá tr này. Đ n lư t mình.txt. k t q a c a l nh grep đư c chuy n t i đ u vào c a l nh wc -l. N u như mu n m t l nh nào đó k t thúc hoàn toàn. mà k t qu c a nó s là m t bi n đ i ph c t p. T c là n u tr ng thái thoát ra c a l nh cu i cùng b ng 0 thì tr ng thái thoát ra c a đư ng ng s b ng 1 và ngư c l i.3 B l c Ví d cu i cùng trên (ví d v i câu l nh grep) có th dùng đ minh h a cho m t khái ni m qua tr ng khác. mà đ u ra c a l nh trư c dùng làm đ u vào cho l nh sau.2 S d ng | M t trư ng h p đ c bi t c a chuy n hư ng đ u ra là s t ch c các đư ng ng (ha y còn có th g i là kênh gi a các chương trình. Kh năng c a b l c có th m r ng v i vi c s d ng . Khi này đ u ra tiêu chu n c a l nh đ ng bên trái so v i | dư c chuy n đ n đ u vào tiêu chu n c a chương trình. more. M t b l c đ c bi t. b l c chương trình.5. khi đó tr ng thái thoát ra c a đư ng ng s là ph đ nh lôgíc c a tr ng thát thoát ra c a l nh cu i cùng trong đư ng ng. wc. đó là. C n chú ý r ng. câu l nh tee. cmp. m t khác ghi nó (d li u) vào t p tin (ngư i dùng c n đ t tên). th c hi n m t vài bi n đ i trên d li u này và đưa ra k t qu đ u ra tiêu chu n (t đây còn có th chuy n đ n nơi nào đó theo ý mu n c a ngư i dùng). Cũng y như v y.

(g ch ngang). ch s .nh ng dòng ch g p t p tin th hai. d u g ch dư i (ch ký t đ u tiên c a t này không đư c là ch s ). ngư i ta s d ng ký t $ trư c tên c a nó.6 Tham bi n và các bi n s .6. tham bi n đư c xác đ nh hay đư c đ t ra. n u ngư i dùng g n cho nó m t giá tr . . Như v y. Chúng ta nói r ng. Nhưng n i dung này có trong ph n l n các cu n sách v UNIX và Linux (xem ph n l i k t). Tên g i (hay ID) c a tham bi n có th là m t t bao g m các ký t b ng ch cái. Đ nhìn th y giá tr c a tham bi n. pr Đ nh d ng t p tin hay n i dung c a đ u tiêu chu n đ in n. s d ng đ th c hi n m t vài bi n đ i trên d li u đ u vào (l y t t p tin hay đ u vào tiêu chu n) các bi u th c chính quy (đi u khi n). . tham bi n đ c bi t (các ký t đ c bi t đã nói trên chính là tên c a nh ng tham bi n này) và các bi n s c a h v .nh ng dòng ch g p t p tin th nh t. đư c g i là “môi trư ng và các bi n môi trư ng” t o b i h v . 5. Giá tr có th là m t dòng tr ng r ng. .nh ng dòng có trong c hai t p tin. sed Trình so n th o t p tin theo dòng. chúng ta s d ng đây và chuy n sang m t ph n khác. l nh: maikhai@fpt:/sm$ echo parameter hi n th t parameter. hai . chúng ta có th nói r t nhi u v chuy n hư ng và b l c. 0. và c nh ng ký t sau: .1: Các câu l nh b l c L nh Mô t ng n g n grep. Vì v y. Môi trư ng c a h v Khái ni m tham bi n trong h v bash tương ng v i khái ni m bi n s trong các ngôn ng l p trình thông thư ng. $. Hãy th gõ l nh tr abc ABC r i gõ vài dòng ch a các ký t abc! comm So sánh hai t p tin theo t ng dòng m t và đưa vào đ u ra tiêu chu n 3 c t : m t . Tên (ID) c a tham bi n v trí g m m t hay vài ch s (nhưng không có . fgrep. cho phép. #. còn l nh maikhai@fpt:/sm$ echo $parameter hi n th giá tr c a tham bi n parameter (t t nhiên n u như tham bi n đó dư c xác đ nh). _ (g ch dư i). egrep Tìm trong t p tin hay d li u đ u vào các dòng có ch a m u văn b n đư c ch ra và đưa các dòng này t i đ u ra tiêu chu n tr Trong d li u đ u vào thay th các ký t ô th nh t b i các ký t tương ng ô th hai.108 Bash B ng 5. . t ch c tìm ki m theo các m u tìm ki m t đơn gi n đ n ph c t p và r t ph c t p.1 Các d ng tham bi n khác nhau Tham bi n chia thành ba d ng: tham bi n v trí. 5. ví d . N u mu n. và ba .

5. @ Thay th b i tham bi n v trí. N u s thay th th c hi n trong d u ngo c kép. ho c không đư c xác đ nh giá tr . thì $0 có giá tr b ng tên c a t p tin này. Môi trư ng c a h v 109 tham bi n v trí 0). /bin/bash _ (g ch dư i) Thay th b i tham s cu i cùng c a câu l nh trư c trong s các câu l nh đã đư c th c hi n (n u đó l i là m t tham bi n hay bi n s . đư c đ t b i l nh n i trú set hay trong khi ch y h v . Giá tr c a các tham bi n này cũng thay đ i trong khi h v th c hi n m t trong các hàm s (chúng ta s xem xét v n đ này dư i). thì s s d ng giá tr c a n Các tham bi n đ c bi t. . N u thay th th c hi n trong ngo c kép. v. ).6 Tham bi n và các bi n s . không th gán các giá tr cho các tham bi n này. .ký t đ u tiên trong giá tr c a bi n s IFS. “$@” tương đương v i “$1” “$2” .2: B ng 5. b t đ u t tham bi n th nh t. có m t đi m khác bi t đó là ch có th “nh c” đ n chúng. Trong trư ng h p ngư c l i giá tr này b ng đư ng d n đ u đ đ n h v (ví d . . Có th dùng câu l nh set đ thay đ i giá tr c a tham bi n v trí.tên c a bi n. . thì giá tr s không đư c thi t l p (tham bi n s b x # Thay th b i giá tr th p phân c a các tham bi n v trí. thì m i tham bi n s đư c thay th b i m t t riêng bi t. N u bash ch y m t t p tin l nh nào đó. mà s thay th (phép th . Các tham bi n đ c bi t không gì khác hơn là các m u. phép hoán đ i) chúng đư c th c hi n như trong b ng 5. $ Thay th b i s c a ti n trình (PID .2: Thay th các tham bi n đ c bi t Tham bi n Quy lu t thay th * Thay th b i các tham bi n v trí. Tên c a bi n môi trư ng ch có th bao g m các ch s . tham s th hai tham bi n 2. ch cái và không đư c b t đ u b i m t ch s . T c là.v. . N u không có tham bi n v trí. Giá tr c a bi n môi trư ng đư c gán nh thao tác có d ng sau: [user]$ name=value Trong đó. đư c đưa ra khi ch y h v (tham s đ u tiên là giá tr c a tham bi n 1. thì tham bi n phân cách nhau b i các kho ng tr ng. phân cách nhau b i ký t đ u tiên c a bi n s IFS (s nói đ n sau). mà t o ra t t t c các tham bi n v trí. Giá tr c a tham bi n v trí là các tham s cho l nh. . .(g ch ngang) Thay th b i giá tr các c . đư c li t kê b ng trên. b t đ u t tham bi n th nh t. nhìn t phía h v . thì tham bi n này s đư c thay b i m t t duy nh t. Bi n môi trư ng. 0 Thay th b i tên h v hay tên c a script đang ch y.giá tr mu n gán cho bi n (có th là m t dòng tr ng). (Tin r ng sau khi đ c đo n vi t v . name . ”. trong đó c . flag. đó là các tham bi n đư c đ t tên. ? Thay th b i tr ng thái thoát ra c a câu l nh cu i cùng trong đư ng ng. mà đư c th c hi n trong ch đ n n trư c. T c là “$” tương đương v i “$1c$2c.process identificator) Thay th b i s c a ti n trình (PID) cu i cùng trong s các câu l nh th c hi n trong n n sau. N u giá tr c a IFS tr ng. còn value .

Nguyên nhân là vì bi n này tr l i m t giá tr ng u nhiên4 trong kho ng 0 . c n thay name b i tên bi n (như v y. bi n RANDOM. cũng như m t vài ký t chuyên dùng đ xác đ nh d ng d u nh c như trong b ng 5. S c a l nh (s th t c a l nh đang th c hi n trong bu i làm vi c hi n th i) có th khác v i s c a chính nó trong danh sách “l ch s các câu l nh”. Giá tr t t nhiên s không ch a các d u ngo c này. đư c s d ng trong các trư ng h p khác nhau. có th s d ng l nh echo: [user]$ echo $name Trong đó. N u giá tr có ch a nh ng ký t đ c bi t. Xin hãy chú ý đ n. thì cũng có th b xóa b b ng l nh n i trú unset. danh sách đ y đ xem trong trang man c a bash . R t có th b n đã nhìn th y d u nh c này. 5. Trong s các bi n.gõ l nh “man bash”).2 D u nh c c a h v M t trong các bi n r t quan tr ng có tên PS1. sau khi ch y l nh này d u nh c s có d ng như đã nói. b i vì danh sách còn ch a c nh ng câu l nh đã đư c ghi l i trong t p tin l ch s . tuy nhiên trên các b n phân ph i khác nhau thư ng có các script kh i đ ng (hay script đăng nh p) xác đ nh l i bi n này.6. thì c n đ t nó (giá tr ) vào d u ngo c.32 768. Đ xem giá tr c a m t bi n môi trư ng c th . D u nh c.“+”. D u nh c. thay vì dùng l nh set (khi này c n tìm trong k t qu c a nó bi n mu n xem). đư c đưa ra trư c m i câu l nh. mà bash đưa ra trong khi ch ngư i dùng nh p câu l nh ti p theo. b n có th thay đ i các bi n PS1 và PS2. xu t hi n khi h v ch ngư i dùng nh p thêm m t vài d li u c n thi t nào đó đ có th ti p t c ch y câu l nh (chương trình) đã g i.) Giá tr có th là b t kỳ m t dòng văn b n nào. xác đ nh b i bi n PS2. có nhi u bi n). N u th ch y vài l n liên ti p câu l nh sau: maikhai@fpt:/sw$ echo $RANDOM thì m i l n b n s nh n đư c m t giá tr m i. Giá tr theo m c đ nh . Khi này có th s d ng b t kỳ ký t nào nh p t bàn phím. n u môi trư ng l n. N u có mong mu n. Theo m c đ nh bi n PS2 có giá tr “>”. ví d . xác đ nh b i bi n PS3. Nói chung thì trong bash có t t c b n d u nh c.l nh ftp. trong lúc bash theo dõi quá trình th c hi n. N u m t bi n môi trưòng đư c xác đ nh. xác đ nh b i bi n PS4. M t ví d khác . b n l i c n ph i bi t tên c a bi n mu n xem).110 Bash tham bi n v trí thì các b n đã hi u t i sao m t bi n môi trư ng không th b t đ u b i m t ch s . Sau 4 random là t ti ng Anh có nghĩa ng u nhiên . Có th xem nó (môi trư ng) nh l nh set khi không có tham s (có th c n dùng đư ng ng “set | less”.3 (ch đưa ra m t vài trong s chúng làm ví d . Bi n này cho bi t d ng c a d u nh c. trong trư ng h p này. D u nh c th hai. có nh ng bi n r t thú v . mà b n s th y trong k t qu c a l nh set. Bi n PS1 đưa ra d ng c a d u nh c khi h v ch nh p l nh. khi ch y l nh cat đ đưa d li u vào t bàn phím vào t p tin. T p h p t t c các bi n này cùng v i các giá tr đã gán cho chúng g i là môi trư ng (enviroment) c a h v . Theo m c đ nh thì bi n này đư c gán giá tr “\s-\v\$ ”. s d ng trong l nh select.

ví d . n u h v đư c ch y b i ngư i dùng thư ng. đ ng th i còn x y ra s thay th trong tên các câu l nh. tên ngư i dùng.Ví d .3: Ký t xác đ nh d ng d u nh c Giá tr (k t qu thu đư c) Tín hi u âm thanh (mã ASCII 07) Th i gian d ng “Th . ngày”. nên nh t thi t ph i có d u ngo c): [user/root]$ PS1="[\u@\h \W]\$" thì trong d u nh c s có d u m ngo c vuông.com Th i gian hi n th i d ng 24 gi : HH:MM:SS (gi :phút:giây) Th i gian hi n th i d ng 12 gi : HH:MM:SS Th i gian hi n th i d ng 12 gi am/pm (sáng/chi u) Tên ngư i dùng đã ch y h v . và ký hi u $ (n u trên h v đang làm vi c ngư i dùng bình thư ng) hay #(n u h v ch y dư i ngư i dùng root). ví d teppi Tên đ y đ c a thư m c làm vi c hi n th i (b t đ u t g c). sau khi th c hi n l nh (vì trong dòng văn b n có kho ng tr ng. /bin. /usr/bin. khi giá tr c a bi n đư c h v đ c xong. Môi trư ng c a h v 111 C m ký t \a \d \h \H \t \T \@ \u \w \W \$ \nnn \n \s \# \\ \[ \] \! B ng 5.6. n u h v đư c ch y b i ngư i dùng root. tháng. ký hi u . Tên máy (hostname) đ n d u ch m đ u tiên. trong các bi u th c s h c. kho ng tr ng. 26. ví d teppi. và s chia t (word splitting). S th t c a l nh hi n th i trong l ch s các câu l nh đã dùng.phanthinh. Chúng ta s nói đ n nh ng s thay th này dư i. d u đóng ngo c vuông. mà bash s tìm ki m t p tin (trư ng h p riêng là các t p tin l nh) trong trư ng h p. K t thúc chu i các ký t không đư c in ra. 5.6 Tham bi n và các bi n s . Ký t có mã h tám nnn Dòng m i (chuy n dòng) Tên h v S hi n th i c a câu l nh D u g ch ngư c (backslash) Sau ký t này t t c các ký t s không đư c in ra. ví d /home/teppi82/project/l4u Thư m c hi n th i (không có đư ng d n) Ký t #. Các thư m c trong danh sách này phân cách nhau b i d u hai ch m (:). s x y ra s thay th theo các quy lu t m r ng trong b ng trên. tên c a thư m c hi n th i (không có đư ng d n). Dec. đư ng d n đ y đ đ n t p tin không đư c đưa ra. Đ thêm thư m c vào danh sách này. Bi n này đưa ra danh sách đư ng d n đ n các thư m c. t c là bi n PATH trông như th này: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin.5. Tên máy đ y đ . và ký t $.3 Bi n môi trư ng PATH Còn m t bi n cũng quan tr ng n a có tên PATH. /usr/X11R6/bin. tên máy. Sun. Theo m c đ nh bi n môi trư ng PATH bao g m các thư m c “bin” sau: /usr/local/bin. c n th c hi n câu l nh sau: .

Giá tr theo m c đ nh c a bi n này – “<Kho ng_tr ng><Tab><Ký_t _hàng_m i>”.6. nó (h v ) trư c khi ch y câu l nh th c hi n vi c “phân tích ng pháp” dòng l nh này (gi ng trong .). mà h v th c hi n trư c khi ch y m t câu l nh nào đó (xem dư i). ghi trong bi n HOME. nó (h v ) cung c p cho chúng m t ph n bi n môi trư ng. M t chú ý nh . Tuy nhiên. khi thêm vào bi n PATH m t d u ch m (.112 [user]$ PATH=$PATH:new_path Bash Khi tìm ki m. t c là s d ng giá tr c a chúng qua tên. t c là thay vì [user]$ name=value c n gõ: [user]$ export name=value Trong trư ng h p này. Khi h v nh n đư c m t dòng l nh này đó c n th c hi n.6 Câu l nh export Khi h v ch y m t chương trình hay câu l nh nào đó. b n s nh n đư c m t ng c nhiên nh . có th đưa vào danh sách này thư m c hi n th i. và giá tr c a bi n này thay đ i sau m i l n ch y chương trình cd (cũng như m i l n thay đ i thư m c hi n th i theo b t kỳ cách nào.6.6. c n gán giá tr cho bi n này v i l nh export. 5. ch y ti n trình đã cho. N u th gõ l nh “echo $IFS”. 5. đây là đi u không khuyên làm v i lý do b o m t: ngư i có ác ý có th đ t vào thư m c dùng chung m t chương trình nào đó. s d ng trong thao tác phân chia t ng khi bi n đ i dòng l nh. t t c các chương trình ch y t h v (k c b n sao th hai c a chính h v ) s có quy n truy c p t i các bi n đư c gán như v y. Tương t như v y tên đ y đ (g m c đư ng d n) c a thư m c cá nhân c a ngư i dùng. 5. qua Midnight Commander). nhưng th c hi n nh ng ch c năng khác hoàn toàn (đ c bi t nguy hi m n u thư m c hi n th i đ ng đ u danh sách tìm ki m).4 Bi n môi trư ng IFS Bi n này xác đ nh ký t (c m ký t ) phân cách (Internal Field Separator).7 Khai tri n bi u th c Hay h v đ c các câu l nh như th nào?. có cùng tên v i m t trong s nh ng câu l nh thư ng dùng b i root.5 Thư m c hi n th i và thư m c cá nhân Tên c a thư m c hi n th i ghi trong bi n môi trư ng v i tên PWD. Đ có th cung c p bi n môi trư ng cho ti n trình ch y t h v . h v “l c l i” các thư m c theo đúng th t đã li t kê trong bi n PATH. ví d . 5.

Các thao tác này đư c th c hi n theo đúng th t li t kê trên. ˆ Phép th s h c (th c hi n t trái sang ph i). trong thư m c /usr/src/unikey/ s t o ra các thư m c con old. ˆ Thay th d u ngã (tilde expansion). ˆ Phép chia t (word splitting). Chúng ta s xem xét chúng theo t t này.dist. và bugs. Trong bash có b y lo i khai tri n bi u th c: ˆ Khai tri n d u ngo c (brace expansion).5.? ˆ /usr/ucb/ex ˆ /usr/lib/how_ex ˆ /usr/ucb/edit ˆ /usr/lib/how_ex . v ng ). Gi thi t. Trong trư ng h p th hai. 5. ˆ Phép th các câu l nh.7 Khai tri n bi u th c 113 ngôn ng .1 Khai tri n d u ngo c Khai tri n d u ngo c t t nh t minh h a trên ví d .new. ˆ Khai tri n các m u tên t p tin và thư m c (pathname expansion). ho c thay đ i ngư i dùng s h u c a vài t p tin cùng m t lúc.edit}. phân tích ch ng . chúng ta c n t o thư m c con trong m t thư m c nào đó.lib/{ex?. Có th th c hi n đi u này nh các câu l nh sau: [user]$ mkdir /usr/src/unikey/{old. ˆ Phép th các tham bi n và bi n s . M t trong nh ng bư c c a s phân tích này là phép m hay khai tri n bi u th c (expansion). ngư i dùng s h u c a các t p tin sau s thay đ i (thành root): ˆ /usr/ucb/ex ˆ /usr/lib/ex?.7.?*.dist.new.bugs} [root]# chown root /usr/{ucb/{ex.? ˆ /usr/ucb/edit ˆ /usr/lib/ex?.how_ex} Trong trư ng h p đ u.

hay ký hi u này s đư c thay th b i tên đ u đ c a thư m c hi n th i (t c là giá tr c a bi n PWD). ho c khi theo sau tên còn có các ký t khác. Và n u giá tr c a bi n HOME không đư c gán thì d u ngã s đư c thay th b i đư ng d n đ u đ đ n thư m c cá nhân c a ngư i dùng. N u như ngay sau d u ngã (và trư c d u g ch chéo) là m t t trùng v i tên c a m t ngư i dùng h p pháp.c.7. thì d u ngã s đư c thay th b i giá tr c a bi n HOME. s khai tri n tham bi n và bi n s .114 Bash T c là v i m i c p d u ngo c s t o ra vài dòng riêng r (s nh ng dòng này b ng s t n ng trong d u ngo c) b ng cách ghi thêm vào trư c m i t trong ngo c nh ng gì đ ng trư c d u ngo c. nhưng r t ti n. Trong t t c các giá tr c a bi n s x y ra phép th d u ngã (∼). 5. tr trư ng h p “$” (l i gi i thích xem b ng s 3). không nh t thi t. s đư c gi không thay đ i (chúng s đư c biên d ch các bư c phía sau). t t c các ký t đ ng trư c d u g ch chéo đ u tiên (hay t t c các ký t n u như không có d u g ch chéo) s đư c hi u là tên ngư i dùng (login name). thì d u ngã c ng v i tên ngư i dùng đư c thay th b i đư ng d n đ y đ đ n thư m c cá nhân c a ngư i dùng này. và ghi thêm vào sau m i t này nh ng gì đ ng sau d u ngo c. thì t không b thay đ i. M t ví d khác: dòng a{d. Ý nghĩa c a nó n m ch thay th tên các câu l nh b i k t qu th c hi n c a chúng. mà đã ch y h v .b}e khi khai tri n s thu đư c ba t “ade ace abe”.3 Phép th các tham bi n và bi n s Ký t $ đư c s d ng cho các thao tác th tham bi n.7. N u như tên này là m t dòng r ng (t c là d u g ch chéo đ ng ngay phía sau d u ngã). đ g i giá tr c a tham bi n nói chung cũng như bi n môi trư ng nói riêng trong dòng l nh.4 Phép th các câu l nh Phép th các câu l nh là m t công c r t m ng c a bash. N u như t đ ng sau d u ngã không ph i là tên c a m t ngư i dùng (và không r ng). n u tên c a tham bi n có ch a vài ch s .2 Thay th d u ngã (Tilde Expansion) N u như t b t đ u v i ký t d u ngã (’∼’). phép th các bi u th c s h c. thì thay th giá tr c a bi n OLDPWD (thư m c “cũ”). 5.7. Khai tri n d u ngo c đư c th c hi n trư c các d ng khai tri n khác trong dòng l nh. D u ngo c ch c n thi t. vì d u ngo c phân cách bi u th c v i các t hay ký t đ ng sau. S phân chia t không x y ra. phép th các câu l nh. k c nh ng ký t n m trong d u ngo c. c n đ t bi u th c d ng $parameter. hơn n a t t c các ký t đ c bi t có trong dòng l nh. Bi u th c hay tên đ ng sau $ có th đư c đưa vào ngo c. th các câu l nh và th các bi u th c s h c. N u d ng sau d u ngã là ‘-’. Có hai d ng phép th l nh: $(command) và ‘command‘ N u ng d ng d ng th hai (chú ý đây s d ng d u “ngo c đơn ngư c”. S khai tri n các m u tên t p tin và thư m c cũng không đư c th c hi n. Như v y. mà chúng ta không mu n h v “hi u l m” chúng là m t ph n c a tên tham bi n. cũng như xóa các ký t trích d n (xem dư i). 5. thì d u g ch ngư c (\) trong d u ngo c s có ch c năng như m t ký t thông . phím cho nó thư ng n m trên phím Tab). N u như sau d u ngã là ‘+’.

thì bash s tìm ki m trong t ng t c a dòng l nh các ký t *. t c là các ký t đ c bi t b m t giá tr và hi u như các ký t thư ng. Phía trong expression có th c hi n các phép th tham bi n và th câu l nh. thì t s b xóa kh i dòng l nh. câu l nh [user]$ echo $((2 + 3 * 5)) cho k t qu b ng “17”. không có ký t nào có ý nghĩa đ c bi t. h v tìm trong dòng l nh t t c các ký t phân chia.7. Cú pháp c a bi u th c expression tương t như cú pháp c a bi u th c s h c c a ngôn ng C. thì trong k t qu c a phép th s không th c hi n phép phân chia t và s khai tri n m u tên t p tin và thư m c. th l nh.5 Phép th s h c (Arithmetic Expansion) Phép th s h c cho phép tính giá tr c a m t bi u th c s h c và thay th nó (bi u th c) b i k t qu thu đư c. c th hơn v v n đ này có th đ c trong ph n ARITHMETIC EVALUATION c a trang man c a bash. ‘.7 Khai tri n bi u th c 115 thư ng. h v l i phân tích dòng l nh m t l n n a (nhưng d ng thu đư c sau các phép th nói trên) và th c hi n vi c phân chia t (word splitting). thì phân chia t cũng không x y ra. và [.5. Sau khi phân chia t . nhưng nh ng d u ngo c kép trong expression l i đư c đ c như m t ký t thư ng. N u trong dòng l nh không th c hi n phép th nào trong các phép th k trên. 5. và nh đó chia nh dòng l nh thành các t riêng r trong các ch tương ng. N u như bi n này đư c xác đ nh.6 Phân chia t (word splitting) Sau khi th c hi n xong các phép th tham bi n. và th các bi u th c s h c. Thao tác này n m ch . N u phép th câu l nh x y ra phía trong ngo c kép. Ví d . xác đ nh b i bi n IFS (xem trên). khi đ ng sau nó (d u g ch ngư c) là m t $. 5. và bi n nullglob không đư c đưa ra. N u như không tìm th y tên tương ng v i m u. tương ng v i m u này. mà đư ng d n tương ng v i m u không tìm th y. thì t này s đư c xem như m t m u. bash s đưa ra thông báo l i.7. Có hai d ng phép th s h c: $[expression] ((expression)) Trong đó expression đư c hi u (đư c bash đ c) như khi đ ng trong ngo c kép. 5. N u bi u th c không chính xác. thì t t c các ký t đ ng trong ngo c t o thành m t câu l nh. Các ký t dùng đ t o m u có các giá tr trong b ng 5. và n u như không đưa ra tùy ch n -f. thì vi c phân chia t s không x y ra. .7 Khai tri n các m u tên t p tin và thư m c (Pathname Expansion) Phép th tên đư ng d n và t p tin (Pathname expansion) s d ng đ ch nh m t m u nh g n mà có th ch ra vài t p tin (hay thư m c). ?. thì t s không thay đ i. tương ng v i m u này. hay m t \. và c n thay th b i các t trong danh sách đư ng d n. N u tìm th y t v i m t hay vài ký t như v y.4.7. tr trư ng h p. N u như s d ng d ng $(command). N u giá tr c a IFS b ng m t dòng tr ng.

Ví d .png s tương ng t t c các t p tin có ph n m r ng png (t p tin đ h a hai chi u). avi. .jpg N u trong thư m c có nhi u t p tin.txt s đư c thayth b i các tên t p sau file1. Tương ng b t kỳ ký t nào trong s các ký t n m trong d u ngo c vuông này. Tương ng b t ký m t ký t đơn nào. . C p ký t .txt (n u chúng t n t i). v. bi u th m t dãy. cũng như các toán t vòng l p for.txt và vntex. . while. jpeg. N u ký t đ u tiên trong ngo c vuông là hay ˆ thì m u ( v trí này) s tương . 5. không đư c ch ra trong ngo M u tên t p tin r t thư ng xuyên s d ng trong dòng l nh có ch a ls. thì l nh sau ch đưa ra danh sách các t p tin có s t 0500 đ n 0999: [user]$ ls -l 0[5-9]?? 5.txt thì không. Ví d . v*.m t ngôn ng l p trình Như đã nói trên. phân cách nhau b i d u tr (-).txt. nhưng file23. k c dòng r ng.7. có th dùng câu l nh [user]$ ls *. t p tin hình nh. n m gi a hai ký t này. ng t t c các ký t . ví d c-f. cũng c n có các toán t ki m tra đi u ki n. file3. until..txt. Đ thu đư c thông tin ch c a t p tin d ng jpeg. và filea.txt s đư c thay th b i vnoss.else và case. phim v i d ng gif. H v bash h tr các toán t l a ch n if.116 Bash Ký t * ? [.txt (n u các t p tin này t n t i).8 Shell .8 Xóa các ký t đ c bi t Sau khi làm xong t t c các phép th .v. mà tên c a chúng là các s g m b n ch s (thư m c /proc là m t ví d +).. nh đó nó (bash) tr thành m t ngôn ng l p trình m nh.. b t ký ký t nào. ‘ và " còn l i trong dòng l nh (chúng đư c s d ng đ hu b giá tr đ c bi t c a các ký t khác) s b xóa h t.then.. Hãy tư ng tư ng là b n mu n xem thông tin c a m t thư m c. m u file?. ví d . file2. trong đó có ch a m t s lư ng l n các t p tin đ các d ng.4: Các ký t t o m u Quy lu t thay th Tương ng v i b t kỳ dòng ký t nào.. k c hai ký t t o ra dãy (c và f trong ví d ) cũng tương ng v i m u.txt. vnlinux.] B ng 5. theo t đi n. và *. đ có th xây d ng b t kỳ gi i thu t nào. các ký t \.txt. ..

1 Toán t if và test (ho c [ ]) C u trúc c a toán t đi u ki n có d ng thu g n như sau: if list1 then list2 else list3 fi trong đó. 5. Bi u th c đ ng sau if hay elif thư ng là câu l nh test.8.]) c n đi sâu hơn. Và cũng c n chú ý r ng ch c a test trong c u trúc if có th s d ng b t kỳ chương trình nào. thì s th c hi n các l nh t list2. đư c xây d ng trên cơ s ki m tra thu c tính t p tin. Giá tr đư c tr l i b i toán t if như v y.8.. . D ng đ y đ c a l nh if như sau: if list then list [ elif list then list ] . và list3 là các chu i câu l nh. test và [ đó là hai tên c a c a cùng m t chương trình. và tr l i giá tr 0. then unicode_start else echo "hello world" fi V toán t test (hay [. ngo c vuông. các chu i này có th đư c đưa vào d u ngo c nh n: list. Đ k t thúc m c này. không nh t thi t ph i có). list1. Bi u th c ph c t p hơn đư c t o ra t các thao tác đơn và kép sau (“nh ng viên g ch cơ s ”): ˆ -a file Đúng n u t p tin có tên file t n t i. Bi u th c đư c đưa t i chương trình test như m t tham s c a chương trình. thì ki m tra giá tr đư c tr l i b i câu l nh cu i cùng c a danh sách. nh ng gì n m trong nó.8 Shell . và 1 trong trư ng h p ngư c l i. N u trong danh sách có vài câu l nh. còn n u giá tr này khác không..m t ngôn ng l p trình 117 5.. thì s th c hi n nh ng l nh t list3. Ngoài ra. L nh test th c hi n phép tính m t bi u th c nào đó. N u giá tr này b ng 0.5. s d ng trong toán t test.. n u bi u th c là đúng. [ else list ] fi ( đây d u ngo c vuông ch có nghĩa là.2 Toán t test và đi u ki n c a bi u th c Bi u th c đi u ki n. list2. so sánh các dòng và các so sánh s h c thông thư ng. phân cách nhau b i d u ph y và k t thúc b i m t d u ch m ph y hay ký t dòng m i. trùng v i giá tr mà chu i l nh th c hi n (list2 ho c list3) đưa ra. ch không ph i là m t phép bi n hóa th n thông nào đó c a h v bash (ch là cú pháp c a [ đòi h i ph i có d u đóng ngo c). Toán t if ki m tra giá tr đư c tr l i b i các câu l nh t list1. chúng ta đưa ra ví d s d ng if: if [ -x /usr/bin/unicode_start ] . Thay vì gõ test expression có th đưa bi u th c expression vào ngo c vuông: [ expression ] C n chú ý r ng. mà có th đư c bi u th b i d u ngo c vuông [ ].

ˆ -p file Đúng n u t p tin có tên file t n t i và là tên c a m t ng (kênh FIFO). ˆ -r file Đúng n u t p tin có tên file t n t i và có quy n đ c. ˆ -x file Đúng n u t p tin có tên file t n t i và có quy n th c thi. ˆ -u file Đúng n u t p tin có tên file t n t i và đư c đ t bit thay đ i ngư i dùng. ˆ -f file Đúng n u t p tin có tên file t n t i và là m t t p tin thông thư ng. ˆ -p file Đúng n u t p tin có tên file t n t i và là tên c a m t ng (kênh FIFO). và là m t t p tin thi t b kh i (block device) đ c bi t. ˆ -w file Đúng n u t p tin có tên file t n t i và có quy n ghi. ˆ -g file Đúng n u t p tin có tên file t n t i và đư c đ t bit thay đ i nhóm. ˆ -t fd Đúng n u b mô t c a t p tin (fd) m và ch lên terminal.118 Bash ˆ -b file Đúng n u file t n t i. ˆ -h file hay -L file Đúng n u t p tin có tên file t n t i và là liên k t m m (liên k t tư ng trưng). ˆ -e file Đúng n u t p tin có tên file t n t i. ˆ -k file Đúng n u t p tin có tên file t n t i và đư c đ t bit sticky. ˆ -d file Đúng n u file t n t i và là m t thư m c. ˆ -s file Đúng n u t p tin có tên file t n t i và kích thư c l n hơn không. và là m t t p tin thi t b ký t (charater device) đ c bi t. ˆ -c file Đúng n u file t n t i. .

5.8 Shell - m t ngôn ng l p trình

119

ˆ -0 file Đúng, n u t p tin có tên file và ch s h u c a nó là ngư i dùng mà ID có hi u l c ch đ n. ˆ -G file Đúng, n u t p tin có tên file t n t i và thu c v nhóm, xác đ nh b i ID nhóm có hi u l c. ˆ -S file Đúng, n u t p tin có tên file t n t i và là socket. ˆ -N file Đúng, n u t p tin có tên file t n t i và thay đ i t l n đư c đ c cu i cùng. ˆ file1 -nt file2 Đúng, n u t p tin file1 có th i gian s a đ i mu n hơn file2. ˆ file1 -ot file2 Đúng, n u t p tin file1 “già” hơn file1 (trư ng h p ngư c l i c a trư ng h p trên). ˆ file1 -ef file2 Đúng, n u t p tin file1 và file2 có cùng m t s thi t b và ch s mô t inode. ˆ -o optname Đúng, n u tùy ch n optname c a h v đư c kích ho t. Chi ti t xin xem trên trang man bash. ˆ -z string Đúng, n u đ dài c a chu i string b ng không. ˆ -n string Đúng, n u đ dài c a chu i khác không. ˆ string1 == string2 Đúng, n u hai chu i trùng nhau. Có th thay hai == b ng m t =. ˆ string1 !== string2 Đúng, n u hai chu i không trùng nhau. ˆ string1 < string2 Đúng, n u chu i string1, theo t đi n, đ ng trư c chu i string2 (đ i v i ngôn ng hi n th i). ˆ string1 > string2 Đúng, n u chu i string1, theo t đi n, đ ng sau chu i string2 (đ i v i ngôn ng hi n th i). ˆ arg1 OP arg2 đây OP là m t trong các phép so sánh s h c: -eq (b ng), -ne (khác, không b ng), -lt (nh hơn), -le (nh hơn ho c b ng), -gt (l n hơn), -ge

120

Bash (l n hơn ho c b ng). ch các tham s arg1 và arg2 có th s d ng các s nguyên (âm ho c dương).

T các bi u th c đi u ki n cơ b n này có th xây d ng các bi u th c ph c t p theo ý mu n nh các phép lôgíc thông thư ng PH Đ NH, VÀ (c ng) và HO C:
ˆ !(expression) Phép ph đ nh. Đúng, n u bi u th c sai. ˆ expression1 -a expression2 Phép c ng lôgic AND. Đúng n u c hai bi u th c đ u đúng. ˆ expression1 -o expression2 Phép lôgíc ho c OR. Đúng n u m t trong hai bi u th c đúng.

5.8.3

Toán t case

D ng c a toán t case như sau: case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac Câu l nh case đ u tiên khai tri n t word, và so sánh nó (word) v i m i t trong m u pattern theo th t . Sau khi tìm th y s trùng nhau đ u tiên thì d ng vi c so sánh l i, và th c hi n danh sách list các câu l nh đ ng sau m u đã tìm th y. Giá tr tr l i b i toán t này, b ng 0, n u không tìm th y s trùng nhau nào. Trong trư ng h p ngư c l i, tr l i giá tr mà câu l nh cu i cùng trong danh sách list đưa ra. Ví d s d ng toán t case sau l y t script /etc/rc.d/rc.sysinit (FreeBSD-style): case "$UTC" in yes|true) CLOCKFLAGS="$CLOCKFLAGS -u"; CLOCKDEF="$CLOCKDEF (utc)"; ;; no|false) CLOCKFLAGS="$CLOCKFLAGS --localtime"; CLOCKDEF="$CLOCKDEF (localtime)"; ;; esac N u bi n s (UTC) nh n giá tr yes ho c true, thì s th c hi n c p l nh th nh t, nh n giá tr no ho c false - c p th hai.

5.8.4

Toán t select

Toán t select cho phép t ch c h i tho i v i ngư i dùng. Nó có d ng sau: select name [ in word; ] do list; done

5.8 Shell - m t ngôn ng l p trình

121

Lúc đ u t m u word hình thành m t danh sách nh ng t tương ng v i m u này. T p h p nh ng t này đư c đưa vào kênh thông báo l i tiêu chu n, hơn n a m i t đư c đi kèm v i m t s th t . N u m u word b b qua (không có trong toán t select), thì s đưa vào các tham bi n v trí (xem trên) theo m t cách tương t . Sau đó, d u nh c PS3 đư c đưa ra, và h v ch chu i nh p vào trên đ u vào tiêu chu n. N u chu i nh p vào có ch a s , tương ng v i m t trong các s đã hi n ra, thì bi n name s đư c gán giá tr b ng t đi kèm v i s này. N u nh p vào m t dòng r ng, thì s và t s đư c hi n ra them m t l n n a. N u nh p vào b t kỳ m t giá tr nào khác, thì bi n name s nh n giá tr b ng không. Chu i mà ngư i dùng nh p vào, đư c ghi l i trong bi n REPLY. Danh sách l nh list đư c th c hi n v i giá tr bi n name đã ch n. Sau đây là m t script nh (xin hãy gõ không d u n u console c a b n chưa h tr vi c hi n th Ti ng Vi t):
#!/bin/sh echo "B n thích dùng OS nào?" select var in "Linux" "Gnu Hurd" "Free BSD" "MacOSX" "Solaris" "QNX" "Other"; do break done echo "B n đã ch n $var"

Ghi đo n trên vào m t t p tin (ví d , select.sh), thay đ i đ t p tin thành kh thi (ví d , chmod 755 select.sh), và ch y (./select.sh). Trên màn hình s hi n ra câu h i sau: B n thích dùng OS nào? 1) Linux 3) Free BSD 2) Gnu Hurd 4) MacOSX #?

5) Solaris 6) QNX

7) Other

Hãy nh n m t trong 7 s đưa ra (t <Enter>), thì s th y thông báo sau: B n đã ch n MacOSX

1 đ n 7). N u b n nh p 4 (nh n c

5.8.5

Toán t for

Toán t for làm vi c có khác m t chút so v i for trong các ngôn ng l p trình thông thư ng. Thay vì tăng ho c gi m giá tr c a m t bi n s nào đó (lên ho c xu ng) m t đơn v sau m i vòng l p, thì nó gán giá tr ti p theo trong danh sách t đưa s n cho bi n đó trong m i vòng l p. Nói chung c u trúc có d ng sau: for name in words do list done Quy lu t xây d ng danh sách l nh (list) gi ng trong toán t if. Ví d . Script sau t o các t p tin fu1, fu2, và fu3:

Đ làm đư c đi u này ch c n vi t vòng l p for như sau: for a in $( seq 1 6 ) . thì danh sách l nh list đư c th c hi n m t l n cho m i tham bi n v trí đã đưa ra. nhưng vòng l p các câu l nh trong list2 ch th c hi n khi đi u ki n còn đúng.SEPARATOR -. Nh câu l nh này có th s d ng for c a bash làm vi c như toán t for trong các ngôn ng l p trình thông thư ng.122 for a in 1 2 3 . C u trúc có d ng như sau: while list1 do list2 done Ví d : while [ -d directory ] . ti p nh n hai s nguyên làm tham s . do cat fu$a done Câu l nh (script) này đưa ra màn hình n i dung c a 10 t p tin (n u có): “fu1”. D ng t ng quát c a toán t for như sau: for name [ in word.. do ls -l directory >> logfile echo -.>> logfile sleep 60 done Chương trình (script) trên s theo dõi và ghi l i n i dung c a thư m c directory theo t ng phút n u thư m c còn t n t i. và đưa ra chu i t t c các s n m gi a hai s này (c ng thêm c chúng).6 Toán t while và until Toán t while làm vi c tương t như if.. . ] do list .. 5. Trên Linux có chương trình seq. N u không có “in word”. k t qu thu đư c tương t script.8. done Bash v i Đ u tiên cũng x y ra s khai tri n t word theo quy lu t khai tri n bi u th c (xem trên). và th c hi n danh sách l nh list trong m i l n như v y. Sau đó bi n name l n lư t đư c gán các giá tr thu đư c t s khai tri n này. do touch fu$a done Có th gõ ba dòng này trên m t dòng l nh. Toán t until tương t như toán t while: until list1 do list2 done . “fu10”. và s ng ng khi đi u ki n không th a mãn.

n u câu l nh cu i cùng trong danh sách list1 tr l i tr ng thái thoát ra khác không.8 Tham s Khi hàm s đư c g i đ th c hi n. n m gi a { và }.7 Các hàm s Cú pháp H v bash cho phép ngư i dùng t o các hàm s cho mình.9 Bi n n i b (local) N u mu n t o m t tham bi n đ a phương. còn ph n thâm c a hàm s t o b i danh sách các câu l nh list. Vi c đánh s b t đ u t 1.8. Hàm s th c hi n trong ph m vi h v hi n th i: không có ti n trình m i nào đư c ch y khi biên d ch hàm s (khác v i vi c ch y script). trong đó n là s c a tham s mà chúng ta mu n s d ng. Khi th c hi n xong hàm s . 5. và đưa ra s th t c a tham s nh $# Tham s v trí s 0 không thay đ i. th c hi n công vi c c a l nh seq đã nh c đ n trên: seq() { local I=$1. như v y $1 là tham s đ u tiên. có th s d ng t khóa local. Hàm s có c u trúc như sau: function name () { list } Hơn n a t function không nh t thi t ph i có. 5. 5. Các câu l nh này s đư c th c hi n m i khi tên name đư c g i (gi ng như m t l nh thông thư ng).8. name xác đ nh tên c a hàm (dùng đ g i hàm). C n chú ý r ng hàm có th là đ qui.5. các tham s c a hàm s tr thành các tham bi n v trí (positional parameters. I=$(( $I + 1 )) . Trong khi th c hi n n u g p câu l nh n i trú return (trong ph n thân c a hàm). Dư i đây là m t ví d hàm s . các tham bi n v trí và tham bi n đ c bi t # s đư c tr l i các giá tr mà chúng có trư c khi ch y hàm. ch có đi u c n đ ng sau t khóa local: local name=value. Cũng có th s d ng t t c các tham s m t lúc nh $*. xem trên) trong th i gian th c hi n hàm này.m t ngôn ng l p trình 123 Đi m khác bi t n m ch .8. do { echo -n "$I ". s d ng giá tr ph đ nh c a đi u ki n list1. Hàm s làm vi c và đư c s d ng gi ng như các câu l nh thông thư ng c a h v . t c là list2 th c hi n. Chúng đư c đ t các tên như $n. Cú pháp đưa ra bi n đ a phương gi ng h t các tham bi n khác. thì hàm s s b d ng l i và quy n đi u khi n đư c trao cho câu l nh đ ng sau hàm.8 Shell . while [ $2 != $I ]. t c là chúng ta có th t t o các câu l nh m i. t c là g i hàm s ngay trong ph n thân c a nó.

124 }. N u trong thư m c. và tr l i giá tr . Hãy chú ý đ n s khai tri n s h c. Trong trư ng h p này script ch đơn gi n là m t tham s c a l nh nói trên. Đ có th th c hi n script trong b n bash hi n th i. thì s tìm nó (t p tin) trong thư m c hi n th i. thì đư ng d n.” (đ ng nghĩa c a source). thì tham bi n v trí không thay đ i. không tìm th y t p tin c n. Tương t hàm s script có th đư c th c hi n như m t câu l nh. hay m t d u ch m “. thì trong th i gian th c hi n script chúng s thành các tham bi n v trí. s đư c s d ng đ tìm t p tin có tên filename. echo $2 } Bash C n chú ý đ n tùy ch n -n c a echo.1 )) ) )) }. N u không câu l nh nào đư c th c hi n. li t kê trong bi n s PATH. Câu l nh s có d ng: source filename [arguments] Câu l nh này đ c và th c hi n các câu l nh có trong t p tin filename trong môi trư ng hi n th i. fi } Đây là hàm s giai th a. T p tin này không nh t thi t ph i kh thi (không nh t thi t ph i có bit x). N u có các tham s (đưa ra arguments. ho c không tìm th y t p tin filename. Trong các trư ng h p thông thư ng khi ch y script s có m t ti n trình m i đư c ch y. N u không có tham s .9 Script c a h v và l nh source Script c a h v ch là các t p tin có ch a chu i l nh. N u filename không ch a d u g ch chéo. then echo 1. Cú pháp truy c p đ n các tham s cũng như hàm s . xem đ nh d ng câu l nh trên). c n s d ng câu l nh source. Hàm s tính giai th a fact M t ví d khác: fact() { if [ $1 = 0 ]. mà l nh source tr l i. M c dù tùy ch n này không có nhi u ý nghĩa v i m c đích chúng ta mu n đây. . tr l i b i câu l nh cu i cùng trong script. xác đ nh b i câu l nh cu i cùng c a filename. li t kê trong PATH. m t ví d c a hàm đ qui. done. 5. nó (tùy ch n) h y b vi c t o dòng m i. trùng v i giá tr . thì tr ng thái thoát b ng 0. Giá tr (tr ng thái). nhưng s r t có ích trong các hàm s v i m c đích khác. else { echo $(( $1 * $( fact $(( $1 -. và phép th các câu l nh.

qu n lý ti n trình. mà s đ c t p tin và th c hi n các câu l nh tương ng. v. Như v y. Ví d . Đi u này có nghĩa là.v. Khi này có th b t b n sao này ch y m t script nào đó. Có th thay th dòng này b i liên k t đ n b t kỳ m t chương trình nào. khi chúng ta g i script đ th c hi n như m t l nh thông thư ng.10 Câu l nh sh B n luôn luôn có th ch y m t b n sao c a h v bash nh câu l nh bash hay sh. . script trên ngôn ng Perl b t đ u b i dòng có d ng !/bin/perl. đ th c hi n script myscript c n đưa câu l nh “sh myscript”. mô t v thư vi n readline. N u xem n i dung c a m t t p tin script nào đó (nh ng t p tin như v y có r t nhi u trên h th ng). n u đưa tên c a script như m t tham s cho l nh bash. Chúng ta s d ng bài h c ng n g n v bash t i đây. còn r t nhi u v n đ quan tr ng c n xem xét nhưng n m ngoài ph m vi c a bài h c. b n s th y dòng đ u tiên có d ng sau: #!/bin/sh. l ch s câu l nh. . M t chú ý khác là ký t # dùng đ vi t l i chú thích trong script. Các b n s tìm th y thông tin c n thi t trong các cu n hư ng d n khác ho c trên trang man bash. ví d “# ls”. tín hi u.10 Câu l nh sh 125 5. thì hãy nh p vào dòng l nh m t câu l nh b t kỳ. thì /bin/sh s giúp chúng ta “thu x p” m i th . T t nhiên. ví d . . N u b n mu n ki m ch ng l i tác d ng c a ký t này. b n s th y r ng h v b qua câu l nh này.5. T t c nh ng gì đ ng sau ký t này đ n cu i dòng s đư c coi là chú thích và b bash b qua (t c là h v s không xem dòng này là câu l nh). và đ t trư c nó (câu l nh) ký t #.

1-pre31 . theo ý ki n ngư i d ch là khá cũ và không còn g p trong nh ng b n phân ph i Linux m i. Sau khi đ c xong chương này b n đ c s có th s d ng các t h p phím cũng như giao di n c a Midnight Commander đ th c hi n r t nhi u công vi c có liên quan đ n h th ng t p tin t nh bé đ n n ng nh c. . mkdir. . cp. . cat. m c dùng có th áp d ng cho nh ng phiên b n khác. Trong chương này chúng ta s h c cách s d ng chương trình Midnight Commander. ls. đây là trình qu n lý t p tin (File Manager). nhưng s thu n ti n hơn khi s d ng chương trình Midnight Commander.Chương 6 S d ng Midnight Commander M i th đ u đã đư c vi t ra – các nhà l p trình Nga. hay còn g i là giao di n text. N u như b n đ c có kinh nghi m làm vi c v i Norton Commander (nc) trong MS-DOS hay v i FAR trong Windows. thì m t s mô t ho t đ ng c a chương trình s không còn trong b n g c tác gi Kostromin dùng phiên b n 4. rxvt.5. Midnight Commander (hay thư ng rút g n thành mc) là chương trình cho phép xem c u trúc cây thư m c và th c hi n nh ng thao tác đi u khi n h th ng t p tin. cd. Trong trư ng h p này.v. đ có th làm vi c v i Midnight Commander b n đ c ch c n xem nhanh nh ng n i dung phía dư i. . Nói cách khác. rmdir. B i vì th m chí nh ng t h p “phím nóng” chính c a chúng cũng trùng nhau. . v. Tác gi xin có l i khuyên đ i v i nh ng ai còn xa l v i NC hay FAR (n u như có?): hãy chú ý đ c và th c hành chăm ch . mv. m t trình qu n lý t p tin m nh.1 Cài đ t chương trình Midnight Commander M c dù đ đi u khi n h th ng t p tin nói chung và đ làm vi c v i các t p tin nói riêng có th s d ng các câu l nh c a h đi u hành.30. . rm. Khi làm vi c v i chương trình qua trình gi l p (emulator) c a terminal trong giao di n đ h a. 2. Ghi chú: 1. Ki n th c đưa ra ch áp d ng đư c hoàn toàn trong trư ng h p chương trình ch y t kênh giao tác (console). 6. Đ u tiên chúng ta hãy xem xét cách cài đ t chương trình này.v.6. Ki n th c trong chương này đư c vi t đ s d ng cho phiên b n 4. 1 . more v. thì s làm vi c v i mc m t cách d dàng. ví d xterm. vì Midnight Commander s giúp đ r t nhi u trong khi làm vi c v i h đi u hành. như pwd.

1: Giao di n ti ng Vi t c a Midnight Commander chính xác n a. vì vi c nh n phím đã b v đ h a chi m l y.2 6. 3 panel 2 . sau đó gõ vào dòng l nh đư ng d n đ y đ t i t p tin đó. Có th chuy n đ n trình đơn đ ch n các l nh có trong đó b ng phím <F9> ho c nh phím chu t (n u như sau khi kh i Ngoài ra ngư i d ch cu n sách này cũng đã d ch giao di n c a Midnight Commander ra ti ng Vi t.2 V ngoài c a màn hình Midnight Commander Đ kh i đ ng Midnight Commander. Và b i vì chương trình này s làm cho b n đ c “d th ” hơn. S không tương ng như v y thư ng g p nh ng ch nói v phím “nóng”.2. c n gõ vào dòng l nh shell câu l nh mc và nh n <Enter>.6. trên máy tác gi là /usr/bin/mc. Nhưng các gói (rpm. phía trên hai b ng này là trình đơn (th c đơn). . ví d . và vi c cài đ t t các gói này là không khó khăn gì. deb. . tgz . N u ng d ng không ch y. G n như toàn b không gian màn hình khi làm vi c v i Midnight Commander b chi m b i hai “b ng”3 hi n th danh sách t p tin c a hai thư m c. Sau khi ch y chương trình. thì c n tìm xem t p tin chương trình mc n m đâu (có th dùng câu l nh find / -name mc -type f).2 V ngoài c a màn hình Midnight Commander 127 Hình 6. Vì th n u mu n b n có th s d ng giao di n ti ng m đ c a Midnight Commander. ) c a Midnight Commander s có trên đĩa. b n đ c s th y màn hình màu da tr i làm chúng ta nh đ n màn hình chương trình Norton Commander cho MS-DOS hay chương trình FAR cho Windows như trong hình 6. Trong ph n l n các b n phân ph i chương trình Midnight Commander không đư c t đ ng cài đ t cùng v i h th ng. tác gi r t mu n r ng chương trình s đư c cài đ t ngay sau khi cài xong h đi u hành.

và còn có th ch y tr c ti p các câu l nh tương ng b ng cách nh n chu t vào các nút này. Th hai. phím đ chuy n vào trình đơn chính là <F9>). và đ ng th i còn có ba nút – “<”. thì v n có th s d ng trình đơn File (T p tin) trong trình đơn chính c a chương trình (ch c n nh r ng.128 S d ng Midnight Commander Hình 6. phía trên dòng này (nhưng phía dư i các b ng) có th hi n th “nh ng l i khuyên có ích” (hint4s). Trong ph n đ u c a m i b ng là đư ng d n đ y đ đ n thư m c có n i dung đư c hi n th . Th nh t. Qua trình đơn File (T p tin) có th th c hi n b t kỳ thao tác nào mà thông thư ng ph i nh các phím ch c năng. đây có th nh p và th c hi n b t kỳ câu l nh nào c a h th ng. th m chí n u b n đ c không nh ph i dùng phím nào đ th c hi n công vi c mong mu n. “v” và “>” s d ng đ đi u khi n chương trình b ng chu t (nh ng nút này không làm vi c n u như b n đ c ch y mc trong trình gi t o (emulator) terminal). Dòng dư i cùng là dãy các nút. thì cũng đ ng bu n. Dòng th hai t dư i lên là dòng l nh c a chương trình Midnight Commander (hay chính xác hơn là dòng l nh c a shell hi n th i). Cũng có th b đi dòng l i khuyên này khi đi u ch nh c u hình c a chương trình. S ti t ki m có hai lý do. danh sách t p tin c a m t thư m c nào đó và dòng tr ng thái nh (mini-status. kích thư c t p tin và quy n truy c p). có th không hi n th n u đ t trong c u hình chương trình). vì có hi n th trình đơn hay không đư c xác đ nh b i c u hình chương trình). Vi c hi n th các nút có th t t đi.2: V ngoài c a màn hình Midnight Commander đ ng mc b n đ c không nhìn th y dòng trình đơn đâu. n u như b n đ c mu n ti t ki m không gian màn hình (cách làm s có sau này khi chúng ta nói v c u hình chương trình). Có th coi dòng này là l i mách nư c v cách s d ng nh ng phím ch c năng đã nói. Trên dòng tr ng thái nh có hi n th m t vài d li u v t p tin hay thư m c đang đư c thanh chi u sáng ch đ n (ví d . m i nút tương ng v i m t phím ch c năng <F1> – <F10>. M i b ng g m ph n đ u. . b n đ c s nhanh chóng nh đư c công d ng c a 10 phím này. ngo i tr <F1> và <F9>. và l i mách nư c s tr thành không c n thi t (và vi c nh n chu t lên các nút không ph i lúc nào cũng thu n ti n).

Chương trình xem t p tin n i trú. Xin đưa ra m t b ng ng n g n li t kê các t h p phím dùng chung đ đi u khi n vi c di chuy n.2: Di chuy n trong trình xem t p tin Phím Di chuy n th c hi n <B> ho c <Ctrl>+<B> ho c <Ctrl>+<H> ho c Lùi l i m t trang <Backspace> ho c <Delete> <D u cách> Ti n t i m t trang <U> ( <D> ) Lùi l i (ti n t i) n a trang <G> (<Shift>+<G>) Đi t i đ u (cu i) danh sách . Nh ng liên k t đó đư c đánh d u b i n n màu xanh nh t . H u h t các thao tác đư c th c hi n trong thư m c này.3 Tr giúp 129 Ch m t trong hai b ng là hi n th i (ho t đ ng). B ng hi n th i có thanh chi u sáng tên thư m c ph n đ u và thanh chi u sáng m t trong nh ng dòng c a b ng đó. Các thao tác như sao chép (<F5>) hay di chuy n (<F6>) t p tin s d ng thư m c đư c hi n th trong b ng th hai làm thư m c đích đ n (s sao chép hay di chuy n đ n thư m c này). trong shell đã ch y chương trình Midnight Commander.3 Tr giúp Khi làm vi c v i chương trình Midnight Commander.1: Các t h p phím di chuy n dùng chung Phím Di chuy n th c hi n <↑> ho c <Ctrl>+<P> Di chuy n tr l i (lên trên) m t dòng <↓> ho c <Ctrl>+<N> Di chuy n v phía trư c (xu ng dư i) m t dòng <Page Up> ho c <Alt>+<V> Quay l i m t trang <Page Down> ho c <Ctrl>+<V> Ti n v trư c m t trang <Home> Quay v dòng đ u <End> Chuy n đ n dòng cu i cùng 6.1. chương trình xem tr giúp còn ch p nh n nh ng t h p phím s d ng trong chương trình con dùng đ xem t p tin: B ng 6. Liên k t đư c ch n hi n th i s có n n màu xanh đ m . thư m c hi n th i là thư m c đư c hi n th trong b ng ho t đ ng. Ngoài nh ng t h p phím di chuy n nói chung trong b ng 6. chương trình xem l i mách nư c và chương trình xem thư m c s d ng cùng m t mã chương trình đ đi u khi n vi c di chuy n. t c là trong văn b n có c nh ng liên k t đ n nh ng ph n khác. Tr giúp đư c t ch c dư i d ng siêu văn b n.6. Trong b ng ho t đ ng m t dòng đư c chi u sáng. Tương t . Đ di chuy n trong c a s xem tr giúp có th s d ng nh ng phím mũi tên ho c chu t. có th xem tr giúp vào b t kỳ lúc nào nh phím <F1>. Vì th vi c di chuy n s d ng m t b các t h p phím (nhưng trong m i chương trình con có các t h p phím ch áp d ng trong n i b mà thôi). Thanh chi u sáng có th di chuy n nh các phím đi u khi n vi c di chuy n. B ng 6.

thì khi nh n kép chu t trái lên t p tin screenshot.jpg. Tính năng này đư c th c hi n n u có ch y driver gpm không ph thu c vào nơi ngư i dùng làm vi c là trên kênh giao tác Linux hay ch y Midnight Commander trên xterm (ho c th m chí s d ng k t n i t xa qua telnet.4 S d ng chu t Chương trình Midnight Commander có h tr chu t. thì s th c hi n di chuy n dài 1 c t t p tin v phía đ u danh sách. N u như có h tr chu t (xem ph n 6.jpg trông ra sao. Nh n chu t (b t kỳ nút nào) lên trình đơn trên cùng s m ra (nói đúng hơn là m xu ng dư i) trình đơn con c a nó. <Esc> Thoát kh i tr giúp B n có th s d ng phím tr ng (space) đ chuy n t i trang tr giúp ti p theo và phím <B> đ quay l i m t trang. Chu t ph i s d ng đ quay l i ph n đã xem trư c đó. Nh n chu t (b t kỳ nút nào) lên các nút ch c năng (các nút F1-F10 dư i cùng) cũng đ ng th i ch y chương trình tương ng v i nút đó.jpg. 6. Đ đánh d u (ch n) t p tin nào đó.3: Di chuy n khi xem tr giúp Phím Di chuy n th c hi n <Tab> Đi t i liên k t ti p theo <Alt>+<Tab> Quay l i liên k t trư c <↓> Đi t i liên k t ti p theo ho c kéo lên m t dòng <↑> Quay l i liên k t trư c ho c kéo xu ng m t dòng <→> ho c <Enter> M trang mà liên k t hi n th i ch t i <←> ho c <L> M trang tr giúp v a xem trư c trang hi n th i <F1> Tr giúp s d ng c a b n thân tr giúp <N> Chuy n t i ph n ti p theo c a tr giúp <P> Chuy n t i ph n n m trư c c a tr giúp <C> Chuy n t i m c l c c a tr giúp <F10>.3). khi này tên t p tin s có màu khác (theo m c đ nh là màu vàng ). Nh n chu t trái lên liên k t đ chuy n t i văn b n mà liên k t này ch t i. ch c n nh n nút chu t ph i lên tên c a t p tin đó. rlogin hay ssh). Nh n . chương trình xv s cho chúng ta th y t p tin screenshot.4). B ng 6. Ví d chương trình xv đư c gán đ m các t p tin hình n *. Chương trình ghi nh th t di chuy n theo liên k t và cho phép tr l i ph n đã xem trư c đó b ng phím <L>. ho c ch y chương trình có kh năng và đã đư c gán đ đ c t p tin này. N u nh n chu t lên khung trên cùng c a b ng có m t danh sách các t p tin r t dài. Nh n kép chu t trái lên tên t p tin đ th c hi n t p tin (n u đây là m t chương trình). thì có th s d ng chu t đ di chuy n. B ng cách nh n nút chu t trái s có th di chuy n dòng chi u sáng lên b t kỳ t p tin nào trong các b ng.130 S d ng Midnight Commander Ngoài nh ng t h p phím đã ch ra còn có th s d ng nh ng t h p ch làm vi c khi xem tr giúp (chúng đư c li t kê trong b ng 6. Đ b đánh d u thì cũng ch c n s d ng nút chu t ph i đó.

(Listing mode.. thì tương ng s th c hi n di chuy n dài 1 c t t p tin v phía cu i danh sách. b n c n nh n và gi phím <Shift>.. Tuy nhiên có th hi n th nh ng thông tin khác trên b ng. ˆ Đ nh d ng Thu g n (Brief) ch hi n th tên t p tin. thì có th s d ng câu l nh D ng danh sách. C n chú ý r ng tính năng này không làm vi c trong các trình gi l p terminal như xterm. Phương pháp di chuy n này cũng làm vi c khi xem tr giúp và xem danh sách Cây thư m c N u ch y mc v i h tr chu t thì ngư i dùng có th th c hi n các thao tác sao chép và dán văn b n khi gi phím <Shift>.) c a b ng (trái ho c ph i) tương ng.6. do đó trên m i b ng có hai c t và hi n th đư c s t p tin nhi u g p đôi. sau đó th phím <Shift> ra. Hình 6. Thu g n (Brief).. kích thư c c a nó và th i gian s a đ i g n nh t. r i l i nh n và gi phím <Shift> trong khi nh n chu t ph i. Có 4 kh năng đ ch n: Đ y đ (Full). Trong ph n này s nói đ n cách thay đ i d ng c a b ng hay cách hi n th thông tin trên b ng. đưa con tr đ n nơi c n dán. . N u b n đ c mu n thay đ i d ng hi n th danh sách t p tin. Đ làm đư c đi u này.1 D ng danh sách t p tin D ng b ng trên đó hi n th danh sách t p tin và thư m c con có th thay đ i qua các câu l nh c a th c đơn m ra khi ch n B ng trái (Left) và B ng ph i (Right). 6. ch n đo n văn b n c n thi t b ng cách kéo chu t.. M r ng (Long) và Ngư i dùng t xác đ nh (User).5 Đi u khi n các b ng Các b ng c a Midnight Commander thông thư ng hi n th nh ng gì có trong thư m c c a h th ng t p tin (vì th thư ng đư c g i là b ng thư m c).5. 6.3: H p tho i ch n đ nh d ng hi n th ˆ Đ nh d ng Đ y đ (Full) hi n th tên t p tin.5 Đi u khi n các b ng 131 chu t lên khung n m dư i c a b ng.

ˆ N u ch n đ nh d ng Ngư i dùng t xác đ nh (User). Khi t đưa ra đ nh d ng. khi đó ch đưa ra kích thư c t p tin. ˆ atime – th i gian truy c p đ n t p tin l n cu i. = (gi u b ng) – cho các sockets.132 S d ng Midnight Commander ˆ Đ nh d ng M r ng (Long) hi n th t p tin như khi th c hi n câu l nh ls -l. ˆ size – kích thư c t p tin. ng) – cho các t p tin d ng FIFO. thì ngư i dùng c n đưa ra d ng hi n th t ch n c a mình. còn đ i v i thư m c con thì ch đưa ra dòng ch “SUB-DIR” ho c “UP–DIR”. ˆ type – hi n th d ng t p tin (m t ký t ). ˆ nlink – s liên k t đ n t p tin. . @ (at-sign) – cho liên k t (links). . Có th s d ng nh ng tên vùng sau: ˆ name – tên t p tin. ˆ nuid – ch s xác đ nh c a ngư i dùng (UID). V i đ nh d ng này m t b ng chi m h t màn hình. ˆ bsize – kích thư c d ng khác. | (pipe. thì đ u tiên c n ch ra kích thư c c a b ng: “half” (m t n a màn hình) ho c “full” (toàn màn hình). ˆ ngid – ch s xác đ nh c a nhóm (GID). Sau kích thư c b ng có th ch ra là trên b ng ph i có hai c t b ng cách thêm s 2 vào dòng đ nh d ng. ˆ perm – dòng ch ra quy n truy c p đ n t p tin. Ti p theo c n li t kê tên nh ng vùng hi n th cùng v i chi u r ng c a vùng. / (slash) – cho thư m c. ˆ owner – ch s h u t p tin. ˆ mode – quy n truy c p d ng s 8bit. + (d u c ng) – cho các thi t b trao đ i theo block. ! (d u ch m than) – cho các liên k t tư ng trưng đã h ng (stalled) (liên k t ch đ n t p tin không còn n a). ˆ mtime – th i gian s a đ i t p tin cu i cùng. ∼ (d u sóng) – cho các liên k t tư ng trưng đ n thư m c. ˆ ctime – th i gian t o t p tin. Ký t nh ng giá tr mà câu l nh ls -F đưa ra: này có th là m t trong * (asterisk) – cho t p tin chương trình.(g ch ngang) – cho các thi t b trao đ i theo byte.

Theo m c đ nh các thư m c con đư c hi n th đ u danh sách.6.name.size. nlink. space. space.. size..|.type. name Dư i đây là ví d d ng hi n th do ngư i dùng đưa ra: half name.) trong trình đơn tương ng c a m i b ng. Đ có th xác đ nh chính xác chi u r ng c a m t vùng. space. sau đó ch ra s v trí (ký t ) c n gi cho vùng này.|. đ nh d ng Đ y đ (Full) th c ch t đư c xác đ nh b i dòng: half type.. (Configuration.5 Đi u khi n các b ng ˆ group – nhóm s h u t p tin. và n u màn hình cho phép thì vùng s đư c m r ng. hay s p x p có tính đ n ki u ch thư ng ch hoa hay không (tùy ch n Tính đ n ki u ch (case sensitive)).) th c đơn C u hình (Option). Ví d . 133 Đ ng th i còn có th s d ng nh ng tên vùng sau đ t ch c vi c hi n th thông tin ra màn hình: ˆ space – chèn kho ng tr ng.. group.|. ˆ inode – ch m c inode c a t p tin. c n thêm d u hai ch m ‘:’.. nhưng cũng có th thay đ i n u đánh d u tùy ch n Tr n l n t t c t p tin (“Mix all files”) c a câu l nh C u hình. ˆ | – chèn đư ng th ng đ ng.|. space. N u sau s v tr có đ t d u ‘+’. space.4) ngoài vi c cho phép ch n cách s p x p còn cho phép ch n s p x p theo th t ngư c l i (đánh d u tuỳ ch n Ngư c l i (Reverse)). thì s đó s đư c hi u là chi u r ng nh nh t c a vùng. ho c kho ng tr ng – n u ngư c l i. owner. mtime.size:7.. Khi đó s hi n ra m t h p tho i (hình 6. Ngư i dùng cũng có th ch n ch hi n th trên b ng nh ng t p tin tương ng v i m t .mtime còn đ nh d ng M r ng (Long) thì xác đ nh b i: full perm. Có th ch n cách s p x p b ng cách ch n câu l nh Th t s p x p (Sort order.mode:3 Hi n th danh sách t p tin trên m i b ng còn có th s p x p theo m t trong 8 cách: ˆ Theo tên ˆ Theo ph n m r ng ˆ Theo kích thư c t p tin ˆ Theo th i gian s a đ i ˆ Theo th i gian truy c p l n cu i ˆ Theo ch m c inode ˆ Không s p x p. ˆ mark – chèn d u sao * (asterisk) n u t p tin đư c ch n. space.

thì ngư i dùng có th s d ng m i câu l nh đi u khi n vi c xem.5) trên b ng đưa ra thông tin v t p tin đư c chi u sáng (đư c ch n) trên b ng bên c nh..2.gz” đ ch hi n th nh ng t p tin nén tar. Trong th c đơn c a m i b ng còn có câu l nh Quét l i (Rescan) (tương đương v i câu l nh C p nh t (Refresh) trong các chương trình khác).. ..2 Nh ng ch đ hi n th khác Ngoài vi c đưa ra đ nh d ng hi n th danh sách t p tin trên b ng. v h th ng t p tin hi n th i (d ng. kích thư c ch tr ng và t ng s ch m c inode còn tr ng). Trong ch đ này b ng s hi n th n i dung c a t p tin đư c chi u sáng (đư c ch n) trên b ng bên c nh.6). ˆ Ch đ Cây thư m c (Tree). Trong ch đ này trên m t b ng hi n th cây thư m c d ng đ ho (hình 6. ví d . ˆ Ch đ Xem nhanh (Quick View). Ví d trên hình 6. Câu l nh Quét l i (phím nóng <Ctrl>+<R>) c p nh t l i danh sách t p tin hi n th trên b ng.1 và b ng 6.gz).4: H p tho i s p x p m u nào đó.) trong th c đơn c a m i b ng cho phép đưa ra nh ng m u mà tên t p tin s hi n th tương ng v i nó (ví d dùng m u “*.7 là khi dùng ch đ này đ xem nhanh n i dung t p tin HISTORY c a gói chương trình mediawiki. còn có th đưa b t kỳ b ng nào vào m t trong nh ng ch đ sau: ˆ Ch đ Thông tin (Info). Câu l nh L c t p tin. (Filter. như câu l nh sau hi n th cây thư m c m t c a s riêng. nh ng phím li t kê trong b ng 6. Đ ra b ng xem nhanh n i dung t p tin s d ng chương trình xem t p tin có s n trong mc.tar.134 S d ng Midnight Commander Hình 6. vì th n u dùng phím <Tab> đ chuy n sang b ng xem nhanh. Ch đ này tương t như khi ngư i dùng ch n câu l nh Cây thư m c (Directory Tree) t th c đơn Câu l nh (Command).. Tên c a thư m c con và đư ng d n đ n thư m c con luôn luôn đư c hi n th không ph thu c vào m u đưa ra.5. Đi u này có ích khi nh ng ti n trình khác t o hay xóa các t p tin. Trong ch đ này (hình 6. 6.

6: Ch đ cây thư m c .5 Đi u khi n các b ng 135 Hình 6.5: Ch đ thông tin Hình 6.6.

N u ngư i dùng mu n bi t thêm v cách s d ng nh ng ch đ này.. (FTP link. n m gi a ho c dư i cùng trong s nh ng t p tin đang hi n th (đang th y) trên b ng. Nh t h p phím này có th chuy n đ i nhanh chóng t ch đ hi n th M r ng (long) sang Thu g n hay ch đ do ngư i dùng xác đ nh.) và K t n i Shell. ..7: Ch đ xem nhanh ˆ Ch đ K t n i FTP.. Thay đ i b ng hi n th i (ho t đ ng). Dòng chi u sáng s chuy n t b ng đang là hi n th i sang b ng khác và như v y b ng sau s tr thành hiên th i.. Còn l i m i th k c đ nh d ng hi n th thông tin đ u tương t như nh ng gì s d ng cho các thư m c n i b . ˆ <Ctrl>+<\>.. nhưng s thu n ti n hơn n u s d ng các t h p phím đi u khi n. 6.5.3 Các t h p phím đi u khi n b ng Đ đi u khi n ch đ làm vi c c a b ng có th s d ng các câu l nh c a trình đơn đã nói t i trên. (Shell link.).136 S d ng Midnight Commander Hình 6.. ˆ <Tab> ho c <Ctrl>+<i>.. ˆ <Alt>+<T>. xin hãy xem tr giúp c a mc. Chuy n đ i vòng quanh gi a các đ nh d ng hi n th danh sách t p tin c a thư m c hi n th i. S d ng đ di chuy n dòng chi u sáng tương ng lên t p tin trên đ u. Hai ch đ này ch khác ch s d ng đ hi n th danh sách thư m c n m trên máy xa.. ˆ <Alt>+<G> ho c <Alt>+<R> ho c <Alt>+<J>. Hi n th danh sách thư m c thư ng dùng và chuy n t i thư m c l a ch n.

Chuy n t i thư m c ngay sau trong s nh ng thư m c đã xem. N u trong b ng hi n th i dòng chi u sáng là tên t p tin. Chuy n dòng chi u sáng t i v trí cu i cùng c a danh sách t p tin.5 Đi u khi n các b ng 137 ˆ <Home> ho c <Alt>+<‘<’>. . thì b ng th hai s chuy n vào ch đ hi n th các t p tin c a thư m c đư c chi u sáng. ˆ <Alt>+<O>. N u trong b ng hi n th i tên thư m c đư c chi u sáng. ˆ <Ctrl>+<PageUp>. Chuy n t i thư m c ngay trư c trong s nh ng thư m c đã xem.6. ˆ <Alt>+<U>. còn trên b ng còn l i hi n th danh sách t p tin. Tương đương v i vi c nh n chu t lên ký t >. Ch khi mc đư c ch y dư i kênh giao tác (console) c a Linux: th c hi n tương ng vi c chuy n (chdir) t i thư m c m (.) ho c t i thư m c đang đư c chi u sáng. ˆ <End> ho c <Alt>+<‘>’>. thì trên b ng th hai s hi n th n i dung c a thư m c m c a t p tin đó. Tương đương v i vi c nh n chu t lên ký t < góc trên c a b ng. <Ctrl>+<PageDown>. Chuy n dòng chi u sáng t i v trí đ u tiên c a danh sách t p tin. ˆ <Alt>+<Y>..

Sign up to vote on this title
UsefulNot useful