www.nhipsongcongnghe.net

I H C QU C GIA HÀ N I TRƯ NG I H C CÔNG NGH
=====================================

HÀ QUANG TH Y NGUY N TRÍ THÀNH

Giáo trình:

H

I U HÀNH UNIX - LINUX
Dành cho sinh viên ngành Công ngh thông tin, i n t - Vi n thông, Toán tin ng d ng

HÀ N I - 2004

M CL C
L I GI I THI U ..................................................................................................... 9 CHƯƠNG 1. GI I THI U CHUNG V LINUX...................................................... 10 1.1. Gi i thi u v UNIX và Linux...................................................................................... 10 1.1.1. Xu t x , quá trình ti n hóa và m t s c trưng c a h i u hành UNIX ......... 10 1.1.2. Gi i thi u sơ b v Linux................................................................................... 13 1.2. Sơ b v các thành ph n c a Linux ........................................................................... 17 1.2.1. Sơ b v nhân ..................................................................................................... 18 1.2.2. Sơ b v shell ..................................................................................................... 18 1.3. Gi i thi u v s d ng l nh trong Linux..................................................................... 20 1.3.1. Các quy ư c khi vi t l nh................................................................................... 22 1.3.3. Làm ơn gi n thao tác gõ l nh ........................................................................... 25 1.3.4. Ti p n i dòng l nh.............................................................................................. 29 1.4. Trang Man ................................................................................................................... 29 CHƯƠNG 2. THAO TÁC V I H TH NG ........................................................... 32 2.1. Quá trình kh i ng Linux......................................................................................... 32 2.2. Th t c ăng nh p và các l nh thoát kh i h th ng ................................................ 33 2.2.1. ăng nh p........................................................................................................... 33 2.2.2. Ra kh i h th ng................................................................................................. 36 2.2.3. Kh i ng l i h th ng ....................................................................................... 38 2.2.4. Kh i ng vào ch ho ............................................................................. 38 2.3. L nh thay i m t kh u .............................................................................................. 42 2.4. L nh xem, thi t t ngày, gi hi n t i và xem l ch trên h th ng ........................... 45 2.4.1 L nh xem, thi t t ngày, gi .............................................................................. 45 2.4.2. L nh xem l ch .................................................................................................... 47 2.5. Xem thông tin h th ng .............................................................................................. 48 2.6. Thay i n i dung d u nh c shell .............................................................................. 49 2.7. L nh g i ngôn ng tính toán s h c .......................................................................... 50 CHƯƠNG 3. H TH NG FILE ............................................................................. 53 3.1 T ng quan v h th ng file........................................................................................... 53 3.1.1. M t s khái ni m ................................................................................................ 53 3.1.2. Sơ b ki n trúc n i t i c a h th ng file............................................................. 57 3.1.3. M t s thu t toán làm vi c v i inode ................................................................. 63 3.1.4. H tr nhi u h th ng File.................................................................................. 66 3.1.5. Liên k t tư ng trưng (l nh ln) ............................................................................ 71

2

3.2 Quy n truy nh p thư m c và file ................................................................................ 72 3.2.1 Quy n truy nh p .................................................................................................. 72 3.2.2. Các l nh cơ b n .................................................................................................. 75 3.3 Thao tác v i thư m c.................................................................................................... 80 3.3.1 M t s thư m c c bi t ...................................................................................... 80 3.3.2 Các l nh cơ b n v thư m c ................................................................................ 83 3.4. Các l nh làm vi c v i file ............................................................................................ 87 3.4.1 Các ki u file có trong Linux ................................................................................ 87 3.4.2. Các l nh t o file.................................................................................................. 88 3.4.3 Các l nh thao tác trên file .................................................................................... 90 3.4.4 Các l nh thao tác theo n i dung file .................................................................... 98 3.4.5 Các l nh tìm file ................................................................................................ 106 3.5 Nén và sao lưu các file ................................................................................................ 115 3.5.1 Sao lưu các file (l nh tar) .................................................................................. 115 3.5.2 Nén d li u ....................................................................................................... 118 CHƯƠNG 4. QU N TR QUÁ TRÌNH................................................................. 122 4.1 Quá trình trong UNIX................................................................................................ 122 4.1.1. Sơ b v quá trình............................................................................................. 122 4.1.2. Sơ b c u trúc i u khi n c a UNIX................................................................ 123 4.1.3. Các h th ng con trong nhân ............................................................................ 125 4.1.4. Sơ b v i u khi n quá trình ........................................................................... 129 4.1.5. Tr ng thái và chuy n d ch tr ng thái ................................................................ 130 4.1.6. S ngưng ho t ng và ho t ng tr l i c a quá trình.................................... 132 4.1.7. Sơ b v l nh i v i quá trình ........................................................................ 132 4.2. Các l nh cơ b n.......................................................................................................... 133 4.2.1. L nh fg và l nh bg ............................................................................................ 133 4.2.2. Hi n th các quá trình ang ch y v i l nh ps ................................................... 135 4.2.3. H y quá trình v i l nh kill ............................................................................... 137 4.2.4. Cho máy ng ng ho t ng m t th i gian v i l nh sleep.................................. 139 4.2.5. Xem cây quá trình v i l nh pstree.................................................................... 139 4.2.6. L nh thi t t l i ưu tiên c a quá trình nice và l nh renice......................... 141 CHƯƠNG 5. QU N LÝ TÀI KHO N NGƯ I DÙNG ......................................... 142 5.1 Tài kho n ngư i dùng ................................................................................................ 142 5.2 Các l nh cơ b n qu n lý ngư i dùng ........................................................................ 142 5.2.1 File /etc/passwd ................................................................................................ 143 5.2.2 Thêm ngư i dùng v i l nh useradd................................................................... 143 5.2.3 Thay i thu c tính ngư i dùng ........................................................................ 146 5.2.4 Xóa b m t ngư i dùng (l nh userdel).............................................................. 147 3

Cách th c pipes ...............2................................................ L nh mail..............................................4.......................................2...............................1 H thông tin m ng NIS................................................................................................................................................. L nh set ........................1..................................................................... L nh truy n thông ............................................................................ 159 6... L P TRÌNH SHELL VÀ L P TRÌNH C TRÊN LINUX ........................ 150 5...1 Nhóm ngư i dùng và file /etc/group ...........................................................................4 Xóa m t nhóm ngư i dùng (l nh groupdel) .................................... 150 5................................................................... 170 7................................................8..... 194 7......................................2 Xác nh ngư i dùng ang ăng nh p (l nh who) . 149 5...........2 C u hình Card giao ti p m ng ................. M t s l nh l p trình trên shell .......... 166 6............4..........................................................7.....................................3 Xác nh các quá trình ang ư c ti n hành (l nh w)...2............................................... 168 6..................5.... 156 6.................. 151 5....... 149 5........................1.............................................................4............ 170 7.........................................................4 Các l nh cơ b n khác có liên quan n ngư i dùng ...... Hi n dòng văn b n.................................................................................................................. Chương trình ví d ........... 154 6..........6.........................3 S a i các thu c tính c a m t nhóm ngư i dùng (l nh groupmod) ................. 155 6...............2......... 167 6........................................4....2.......... TRUY N THÔNG VÀ M NG UNIX-LINUX.............1............ 148 5.....1............. Các d ch v m ng ..............1 ăng nh p v i tư cách m t ngư i dùng khác khi dùng l nh su ....1...........................1 Cài t NFS ............3...........1.... 153 CHƯƠNG 6..........3.................. i u khi n lu ng .......................4 S d ng mount..................... Cách th c pipes và các y u t cơ b n l p trình trên shell ... 175 7..................................3 Các toán t nh hư ng vào ra................................3 C u hình NFS server và Client ........................ 195 7........................2.................3 Các l nh cơ b n liên quan n nhóm ngư i dùng ..4........ 171 7.......... 164 6......... 159 6........1...........2. 168 CHƯƠNG 7....3................ S d ng các toán t bash ...................... 179 7...................................................................................................... 170 7........................1.................3......... 175 7.2...2.....................2 Thêm nhóm ngư i dùng .......................................1................................. 154 6...........................................................................................................................4....4............................5..........................................3....1............................. Tính toán trên các bi n .................. 150 5..................... L nh write............................... 148 5........ 194 7......................................................4........ 165 6................... L nh read c d li u cho bi n ngư i dùng ..4 H th ng file trên m ng ..............2 Kh i ng và d ng NFS............................... 154 6....6 Mount t ng qua t p c u hình.............2..................3.............5 Unmount ..................2.............4........ 167 6.............................3............................ 196 7..........................2.....4. Các y u t cơ b n l p trình trong shell ............. L nh talk ... 196 4 ................ 156 6............................ 193 7................................................

...................... 244 B......... Các l nh xoá văn b n trong vim .....................1.................................................................. 197 7.........3..................4....... M t s l nh trong ch o...............................................7......................... Công c GNU make ................... 254 B. Ghi và thoát trong vim .................................... Cách th c hi n các l nh bên trong Vim............ Làm vi c v i file.................................................................. 252 B.............................3................................................... Tìm ki m và thay th văn b n trong vim .............................................................................. Các l nh thay th văn b n trong vim ..............................1................................3................ ánh d u trong vim .3...10...................................................................... Di chuy n theo các i tư ng văn b n..... 244 B.......... 242 B..................2.................................................................................................1............................................................................................. Thư vi n liên k t..3...........................1...........................3................. 227 PH L C A.......1.......... Tính năng m nhi u c a s .......3......................... Các l nh chèn văn b n trong vim........................................... 245 B.............. 256 B......................... 250 6......................... 249 B..................3.......................4..................4.................................................... 257 5 ........................................ Các phím s d ng trong ch chèn.....2......... 249 B..................................3............... 224 T REDHAT-LINUX .... L p trình C trên UNIX .....................................2.3................................................................................ 239 PH L C B..... Sao chép và di chuy n văn b n trong vim ....................... 201 7...............................2............................ Phân vùng l i ĩa DOS/Windows hi n th i...... QUÁ TRÌNH CÀI AA....5 Các công c cho thư vi n .................2......... 256 B.................................................................4..... Các h n ch v ph n c ng i v i Linux .............................2............... 255 B....................... 228 AA....1 Kh i ng vim .......3... 253 B....2..2 và kh i ng t CD-ROM)........1 M chương trình so n th o vim........................... Cu n màn hình..............................1..................................................... 250 B......................3.........................2 ............................................................. 246 B................................ 228 AA................6......3..........3............................................................3.............................................2..........................7........1.......................................3........................................................8.... T o ĩa m m kh i ng ............2.... Các l nh l p .......... 257 B.....4......... 247 B............................. 248 B........ 257 B. 223 CHÚ THÍCH M T S THU T NG ............................................. 250 B.........................3.. 228 AA................... Các l nh khác .4..............................................................3...................9.... 197 7...............3............... 220 TÀI LI U THAM KH O ........................3.. TRÌNH SO N TH O VIM ...2... 247 B................................... 203 7...........3.........................1........... Các bư c cài t (b n RedHat 6........... Các l nh liên quan n file......... Di chuy n trong văn b n . 248 B.... Các thao tác trong văn b n ................... Các l nh khôi ph c văn b n trong vim ...................... 229 AA............................... 211 7. Di chuy n tr so n th o trong Vim ..................................5..................................3.... Cài t phiên b n RedHat 6.................. Trình biên d ch gcc ......................

...... Th c ơn thanh ngang (menu bar)......4 Các ph n c bi t c a file c u hình Samba...................... 267 PH L C D............................1.4............................ 266 C.....6.. Các phím ch c năng .................1 Cách s d ng t các máy tr m là Linux ................................................... 287 6 ......... 270 D................................................................................... 284 D...2 Cách s d ng t các máy tr m là Windows .....3.......................................... 259 C...........PH L C C.......................................................................................................................................................................................................... SAMBA.............................................................. 260 C.................................. Giao di n c a MC .. 261 C..................... 271 D........... 259 C..............5................................................... 259 C....... Kh i ng MC ...................................... 272 D................3 File c u hình Samba ............. 270 D...............................................................2 Các thành ph n c a Samba ... 263 C...................................................................................... B so n th o c a Midnight Commander..............................7.................... Dùng chu t trong MC .. Các thao tác bàn phím...................................6.........................................................................................................8.......................6............... 275 D..... MIDNIGHT COMMANDER ...................1 Cài t Samba ................................................................................................... Gi i thi u v Midnight Commander (MC) ............... 282 D..............5 Qu n lý ngư i dùng trong Samba.............................6 Cách s d ng Samba t các máy tr m..................................... 284 D.... 259 C.............2......................................................................

L I GI I THI U Trong hơn mư i năm tr l i ây h i u hành Linux ã 7 .

Xu t x . thư vi n qu n lý màn hình ư c phát tri n t i h c T ng h p California. UNIX-5 phiên b n 2 và 3 tương ng ư c ưa ra vào các năm 1985 và 1987.CHƯƠNG 1. Trư c ó. XENIX c a MicroSoft SUN OS Có th tìm th y các n i dung liên quan t i m t s phiên b n m i c a UNIX t i a ch website http://problem. D án nói trên thành công m c h t s c khiêm t n và ngư i ta ã bi t n m t s khi m khuy t khó kh c ph c c a Multics. AT&T gi i thi u H th ng UNIX-4 phiên b n th nh t trong ó ã có trình so n th o vi. và h i u hành ã tr nên d dàng cài t t i các lo i máy tính khác nhau. các công ty thương m i và chính ph v i giá không áng k . Năm 1983. UI là m t t ch c g m các nhà cung c p th c hi n vi c chuy n như ng h th ng UNIX-5 và cung c p b n AT&T theo các 8 . có kho ng 100000 b n UNIX ã ư c ph bi n trên th gi i. Berkley.edu/.1. GI I THI U CHUNG V LINUX 1.rice. h th ng UNIX-3 là b n UNIX thương m i u tiên c a AT&T. h i u hành ư c th hi n trên ngôn ng B (mà d a trên ngôn ng B. Ritche ã phát tri n thành ngôn ng C).1. a ngư i dùng. cài t t máy vi tính n các h th ng l n. Năm 1982. m t s kh i th o u tiên v H th ng file ã ư c Ken Thompson và Dennis Ritchie th c hi n. Năm 1973. quá trình ti n hóa và m t s c trưng c a h i u hành UNIX Năm 1965. kho ng năm 1971. Gi i thi u v UNIX và Linux 1. Vi n công ngh Massachusetts (MIT: Massachusetts Institute of Technology) và Phòng thí nghi m Bell c a hãng AT&T th c hi n d án xây d ng m t h i u hành có tên g i là Multics (MULTiplexed Information and Computing Service) v i m c tiêu: t o l p ư c m t h i u hành ph trên vùng lãnh th r ng (ho t ng trên t p các máy tính ư c k t n i). ngư i ã tham gia d án Multics. Năm1969. Giai o n 1985-1987. UNIX-5 phiên b n 4 ư c ưa ra như là m t chu n c a UNIX. có năng l c cao v tính toán và lưu tr . Ken Thompson. n năm 1970 h i u hành ư c vi t trên assembler cho máy PDP-11/20 và mang tên là UNIX. Các nhóm nhà cung c p khác nhau v UNIX ang ho t ng trong th i gian hi n nay ư ck n như sau: Unix International (vi t t t là UI).1. ây là s k t h p c a các b n sau: AT&T UNIX-5 phiên b n 3. tính ch t như th ư c g i là tính kh chuy n (portable) c a UNIX. Trong h i u hành UNICS. u th p k 1990. m t chuyên viên t i phòng thí nghi m Bell. cùng Dennics Richie vi t l i h i u hành a-bài toán trên máy PDP-7 v i tên là UNICS (UNiplexed Information and Computing Service) t m t câu g i ùa c a m t ng nghi p. Berkley Software Distribution (BSD). Trong giai o n này. Riche và Thompson vi t l i nhân c a h i u hành UNIX trên ngôn ng C. Hãng AT&T ph bi n chương trình ngu n UNIX t i các trư ng i h c.

d thay i cài t trên lo i máy m i (tính d mang chuy n. S d ng duy nh t m t h th ng File có c u trúc cho phép d dàng b o qu n và s d ng hi u qu .. Open Software Foundation (OSF). DEC. b i v y. HP . Th a mãn nguyên t c xây d ng các chương trình ph c t p t nh ng chương trình ơn gi n hơn: trư c h t có các mô un cơ b n nh t c a nhân sau ó phát tri n có toàn b h i u hành. Giao di n h a ngư i dùng là Open Look. 9 . B ng sau ây li t kê m t s cài t UNIX khá ph bi n (thư ng th y có ch X cu i tên g i c a H i u hành): Tên h AIX A/UX Dynix HP-UX Irix Linux NextStep OSF/1 SCO UNIX Solaris SunOS Ultrix Unicos UnixWare XENIX Nhà cung c p International Business Machines Apple Computer Sequent Hewlett-Packard Silicon Graphics Free SoftWare Foundation Next Digital Equipment Corporation Santa Cruz Operation Sun Microsystems Sun Microsystems Digital Equipment Corporation Cray Novell MicroSoft N n phát tri n AT&T System V AT&T System V BSD (Berkeley SoftWare Distribution) BSD AT&T System V BSD BSD AT&T System V AT&T System V BSD UNIX BSD UNIX AT&T System V AT&T System V AT&T System III-MS Dư i ây li t kê m t s c trưng c a h i u hành UNIX: H i u hành ư c vi t trên ngôn ng b c cao. như ã nói)..nhu c u và thông báo phát hành m i. Free SoftWare Foundation (FSF): m t c ng ng do Richard Stallman kh i xư ng năm 1984 ch trương phát hành các ph n m m s d ng t do. Có giao di n ngư i dùng ơn gi n năng l c cung c p các d ch v mà ngư i dùng mong mu n (so sánh v i các h i u hành có t trư c ó thì giao di n c a UNIX là m t ti n b vư t b c). d hi u. theo hư ng phát tri n m t phiên b n c a Unix nh m tranh ua v i h th ng UNIX-5 phiên b n 4. Phiên b n này có tên là OSF/1 v i giao di n h a ngư i dùng ư c g i là MOTIF. ch ng h n như i u ch nh b n quy n. OSF ư c h tr b i IBM. r t d c. trên cơ s m t h i u hành thu c lo i UNIX.

Gi i thi u sơ b v Linux Linus Tovalds (m t sinh viên Ph n lan) ưa ra nhân (phiên b n u tiên) cho h i u hành Linux vào tháng 8 năm 1991 trên cơ s c i ti n m t phiên b n UNIX có tên Minix do Giáo sư Andrew S. hàng v n chuyên gia trên toàn th gi i (nh ng ngư i này hình thành nên c ng ng Linux) ã tham gia vào quá trình phát tri n Linux và vì v y Linux ngày càng áp ng nhu c u c a ngư i dùng.0 ch nó h tr m t ph m vi r ng và phong phú ph n c ng.0 là nó ã h tr giao th c m ng TCP/IP chu n UNIX. Dư i ây là m t s m c th i gian quan tr ng trong quá trình hình thành và phát tri n h i u hành Linux.5.2 là nhân k t thúc dòng nhân Linux ch h tr PC. sánh v i giao th c socket BSD. m b o tính c l p tương i c a chương trình i v i d li u và ph n c ng.2 ư c ph bi n. Và cũng t th i i m ó. ch ng h n hai m c như 2. a quá trình. quy ư c r ng v i các ch s t m c th hai tr i. bao g m c ki n trúc tuy n ph n c ng PCI m i. trong ó m i ngư i dùng có th th c hi n các quá trình c a mình m t cách c l p. Che khu t c u trúc máy i v i ngư i dùng.ra c a h i u hành ư c th c hi n trên h th ng File: m i thi t b vào ra tương ng v i m t file.0 ã vư t xa h th ng file c a Minix thông thư ng. Vào tháng 3-1995. H th ng ch s ư c chia thành m t s m c. h i u hành Linux phiên b n 1. Nhân Linux 1.2 so v i Linux 1. 1 0 . i u áng k c a Linux 1. Là h i u hành a ngư i dùng. thao tác v i các d li u trong File.1. M i thao tác vào .0).4 ho c ba m c như 2. Chương trình ngư i dùng làm vi c v i file ó mà không c n quan tâm c th tên file ó ư c t cho thi t b nào trong h th ng. Có k t n i ơn gi n v i thi t b ngo i vi: các file thi t b ã ư c t s n trong H th ng File t o ra m t k t n i ơn gi n gi a chương trình ngư i dùng v i các thi t b ngo i vi. hàng nghìn. Nhân Linux tuy nh song là t óng gói.2. nhân 1. ngoài ra ã h tr i u khi n SCSI truy nh p ĩa t c cao. n ngày 14-3-1994. Trình i u khi n thi t b ã ư c b sung ch y IP trên m t m ng Ethernet ho c trên tuy n ơn ho c qua modem. Sau ba năm nhân Linux ra i. Thành công l n nh t c a Linux 1. H th ng file trong Linux 1. Tanenbaum xây d ng và ph bi n. còn n u là s l thì dòng nhân ó v n ang ư c phát tri n ti p.S d ng ph bi n m t d ng ơn gi n trình bày n i t i c a File như m t dòng các byte cho phép d dàng khi vi t các chương trình ng d ng truy nh p. Trong cách ánh ch s như v y.tương thích cho l p trình m ng. n u là s ch n thì dòng nhân ó ã khá n nh và tương i hoàn thi n. i u khi n b nh o ã ư c m r ng h tr i u khi n trang cho các file swap và ánh x b nh c a file c quy n (ch có m t ánh x b nh ch c ư c thi hành trong Linux 1. h i u hành Linux ã ư c hình thành.0 ư c ph bi n. K t h p v i các thành ph n trong h th ng GNU. theo tư tư ng GNU.2. M t i u c n lưu ý v các ánh ch s các dòng nhân (h i u hành) Linux. t o i u ki n thu n l i hơn cho ngư i l p trình khi vi t các chương trình ch y UNIX v i các i u ki n ph n c ng hoàn toàn khác bi t nhau. 1.

3BSD song sau ó ã ư c c ng ng Linux phát tri n. bao g m c c ng Alpha 64-bit y .Tháng 6-1996.0 cũng thi hành ư c trên b x lý Motorola 68000 và ki n trúc SPARC c a SUN. r t thu n l i cho vi c xây d ng các gi i pháp toàn di n và tri t iv iv n ngôn ng t nhiên trên ph m vi toàn th gi i. Nhân Linux là ph n m m t do ư c phân ph i theo Gi y phép s h u công c ng ph n m m GNU GPL. Các thành ph n tích h p H i u hành Linux Linux s d ng r t nhi u thành ph n t D án ph n m m t do GNU. Có hai c trưng n i b t c a Linux 2. Tuy nhiên. do có s tham gia ông o c a các cá nhân và nhóm phát tri n Linux. M t trong c i m ư c quan tâm c a nhân này là nó h tr mã ký t Unicode 32 bít. ngư i dùng Linux ph i ti n hành toàn b các thao tác này và vì v y công vi c là khá v t v . so n th o văn b n và th m chí các trò chơi. sau ó ư c r t nhi u ngư i trong c ng ng Linux phát tri n ti p. công c x lý. ã ti n hành th c hi n nhi u gi i pháp nh m làm cho công vi c kh i t o h th ng v tv . và h tr ki n trúc a b x lý. nâng c p và lo i b . s n sàng kh i t o c a nhi u b công c UNIX dùng chung. ch ng h n như trình biên d ch GNU C (gcc).4 ư c ph bi n. Các b n phân ph i ngày nay bao g m các cơ s d li u ti n hóa gói. và chính h là nh ng chuy n bi n m nh m trong c ng ng Linux i v i công vi c qu n lý gói kh i t o Linux. Cách th c phân ph i ban u r t ơn gi n song ngày càng ư c nâng c p và hoàn thi n b ng phương ti n qu n lý gói tiên ti n. ch ng h n như thư vi n toán h c ng x lý d u ch m ng Intel và các trình i u khi n thi t b ph n c ng âm thanh PC. Các tool qu n lý m ng này sau ó l i ư c b sung vào h th ng BSD. Các tool qu n lý m ng ư c b t ngu n t mã 4. ch ng h n như ph c v tin. t h i u hành BSD c a i h c Berkeley và t h th ng X-Window c a MIT. Ti n ích qu n lý gói RPM (RedHat Package Manager) c a công ty RedHat là m t trong nh ng phương ti n i n hình. Trong th i kỳ u tiên.0 ư c ph bi n. cũng như nhi u gói ã ư c ti n d ch. Các thi hành c a Linux d a trên vi nhân GNU Mach cũng ch y trên PC và PowerMac. Nhà phân ph i u tiên th c hi n theo phương châm này là Slakware. thi u hi u qu và g r i. T i năm 2000. Chúng thư ng bao g m các ti n ích b sung cho kh i t o h th ng. 1 1 .0 là h tr ki n trúc ph c h p. nhân Linux 2. Nh ng t p h p như v y hay nh ng b n phân ph i là l n hơn nhi u so v i h th ng Linux cơ s . các thư vi n qu n lý. Phân ph i nhân Linux 2. m i ngư i có th kh i t o m t h th ng Linux b ng cách ti p nh n b n m i nh t các thành ph n c n thi t t các site ftp và biên d ch chúng. Thư vi n h th ng chính c a Linux ư c b t ngu n t D án GNU. chu n hóa. V n phân ph i và gi y phép Linux V lý thuy t. trình duy t web.M t trong nh ng gi i pháp i n hình nh t là cung c p t p các gói chương trình ã ti n d ch. cho phép các gói d dàng ư c kh i t o. nhân Linux 2. M t s thành ph n khác c a D án GNU. v n là ch t lư ng cao nên ư c s d ng nguyên xy trong Linux. nh ng phát tri n ti p theo như v y ch y u liên quan t i vi c gi i quy t các v n như thi u v ng a ch (l i trang).

M ts c i m chính c a Linux Dư i ây trình bày m t s c i m chính c a c a h Linux tương thích v i nhi u h i u hành Linux hi n t i: i u hành như DOS. ư c chu n c a UNIX nên s chuy n i gi a Linux và các h UNIX khác c trưng là a ngư i dùng. Kh năng tương thích c a Linux v i m t s lo i thi t b ph n c ng còn th p do chưa có các trình i u khi n cho nhi u thi t b .. Linux là m t h i u hành h tr a ngôn ng m t cách toàn di n nh t. Do Linux cho phép h tr các b mã chu n t 16 bit tr lên (trong ó có các b mã ISO10646.. qu n lý m ng. a Linux là m t h i u hành UNIX tiêu bi u v i các chương trình và a x lý.: Cho phép cài t Linux cùng v i các h i u hành khác trên cùng m t c ng. Thêm vào ó. Linux có th truy nh p n các file c a các h i u hành cùng m t ĩa. Linux h tr nhi u giao th c m ng. Do gi là d dàng. Linux h tr t t cho tính toán song song và máy tính c m (PC-cluster) là m t hư ng nghiên c u tri n khai ng d ng nhi u tri n v ng hi n nay.H th ng Linux ư c duy trì g n như b i m t m ng lư i không ch t ch các nhà phát tri n ph n m m c ng tác v i nhau qua Internet. Linux ngày càng ư c h tr b i các ph n m m ng d ng b sung như so n th o. hi n nay chưa xu t hi n Linux trên máy tính l n (mainframe). Tài li u Chu n phân c p h th ng file (File System Hierarchy Standard) ư c c ng ng Linux duy trì nh m gi tính tương thích xuyên qua s khác bi t r t l n gi a các thành ph n h th ng. Tuy nhiên. b t ngu n và phát tri n t dòng BSD. Unicode) cho nên vi c b n a hóa trên Linux là tri t nh t trong các h i u hành.. m ng lư i này g m các nhóm nh và cá nhân ch u trách nhi m duy trì tính toàn v n c a t ng thành ph n. tuy nhiên. dư i ây là m t s khó khăn i n hình: Tuy ã có công c h tr cài t. vi c cài t Linux còn tương i ph c t p và khó khăn. Linux ư c cài t trên nhi u ch ng lo i máy tính khác nhau như PC. Linux có giao di n ho (GUI) th a hư ng t h th ng X-Window. 1 2 . Linux khá m nh và ch y r t nhanh ngay c khi nhi u quá trình ho c nhi u c a s . ư c phát tri n qua c ng ng ngu n m (bao g m c Free Software Foundation) nên Linux phát tri n nhanh. Linux là m t trong m t s ít các h i u hành ư c quan tâm nhi u nh t trên th gi i hi n nay. M t lư ng nh các site phân c p ftp Internat công c ng ã óng vai trò nhà kho theo chu n de facto ch a các thành ph n này. Tuy nhiên cũng t n t i m t s khó khăn làm cho Linux chưa th c s tr thành m t h i u hành ph d ng. b ng tính . Là m t h i u hành v i mã ngu n m . Linux còn h tr tính toán th i gian th c. qu n tr cơ s d li u. Linux cho phép ch y mô ph ng các chương trình thu c các h i u hành khác. Mini và vi c cài t khá thu n l i.. MicroSoft Windows .

thì v n còn có kho ng cách. . ho c c p nh t các file log.com Debian GNU/Linux www.com TurboLinux www. HP .. . bao g m b nh o và quá trình. B ng dư i ây là tên c a m t s nhà cung c p Linux có ti ng nh t và a ch website c a h . Trong các chương sau có c p t i nhi u n i dung liên quan n nhân và shell. g m shell và ba thành ph n ( ã d ng mã chương trình) sau ây: . còn Red Flag là m t công ty Linux c a Trung qu c. song dư i ây là m t s nét sơ b v chúng. i u khi n các bài toán như hư ng ng các k t n i m ng m i n.2. các khó khăn c a Linux ch c ch n s nhanh chóng ư c kh c ph c.com Slackware Linux www.com Corel Linux www.. bao g m c quy n thư ng tr c b nh trong. có quan h v i c ng ng Linux Vi t nam và chúng ta có th h c h i m t cách tr c ti p kinh nghi m cho quá trình ưa Linux vào Vi t nam.Thư vi n h th ng xác nh m t t p chu n các hàm các ng d ng tương tác v i nhân. theo thu t ng UNIX ư c g i là trình ch y ng m (daemon). Ti n ích (hay l nh) có s n trong h i u hành (dư i ây ti n ích ư c coi là l nh thư ng tr c).com Red Flag Linux www.suse. ti p nh n yêu c u logon. SUN. M t s ti n ích h th ng ư c g i ra ch m t l n kh i ng và c u hình phương ti n h th ng. Tên công ty a ch website Caldera OpenLinux www.slackware.debian.redhat. Sơ b v các thành ph n c a Linux H th ng Linux. 1 3 .turbolinux.) và s tham gia phát tri n c a hàng v n chuyên gia trên toàn th gi i thu c c ng ng Linux. M t h th ng con i n hình ư c thi hành d a trên thư viên h th ng là h th ng file Linux. H th ng file s ư c gi i thi u trong chương 3.mandrake.Ph n m m ng d ng ch y trên n n Linux tuy ã phong phú song so v i m t s h i u hành khác.Nhân h i u hành ch u trách nhi m duy trì các i tư ng tr u tư ng quan tr ng c a h i u hành. V i s h tr c a nhi u công ty tin h c hàng u th gi i (IBM.corel.com Red Hat Linux www.redflag-linux. c bi t là khi so sánh v i MS Windows. Red Hat ư c coi là lâu i và tin c y. Các mô un chương trình trong nhân ư c c quy n trong h th ng.caldera. Chính vì l ó ã hình thành m t s nhà cung c p Linux trên th gi i.com Linux Mandrake www. áng chú ý nh t là Red Hat Linux (t i M ) và Red Flag Linux (t i Trung Qu c).com 1. N i dung chính y u c a tài li u này gi i thi u chi ti t v m t s l nh thông d ng nh t c a Linux. ư c thi hành như m t h i u hành UNIX truy n th ng. m t s ti n ích khác. có th ch y m t cách thư ng xuyên (thư ng theo chu kỳ).Ti n ích h th ng là các chương trình thi hành các nhi m v qu n lý riêng r . chuyên bi t. và thi hành nhi u ch c năng c a h th ng nhưng không c n có các c quy n c a mô un thu c nhân.com SuSE Linux www.

t c là h th ng c n phân chia CPU cho nhi u quá trình hi n th i cùng t n t i. M t c i m áng chú ý là file trong Linux có th ư c nhi u ngư i cùng truy nh p t i nên các l i g i h th ng làm vi c v i file c n m b o vi c file ư c truy nh p theo quy n và ư c chia x cho ngư i dùng.1. M t trong nh ng ch c năng quan tr ng nh t c a nhân là gi i quy t bài toán l p l ch. Ngư i dùng s d ng bàn phím gõ n i dung yêu c u c a mình và yêu c u ó ư c nhân g i t i shell: Shell phân tích l nh và g i các chương trình tương ng v i l nh th c hi n. Bourne-shell (d u nh c $) và m t s shell phát tri n t các shell nói trên (ch ng h n. C-shell có tên g i như v y là do cách vi t l nh và chương trình l nh Linux t a như ngôn ng C. TCshell . s lư ng quá trình có th lên t i con s hàng nghìn. Sơ b v shell M t s n i dung chi ti t v shell (còn ư c g i là h v ) trong Linux ư c trình bày trong chương "L p trình trên shell". L nh ư c chia thành 3 lo i l nh: 1 4 . Linux có hai cách th c làm vi c v i các file: làm vi c theo byte (kí t ) và làm vi c theo kh i. Khi shell s n sàng ti p nh n dòng l nh c a ngư i dùng. 1.bash v i d u nh c bash # phát tri n t Bourne-shell). và t dòng l nh nói trên.2. Sơ b v nhân Nhân (còn ư c g i là h lõi) c a Linux. Nhân chính là c u n i gi a chương trình ng d ng v i ph n c ng. Nh ng n i dung trình bày dư i ây cung c p m t cách nhìn sơ b v shell và vai trò c a nó trong ho t ng chung c a h i u hành. V i s lư ng quá trình ng th i nhi u như v y. chúng ta s d ng kí hi u "hàng rào #" bi u th d u nh c shell. shell ch i quá trình con này ti n hành. các thu t toán l p l ch c n ph i hi u qu : Linux thư ng l p l ch theo ch Round Robin (RR) th c hi n vi c luân chuy n CPU theo lư ng t th i gian. là m t b các môdun chương trình có vai trò i u khi n các thành ph n c a máy tính. Ti p theo. shell s d ng nhân kh i sinh m t quá trình m i (kh i t o quá trình) và sau ó. m t d u nh c shell (còn g i là d u nh c nh p l nh) xu t hi n trên màn hình. phân ph i các tài nguyên cho ngư i dùng (các quá trình ngư i dùng). n u xu t hi n thông báo "Command not found" thì shell ó là Bourne-shell. nhân tách ra các b ph n nh n ư c m t hay m t s l nh tương ng v i các o n văn b n có trong dòng l nh. hoàn thi n và k t thúc.1. ngư c l i. Bourne-shell mang tên tác gi c a nó là Steven Bourne. các t ti p theo (n u có) là các tham s .2. i v i Linux.2.tcsh v i d u nh c ng m nh > phát tri n t C-shell và GNU Bourne . Trong tài li u này. D u m i phân bi t shell nói trên không ph i hoàn toàn rõ ràng do Linux cho phép ngư i dùng thay i l i d u nh c shell nh vi c thay giá tr các bi n môi trư ng PS1 và PS2. Ngư i dùng mong mu n máy tính th c hi n m t công vi c nào ó thì c n gõ l nh th hi n yêu c u c a mình h th ng áp ng yêu c u ó. M t l nh bao g m tên l nh và tham s : t u tiên là tên l nh. Shell là b d ch l nh và ho t ng như m t k t n i trung gian gi a nhân v i ngư i dùng: Shell nh n dòng l nh do ngư i dùng ưa vào. chúng ta gõ l nh: # alias N u m t danh sách xu t hi n thì shell ang s d ng là C-shell. Linux có hai lo i shell ph bi n là: C-shell (d u nh c %). M t s l nh trong Cshell (ch ng h n l nh alias) không còn có trong Bourne-shell và vì v y nh n bi t h th ng ang làm vi c v i shell nào. Thành ph n quan tr ng th hai trong nhân là h th ng các mô un chương trình ( ư c g i là l i g i h th ng) làm vi c v i h th ng file.

Các tham s ư c phân ra thành hai lo i: tham s khóa (sau ây thư ng dùng là "tùy ch n") và tham s v trí. tham s khóa ph i ư c vi t chính xác như trình bày trong mô t l nh. Cũng như ã nói trên. >. Khi gõ l nh. Tên l nh là b t bu c ph i có khi gõ l nh. Tham s v trí thư ng là tên file. th a mãn yêu c u c a chúng ta. Chúng ta ng e ng i v s lư ng l nh ư c gi i thi u ch chi m m t ph n nh trong t p h p l nh b i vì ây là nh ng l nh thông d ng nh t và chúng cung c p m t ph m vi ng d ng r ng l n. M t l nh có th có m t s ho c r t nhi u tham s khóa. làm cho l nh có tính ph d ng cao. ngư i dùng làm vi c v i máy tính thông qua vi c s d ng tr m cu i: ngư i dùng ưa yêu c u c a mình b ng cách gõ "l nh" t bàn phím và giao cho h i u hành x lý. Tài li u này cũng h n ch gi i thi u kho ng vài ch c l nh ó. Khi k t thúc m t dòng l nh c n gõ phím ENTER shell phân tích và th c hi n l nh. Khi gõ l nh. Gi i thi u v s d ng l nh trong Linux Như ã gi i thi u ph n trên. 1 5 . tham s khóa thư ng b t u b i d u tr "-" ho c hai d u tr liên ti p "--". ngư i dùng có th ch n m t ho c m t s các tham s khóa khi gõ l nh. a nhi m. Các tham s có th có ho c không có. tham s v trí ư c thay b ng nh ng i tư ng mà ngư i dùng c n hư ng tác ng t i. Ph thu c vào yêu c u c th c a mình. File chương trình ngôn ng máy: ch ng h n. Trong mô t l nh.3. bi u th cho m t l nh c a Linux hay m t chương trình. Tùy ch n l nh (th c ch t là tham s khóa) cho phép i u ch nh ho t ng c a l nh trong Linux. Ngư i dùng c n h i u hành áp ng yêu c u gì c a mình thì ph i ch n úng tên l nh. Khi cài t Linux lên máy tính cá nhân thì máy tính cá nhân v a óng vai trò tr m cu i. không có d u cách.L nh thư ng tr c (có s n c a Linux). ] ư c gi i thích ph n quy t c vi t l nh. thư ng xu t hi n thu t ng tùy-ch n. Tuy nhiên ch có kho ng vài ch c l nh là thông d ng nh t i v i ngư i dùng. Linux là m t h i u hành a ngư i dùng. Ý nghĩa c a các d u [. ư c phát tri n b i hàng nghìn chuyên gia Tin h c trên toàn th gi i nên h th ng l nh cũng ngày càng phong phú. cũng gi ng như tên l nh. n th i i m hi n nay Linux có kho ng hơn m t nghìn l nh. File chương trình shell (Shell Scrip). Trong Linux. D ng t ng quát c a l nh Linux có th ư c vi t như sau: # <Tên l nh> [<các tham s >] ¿ trong ó: Tên l nh là m t dãy ký t . Tham s khóa chính là nh ng tham s i u khi n ho t ng c a l nh theo các trư ng h p riêng. <. Tuy t i a s l nh ư c gi i thi u trong tài li u này là l nh thư ng tr c. ư c vi t theo quy nh c a l nh mà chúng ta s d ng. ngư i dùng vi t trình trên ngôn ng C qua b d ch gcc (bao g m c trình k t n i link) t o ra m t chương trình trên ngôn ng máy. thư m c và thư ng là các i tư ng ch u s tác ng c a l nh. Chúng bao g m các l nh ư c ch a s n trong shell và các l nh thư ng tr c khác. 1. v a óng vai trò máy tính x lý. nh m cung c p thông tin v các i tư ng mà l nh tác ng t i. Tuỳ ch n l nh cho phép l nh có th áp ng ý mu n c a ngư i dùng i v i h u h t (tuy không ph i lúc nào cũng v y) các tình hu ng t ra cho thao tác ng v i l nh.

cho bi t yêu c u xem y thông tin v các i tư ng hi n ra. khi ngư i dùng gõ l nh xem thông tin v các file: # ls -l g↵¿ ↵ trong l nh này: ls là tên l nh th c hi n vi c ưa danh sách các tên file/ thư m c con trong m t thư m c. Ngo i tr m t s ngo i l . g* là tham s v trí ch rõ ngư i dùng c n xem thông tin v các file có tên g i b t u là ch cái "g"... Ví d . trong ó l nh sau ư c ngăn cách b i v i l nh i ngay trư c b ng d u ". và chúng cũng là các tùy ch n l nh. trong tham s khóa ch cái (ch "l") ph i i ngay sau d u tr "-". shell ti p nh n dòng l nh này và phân tích n i dung văn b n c a l nh. Lưu ý: Linux (và UNIX nói chung) ư c xây d ng trên ngôn ng l p trình C. M t khác trong m t s l nh. -L. còn v i m t s tham s khác thì m i ngư i dùng u ư c phép (ví d như l nh passwd thay i m t kh u ngư i dùng). N u l nh ư c gõ úng thì nó ư c th c hi n. quy ư c r ng khi vi t m t l nh (trong mô t l nh và gõ l nh) thì không c n ph i vi t d u "↵" cu i dòng l nh ó. Trong m t s tham s khóa có nhi u ch cái thay cho m t d u "-" là hai d u "--" u tham s . -r . Trong t p h p l nh c a Linux. t i nh ng dòng văn b n di n gi i. k t thúc m t yêu c u. . Tên các bi n môi trư ng cũng thư ng dùng ch hoa.. trong l nh date v th i gian h th ng thì hai tham s -r và -R có ý nghĩa hoàn toàn khác nhau). date # head Filetext | sort >temp Sau khi ngư i dùng gõ xong dòng l nh. -R. có m t s l nh mà ch siêu ngư i dùng m i ư c phép s d ng còn ngư i dùng thông thư ng thì không ư c phép (ví d như l nh adduser th c hi n vi c b sung thêm ngư i dùng). M t s tham s có th là ch thư ng ho c ch hoa (ví d . Trong tài li u này. trong trư ng h p có sai sót khi gõ l nh thì shell thông báo v sai sót và 1 6 . trong Linux chúng ta th y ph bi n là: Các tên l nh là ch thư ng. còn ư c g i là ngư i qu n tr hay ngư i dùng t i cao ho c siêu ngư i dùng) v i ngư i dùng thông thư ng. Ví d . Linux phân bi t siêu ngư i dùng (ti ng Anh là superuser ho c root. m như date. song luôn ghi nh r ng phím ENTER ("↵") là b t bu c khi gõ l nh. Tương ng v i l nh ls còn có các tham s khóa -a. như trư ng h p tham s --file c a l nh date. Ví d v m t s dòng l nh d ng này: # ls -l. v i m t s tham s khóa thì ch siêu ngư i dùng ư c phép dùng. -l là tham s khóa. ngư i dùng nh t thi t ph i gõ phím "↵". M t dòng l nh có th có nhi u hơn m t l nh." ho c d u "|". s d ng cách vi t tên l nh. Chú ý. các tham s khóa b ng ki u ch không chân.. vì v y khi gõ l nh ph i phân bi t ch thư ng v i ch hoa.Ký hi u "↵" bi u th vi c gõ phím h t dòng <Enter>. ngư c l i. Trong tài li u này.

cú pháp c a l nh halt là # halt [tùy-ch n] V i các tùy ch n là -w. n u như sau khi ngư i dùng gõ l nh. -n. mô t cú pháp c a l nh more xem n i dung file là # more <file> thì t more là tên l nh. 1. -f. 1 7 . chúng ta xem xét v m t s quy nh dùng trong mô t l nh ư c trình bày trong tài li u này... các l nh ư c trình bày theo m t b quy t c cú pháp nh t quán. tuy nhiên khi ngư i dùng mu n có m t cách ho t ng nào ó c a l nh này thì s ch n m t (ho c m t s ) tuỳ ch n l nh tương ng..1. ph i là t u tiên trong b t kỳ l nh nào. tên l nh more ư c gõ úng như mô t cú pháp (c n i dung và v trí) còn "file" ã ư c thay th b ng t "temp" là tên file mà ngư i dùng mu n xem n i dung. -d. và có th ư c coi là "tham s th c s ") ch i tư ng liên quan n thao tác c a l nh.. V ph bi n. ngư i dùng gõ l nh: # more temp Như v y. xem n i dung file có tên là temp.3. Các b ph n n m gi a c p d u ngo c vuông [ và ] là có th gõ ho c không gõ cũng ư c.d u nh c shell l i hi n ra ch l nh ti p theo c a ngư i dùng. Các quy ư c khi vi t l nh Trong tài li u này. Tên l nh là b t bu c. ph i ư c gõ úng như khi mô t l nh. còn <file> là tham s trong ó file là tên khái ni m và là tham s b t bu c ph i có. các thành ph n nào có th có ho c không . M t s cách gõ l nh halt c a ngư i dùng như sau ây là úng cú pháp: # halt # halt -w # halt -n # halt -f Các giá tr có trong c p | và | trong ó các b ph n cách nhau b ng d u s ng "|" cho bi t c n ch n m t và ch m t trong các giá tr n m gi a hai d u ngo c ó. L nh này có tác ng là hi n lên màn hình theo cách th c cu n n i dung c a file v i tên ã ch trong l nh. Dư i ây là n i dung c a các quy t c trong b quy t c ó. B quy t c này cho phép phân bi t trong m i l nh các thành ph n nào là b t bu c ph i có. Ví d . -i mã m i tùy ch n cho m t cách th c ho t ng khác nhau c a l nh halt. Trư c khi i vào n i dung chi ti t các l nh thông d ng. Tên khái ni m ư c n m trong c p d u ngo c quan h (< và >) bi u th cho m t l p i tư ng và là tham s b t bu c ph i có. L nh halt có tác ng chính là làm ng ng ho t ng c a h i u hành. tên thư m c . không th y thông báo sai sót hi n ra thì có nghĩa l nh ã ư c th c hi n m t cách bình thư ng. Ví d . Khi gõ l nh thì tên khái ni m (có th ư c coi là "tham s hình th c") ph i ư c thay th b ng m t t (thư ng là tên file.

l nh more bình thư ng có cú pháp là: # more <file> có nghĩa là thay <file> b ng tên file c n xem n i dung. Vì v y. Ví d . n u không n m trong các c p d u [ ]. <>. Lưu ý: i v i nhi u l nh. Khi gõ l nh có th gõ m t t h p nào ó t ba tham s khóa này ư c tình hu ng s d ng l nh theo ý mu n. chúng ta th y: -f. sau tham s khóa --follow. th hi n vi c l p l i thành ph n cú pháp i ngay trư c d u này. Tham s chu n dùng ư c trong m i Linux và khi gõ ph i có kí t trong t . Cách th c này thư ng ư c dùng v i các tham s như tên file. khi vi t [tùy-ch n] trong mô t l nh bi u th c vi c s d ng t ng tùy ch n. vi c l p l i ó có th t không n nhi u l n (không k chính thành ph n cú pháp ó). trong ó m t tham s g m m t kí t còn tham s kia l i là m t t . Trong m t s l nh. n u xu t hi n thêm d u b ng "=" thì ph i có ho c tên ho c c t . Các b ph n trong mô t l nh. D u ba ch m . Tham s khóa k t h p ư c vi t theo cách <xâu-kí-t >. Ch ng h n.. mô t l nh chown như sau: chown [tùy-ch n] <ch >[. trong ó xâu-kí-t g m các ch cái trong tham s khóa. Vi c k t h p các d u ngo c v i nhau cho phép t o ra cách th c s d ng quy t c t h p các tham s trong l nh. Như v y trong l nh chown có th không có ho c có m t s tùy ch n l nh và có t m t n nhi u tên file. tuy nhiên trong m t s trư ng h p có th b qua tham s file. Ví d . còn tham s m t kí t là cách vi t ng n g n. n u k t h p thêm d u ngo c vuông [ và ]. -j. --follow[={tên | c t }] Như v y. Ví d . có hai tham s khóa cùng tương ng v i m t tình hu ng th c hi n l nh.. quy t c vi t tên l nh là m t trư ng h p riêng c a quy t c này). cho phép ngư i dùng gõ tham s khóa k t h p tương ng v i tùy_ch n trong mô t l nh. ây là trư ng h p các ch n l a "lo i tr nhau". khi gi i thi u v tùy ch n l nh c a l nh tail xem ph n cu i n i dung c a file.. 1 8 .Ví d . -y.[nhóm]]<file>.. thay vì cho ng m nh là Ch Nh t) và -j (hi n th ngày trong tháng dư i d ng s ngày trong năm k t u năm). Tham s dài m t t là tham s chu n c a l nh. { } thì khi gõ l nh th c s ph i gõ y úng như khi mô t (chú ý. nhi u tùy ch n ho c k t h p các tuỳ ch n. n u gõ l nh cal -mj 3 thì l nh cal th c hi n theo i u khi n c a hai tham s khóa -m (ch n Th Hai là ngày u tu n. t c là có d ng sau (chính là d ng t ng quát c a l nh more): # more [<file>] thì <file> nói chung ph i có trong l nh more. trong mô t l nh in l ch cal: cal [tùy-ch n] [tháng [năm] ] có ba tham s khóa là -m.

S d ng các phím c bi t. 1 9 . S d ng thay th alias. ch n m t trong các dòng l nh ó và biên t p l i n i dung dòng l nh theo úng yêu c u m i c a mình. Lưu ý: Vi c nh n liên ti p các phím di chuy n lên (↑) ho c xu ng (↓) cho phép ngư i dùng nh n ư c các dòng l nh ã gõ t trư c mà không ch dòng l nh m i ư c gõ. Ngoài nh ng quy ư c trên ây. xoá kí t (xem ph n sau) có ư c: # ls -l ten và gõ ti p các kí t "taptin" nh n ư c: # ls -l tentaptin chính là k t qu mong mu n. --date=STRING như v y hai tham s -d và --date=STRING có cùng ý nghĩa. chúng ta xem xét cách th c s d ng vi c khôi ph c dòng l nh. ngư i dùng s d ng các phím di chuy n lên (↑) ho c xu ng (↓) nh n ư c: # ls -l tenfile* dùng các phím t t di chuy n. T i d u nh c shell: Ngư i dùng s d ng các phím mũi tên lên/xu ng (↑/↓) trên bàn phím nh n l i các dòng l nh ã ư c ưa vào trư c ây t i d u nh c shell. 1. ngư i dùng v a gõ xong dòng l nh: # ls -l tenfile* sau ó mu n gõ l nh ls -l tentaptin thì t i d u nh c c a shell. Dư i ây. Cơ ch khôi ph c dòng l nh Linux cung c p m t cách th c c bi t là kh năng khôi ph c l nh. ngư i dùng ng quên m t quy nh cơ b n là c n phân bi t ch hoa v i ch thư ng khi gõ l nh. S d ng chương trình l nh. Làm ơn gi n thao tác gõ l nh Vi c s d ng bàn phím nh p l nh tuy không ph i là m t công vi c n ng n . Ví d . Cách th c s d ng chương trình l nh (shell script) s ư c gi i thi u chi ti t trong các chương sau.3. S d ng các kí hi u thay th và phím <Tab>. Cách th c này tương t v i cách th c s d ng ti n ích DOSKEY trong h i u hành MS-DOS. M t s trong nh ng cách th c ó là: S d ng vi c khôi ph c dòng l nh. song Linux còn cho phép ngư i dùng s d ng m t s cách th c thu n ti n hơn khi gõ l nh. khi mô t l nh date có tùy ch n: -d. phím c bi t và kí hi u thay th . Trong trư ng h p s lư ng kí t thay th là r t ít so v i s lư ng kí t c a toàn dòng l nh thì hi u qu c a cách th c này r t cao.Ví d .3.

chúng ta nh n ư c dòng l nh tương t v i l nh c n gõ và sau ó s d ng các phím t t hoàn thi n l nh. ? và c p hai d u [ và ] mô t nhóm file. Các kí t này mang ý nghĩa như sau khi vi t vào tham s tên file th c s : • "*" : là ký t mô t nhóm g m m i xâu kí t (thay th m i xâu). Dư i ây gi i thi u các phím t t và ý nghĩa c a vi c s d ng chúng: • Nh n phím → di chuy n con tr sang bên ph i m t v trí • Nh n phím ← di chuy n con tr sang bên trái m t v trí • Nh n phím <ESC-BACKSPACE> xoá m t t bên trái con tr • Nh n phím <ESC-D> xoá m t t bên ph i con tr • Nh n phím <ESC-F> di chuy n con tr sang bên ph i m t t • Nh n phím <ESC-B> di chuy n con tr sang bên trái m t t • Nh n phím <CTRL-A> di chuy n con tr v u dòng l nh • Nh n phím <CTRL-E> di chuy n con tr v cu i dòng • Nh n phím <CTRL-U> xóa dòng l nh Có th dùng phím <ALT> thay cho phím <ESC>. xoá b . chúng ta g i là kí hi u mô t nhóm (còn ư c g i là kí hi u thay th ). Trong trư ng h p ó c n s d ng các phím c bi t (còn g i là phím vi t t t hay phím t t) di chuy n. • "?" : mô t nhóm g m m i xâu v i dài không quá 1 (thay th m t kí t ). Nhóm này là t p con c a nhóm th hai (theo kí t "?"). Ch ng h n. • [xâu-kí-t ] : mô t nhóm g m m i xâu có dài 1 là m i kí t thu c xâu nói trên.M t s phím c bi t khi gõ l nh Khi ngư i dùng gõ l nh có th x y ra m t s tình hu ng như sau: Dòng l nh ang gõ có ch sai sót. Ví d . Khi gõ l nh ph i gõ c hai d u [ và ]. Mô t này cho m t nhóm có l c lư ng bé nh t trong ba mô t . Các kí hi u mô t nhóm file và phím <Tab> Khi gõ l nh th c s nhi u trư ng h p ngư i dùng mong mu n m t tham s trong l nh không ch xác nh m t file mà l i liên quan n m t nhóm các file mà tên g i c a các file trong nhóm có chung m t tính ch t nào ó. cách vi t [a-d] tương ương v i cách vi t [abcd]. ngư i dùng gõ * thay th tham s file thì xác nh ư c các tên file sau (chúng ta vi t b n tên file trên m t dòng): 2 0 . Nhóm này là t p con c a nhóm u tiên (theo kí t "*"). Mô t này cho m t nhóm l n nh t trong ba mô t . gi s khi mu n làm vi c v i t t c các file trong m t thư m c nào ó. Trong nh ng trư ng h p như v y. b sung vào n i dung dòng l nh. không úng theo yêu c u c a ngư i dùng vì v y c n ph i s a l i ôi chút n i dung trên dòng l nh ó. ngư i dùng c n s d ng các kí hi u mô t nhóm file (wildcards). Ngư i ta s d ng các kí t *. Sau khi s d ng cách th c khôi ph c dòng l nh. M t d ng khác c a mô t nhóm này là [<kí_t _1>-<kí_t _2>] nghĩa là gi a c p d u ngo c có ba kí t trong ó kí t gi a là d u n i (d u -) thì cách vi t này tương ương v i vi c li t kê m i kí t t <kí_t _1> n <kí_t _2>.

Khi gõ l nh.conf initlog. m t khác tham s c a l nh có th là r t dài không th trong khuôn kh c a m t dòng văn b n ư c. Ví d .users services smb.rc mtab shadowsyslog. C n phân bi t c p d u [ và ] ư c s d ng khi ngư i dùng gõ l nh có ý nghĩa hoàn toàn khác v i ý nghĩa c a chúng khi ư c s d ng trong mô t l nh. n u dòng l nh quá dài. khi chúng ta gõ dòng l nh # ls /u<TAB>local<TAB>b<TAB> thì nó cũng tương ương như gõ dòng l nh (và ây chính là n i dung xu t hi n t i d u nh c shell): # ls /usr/local/bin v i i u ki n trong thư m c /usr ch có thư m c local ư c b t u b i ch "l" và trong thư m c local cũng ch có thư m c bin ư c b t u b i ch "b". Linux cho phép ng t dòng l nh xu ng dòng dư i b ng cách thêm kí t báo hi u chuy n dòng "\" t i cu i dòng.conf inittab shadowshells syslog.3.conf N u ngư i dùng gõ [si]* ( ch các tên có ch cái u là s ho c i.conf N u ngư i dùng gõ s* ( nh ư c các tên file sau: shadow syslog. 2 1 . Hơn th n a.conf up2date.info-dir mail.cfg motd shadow sysctl.conf ch các tên có ch cái u là s) thay th tham s file thì xác shadow- shells sysctl. ngư i dùng c n gõ thêm kí t ti p theo trong tên file (tên thư m c) và nh n phím <TAB> hoàn thành dòng l nh.conf Lưu ý: Như v y.conf mailcap mtools. Trong trư ng h p n u như m t kí t chưa xác nh. 1. kí t "\" ph i là ký t cu i cùng thu c dòng l nh trư c.conf shells temp termcap inittab minicom.4.conf termcap lynx. Linux còn cung c p cho ngư i dùng cách th c s d ng phím <TAB> hoàn thành n t tên file (tên thư m c) trong l nh. chú ý dùng c hai kí t [ và ]) thay th tham s file thì xác nh các tên file sau: info-dir shadow sysctl. Ví d .conf services smb. Ti p n i dòng l nh Như ã lưu ý trên ây. trong trư ng h p ó. m t dòng l nh có th g m m t ho c m t s l nh. Linux (và UNIX nói chung) không ch s d ng hai kí t mô t nhóm * và ? mà còn có cách th c s d ng c p kí t [ và ].conf temp initlog. # cd vsd\ thumuc thì dòng th hai là ph n ti p theo c a dòng th nh t và k t h p c hai dòng này th c ch t là m t dòng l nh Linux.

có th nói là không th . Linux cho phép ngư i dùng s d ng cách th c g i trang Man có ư c các thông tin y gi i thi u n i dung các l nh. có liên quan n l nh REPORTING BUGS a ch liên h n u g p l i khi s d ng l nh AUTHOR tên tác gi c a l nh Ngư i dùng th m chí không nh chính xác tên l nh. Chú ý r ng. Linux còn có m t cách th c h tr ngư i dùng có th nhanh chóng tìm ư c l nh c n s d ng trong trư ng h p ch nh nh ng ch cái u c a tên l nh. các ch cái và hai phím <TAB> ph i ư c gõ liên ti p nhau. song hi u h t ư c nó cũng òi h i không ít th i gian. thu c h t ư c n i dung t t c các l nh c a Linux là m t i u h t s c khó khăn. Dư i ây là m t s n i dung v cách th c s d ng trang Man. Trong cách th c này. ư c coi là tài li u tr c tuy n trong Linux ã lưu tr toàn b các l nh có s n v i các thông tin tham kh o khá y cho phép ngư i dùng có th m ra nh n ư c tr giúp. các tài li u. K t h p cách th c này v i cách th c s d ng l nh man (v i s phong phú v tùy ch n c a l nh man) nh n ư c m t cách th c khá tuy t v i tr giúp ngư i dùng.4. Trang Man Chúng ta có th nói r ng Linux là m t h i u hành r t ph c t p v i hàng nghìn l nh và m i l nh l i có th có t i vài ho c vài ch c tình hu ng s d ng do chúng cho phép có nhi u tùy ch n l nh. . ngư i dùng ch c n nh m t s ch cái u tiên c a tên l nh. chúng ta s d ng l nh man c a Linux và gõ: # man <tên-l nh> N i dung c a trang Man tuy không ph i là quá khó hi u. "Man" là t vi t t t c a "manual". m trang Man c a m t l nh. ó là cách th c s d ng phím TAB.. 2 2 ..1.. n u quên n i dung m t l nh nào ó thì cách t t nh t là hãy s d ng trang Man.khái quát tác d ng c a l nh SYNOPSIS cú pháp c a l nh DESCRIPTION mô t c th hơn v tác d ng c a l nh OPTIONS li t kê các tùy ch n l nh và tác d ng c a chúng FILES li t kê các file mà l nh s d ng ho c tham chi u n SEE ALSO li t kê các l nh. Có th trình bày cách th c ó theo cú pháp sau ây: # <dãy-ch -cái><TAB><TAB> Trong ó dãy-ch -cái có t m t n m t vài ch cái thu c ph n u c a tên l nh. Tuy v y. C u trúc chung c a m t trang Man như sau: COMMAND(1) Linux Programmer's Manual COMMAND(1) NAME tên l nh .

khi ngư i dùng gõ n i dung như sau: # p<TAB><TAB> thì h th ng áp l i là: There are 289 possibilities. thay vì hi n h t m i tên l nh.Ví d . Ngư i dùng có th gõ nhi u hơn m t ch cái u tên l nh và i u ó cho phép gi m b t s tên l nh mà h th ng tìm ư c và hi n th . h i u hành cho ra m t thông báo h i ngư i dùng có mu n xem toàn b các l nh ó hay không. Do you really wish to see them all? (y or n) Ngư i dùng gõ phím "y" n u mu n xem. t t c các l nh có tên b t u v i ch h ư c hi n th trên màn hình và cho phép ngư i dùng có th xác nh ư c l nh c n quan tâm. Ngư i dùng áp ng thông báo ó tuỳ theo ý mu n c a mình. Trư ng h p t n t i m t s lư ng l n các l nh có cùng ch cái u tiên mà ngư i dùng ã gõ. Ch ng h n. mu n s d ng l nh history nhưng l i không nh chính xác tên l nh ư c vi t ra như th nào mà ch nh nó ư c b t u b i ch h. s th y m t danh sách các l nh có ch cái u tiên là h ư c hi n ra trên màn hình: # h<TAB><TAB> h2ph hostname hltest helptool head hboot htdigest hoststat hinotes hexbin help h2xs hcc htpasswd host hipstopgm hexdump helpme halt hpcdtoppm hostid history hf77 hcp hash hpftodit Như v y. ngư i dùng s nh n bi t ư c tên l nh ang c n tìm thu n ti n hơn. hãy gõ ch h ó t i d u nh c shell và nh n phím TAB hai l n. ho c gõ "n" n u b qua. Ví d . khi bi t hai ch cái u là "pw" và ngư i dùng gõ: # pw<TAB><TAB> thì h th ng s hi n ra danh sách các tên l nh b t u b i "pw": pwck pwconv pwd pwdb_chkpwd pwunconv Trong trư ng h p này. 2 3 .

Linux ư c kh i ng t ĩa c ng hay ĩa m m kh i ng. chúng ta xem xét sơ b quá trình kh i ng h i u hành Linux. LILO boot: dos N u chúng ta không nh ư c nhãn c a h i u hành có trong máy hãy gõ phím <TAB> ư c LILO cho bi t nhãn c a các h i u hành.CHƯƠNG 2. Quá trình kh i ng Linux Trong ph n này. Quá trình kh i ng Linux có th ư c mô t theo sơ sau: T heo sơ này. thì thông báo sau ây ư c LILO ưa ra: Nhân init LILO boot: LILO cho phép nh p xâu là nhãn c a m t trong nh ng h i u hành hi n có trên máy kh i ng nó. và hi n l i thông báo nói trên ta gõ nhãn c a h i u hành.. Khi init th c hi n. T i th i i m ó. LILO ư c n p vào Master Boot Record c a ĩa c ng ho c vào Boot Sector t i phân vùng kh i ng (trên ĩa c ng ho c ĩa m m).1. ví d . THAO TÁC V I H TH NG 2. LILO cũng cho phép t ch ch n ng m nh h i u hành kh i ng mà theo ó n u chúng ta không có tác ng gì sau thông báo ch n h i u hành thì LILO s t ng ch n h i u hành ng m nh ra kh i ng. Giai o n kh i ng Linux tùy thu c vào c u hình LILO ã ư c l a ch n trong quá trình cài t Linux. Windows.label phân bi t). M t trong nh ng cách th c kh i ng Linux ph bi n nh t là cách th c do chương trình LILO (LInux LOader) th c hi n. gõ LILO boot: linux n u ch n kh i n u ch n kh i Lưu ý: ng ng làm vi c trong Linux. ho c gõ làm vi c trong MS-DOS. Chương trình LILO ư c n p lên ĩa c a máy tính khi cài t h i u hành Linux. chúng ta s th y m t chu i (kho ng vài ch c) dòng thông báo cho bi t h th ng ph n c ng ư c Linux nh n di n và 2 4 . Trong tình hu ng ơn gi n nh t. N u cài t nhi u phiên b n Linux hay cài Linux cùng các h i u hành khác (trong các trư ng h p như th . ch n. LILO boot: <TAB> s hi n ra danh sách các nhãn (ví d như): linux dos . Gi s máy tính c a chúng ta ã cài t Linux và s d ng LILO kh i ng h i u hành. N u chúng ta không can thi p vào các file tương ng c a trình LILO thì h i u hành Linux là h i u hành ng m nh. Gi s Linux ã ư c ch n kh i ng. LILO còn cho phép ngư i dùng ch n l a h i u hành kh i ng.. LILO ư c t i vào máy th c hi n mà vi c u tiên là ưa nhân vào b nh trong và sau ó t i chương trình init th c hi n vi c kh i ng Linux. ngư i dùng c n gõ nhãn c a h i u hành c n kh i ng vào. m i phiên b n Linux ho c h i u hành khác ư c gán nhãn . LILO thích h p v i vi c trên máy tính ư c cài t m t s h i u hành khác nhau và theo ó.

14-5. Tên ăng nh p ng v i m i ngư i dùng trên h th ng là duy nh t. T i d u nh c ăng nh p. Sau khi chương trình shell trên ư c th c hi n xong.2. hãy nh p tên ngư i dùng (còn g i là tên ăng nh p): ây là tên kí hi u ã cung c p cho Linux nh m nh n di n m t ngư i dùng c th .2.2 (Zoot) Kernel 2.local như sau: Thay o n chương trình echo "" > /etc/issue echo "$R" >> /etc/issue echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue cp -f /etc/issue /etc/issue. 2.2 làm ví d ) kh i hi n nh ng dòng sau: Ret Hat Linux release 6.0 on an i686 May1 login: ng xong.net echo >> /etc/issue thành echo "" > /etc/issue echo "Thông báo mu n hi n th " >> /etc/issue ví d s a thành: echo "" > /etc/issue echo "This is my computer" >> /etc/issue thì trên màn hình ăng nh p s có d ng sau: This is my computer hostname login: ki n trúc ph n c ng có trên máy. dòng th ba là d u nh c ăng nh p ngư i dùng th c hi n vi c ăng nh p.2. là cha c a m i quá trình. trên màn hình xu t Dòng th nh t và dòng th hai cho bi t lo i phiên b n Linux.d/rc. Quá trình init là quá trình kh i th y. Chú ý là các dòng trên ây có th thay i chút ít tùy thu c vào phiên b n Linux. May1 login: root Password: 2 5 .1. ăng nh p Sau khi h th ng Linux (l y Red Hat 6. phiên b n c a nhân và Chúng ta có th thay i các dòng hi n th như trình bày trên ây b ng cách s a i file /etc/rc. T i th i i m kh i ng h th ng init th c hi n vai trò u tiên c a mình là ch y chương trình shell trong file /etc/inittab và các dòng thông báo trên ây chính là k t qu c a vi c ch y chương trình shell ó. Th t c ăng nh p và các l nh thoát kh i h th ng 2. b t u quá trình ngư i dùng ăng nh p (login) vào h th ng. kèm theo m t m t kh u ăng nh p.thi t l p c u hình cùng v i t t c trình i u khi n ph n m m ư c n p khi kh i ng.

Có r t nhi u cách cho phép thoát kh i h th ng. -r : kh i -f : kh i ng l i ngay sau khi shutdown. Cách th hai là s d ng l nh shutdown v i cú pháp như sau: shutdown [tùy-ch n] <time> [c nh-báo] L nh này cho phép d ng t t c các d ch v ang ch y trên h th ng. root là tên ngư i dùng ăng nh p. h th ng s hi n ra thông báo h i m t kh u và di chuy n con tr xu ng dòng ti p theo ngư i dùng nh p m t kh u. ây chúng ta xem xét m t s cách thông d ng nh t. Khi ó. hãy nh n t h p phím CTRL+ALT+BACKSPACE trư c r i sau ó hãy nh n CTRL+ALT+DEL. ngư i dùng s nhìn th y m t s thông tin v h th ng. m t vài tin t c cho ngư i dùng. may1 là tên máy và /root tên thư m c hi n th i (vì ây là ngư i dùng root). M t kh u khi ư c nh p s không hi n th trên màn hình và chính i u ó giúp tránh kh i s "nhòm ngó" c a ngư i khác. Cách ơn gi n nh t m b o thoát kh i h th ng úng n là nh n t h p phím CTRL+ALT+DEL. Trong d u nh c này. Khi d u nh c shell xu t hi n trên màn hình thì i u ó có nghĩa là h i u hành ã s n sàng ti p nh n m t yêu c u m i c a ngư i dùng.. ng l i nhanh và b qua vi c ki m tra ĩa. Các tùy-ch n c a l nh này như sau: -k : không th c s shutdown mà ch c nh báo.Khi nh p xong tên ăng nh p. D u nh c shell có th khác v i trình bày trên ây (M c 2. nhưng có th hi u nó là chu i kí t b t u m t dòng có ch a tr chu t và luôn xu t hi n m i khi h i u hành hoàn thành m t công vi c nào ó. Ra kh i h th ng k t thúc phiên làm vi c ngư i dùng c n th c hi n th t c ra kh i h th ng. trên màn hình s hi n th m t s thông báo c a h th ng và cu i cùng là thông báo thoát trư c khi t t máy. Lúc ó.2. 2 6 . May1 login: root Password: Last login: Fri Oct 27 14:16:09 on tty2 Root[may1 /root]# Dãy kí t trong dòng cu i cùng chính là d u nh c shell.. -h : t t máy th c s sau khi shutdown.7 cung c p cách thay i d u nh c shell).2. C n chú ý là: N u ang làm vi c trong môi trư ng X Window System. h th ng s ưa ra m t thông báo l i: May1 login: root Password: Login incorrect Máy1 login: N u ăng nh p thành công. d u nh c shell xu t hi n ngư i dùng b t u phiên làm vi c c a mình. 2. N u nh p sai tên ăng nh p ho c m t kh u.

khi ngư i dùng gõ l nh: shutdown +1 Sau mot phut nua he thong se shutdown! trên màn hình c a t t c ngư i dùng xu t hi n thông báo "Sau mot phut nua he thong se shutdown! " và sau m t phút thì h th ng shutdown th c s . khi c n thi t (ch ng h n. 2. -f : th c hi n t t máy ngay mà không th c hi n l n lư t vi c d ng các d ch v có trên h th ng. -i : ch th c hi n d ng t t c các d ch v m ng trư c khi t t máy. Lưu ý: Có th s d ng l nh exit tr v d u nh c ăng nh p ho c k t thúc phiên làm vi c b ng l nh logout. n u h th ng ch có duy nh t m t ngư i dùng ang 2 7 . Tham s time có hai d ng. pp: phút) thì h th ng s shutdown khi ng h máy trùng v i giá tr tham s . dùng l nh shutdown ho c l nh halt). Khi l nh th c hi n t t c các máy ngư i dùng u nh n ư c c nh báo.-F : kh i ng l i và th c hi n vi c ki m tra ĩa. Cú pháp l nh reboot: reboot [tùy-ch n] L nh này cho phép kh i ng l i h th ng. -c : b qua không ch y l nh shutdown. Ví d . Tùy ch n -n có ý nghĩa tương t song không ti n hành vi c ng b hóa. Cách th ba là s d ng l nh halt v i cú pháp như sau: halt [tùy-ch n] L nh này t t h n máy. và hai tham s v trí còn l i: time : t th i i m shutdown. D ng tương i là +<s > là h n sau th i kho ng <s > phút s shutdown. n u thoát kh i h th ng không úng cách thì d n n h u qu là m t s file hay toàn b h th ng file có th b hư h ng. -d : không ghi thông tin lên file /var/log/wtmp. coi shutdown l p t c tương ương v i +0. Trong tùy ch n này không th ưa ra tham s th i gian nhưng có th ưa ra thông báo gi i thích trên dòng l nh g i cho t t c các ngư i dùng. Kh i ng l i h th ng Ngoài vi c thoát kh i h th ng nh các cách th c trên ây ( n t h p ba phím Ctrl+Alt+Del. D ng tuy t i là gg:pp (gg: gi trong ngày.2. g p ph i tình hu ng m t trình ng d ng ch y qu n) có th kh i ng l i h th ng nh l nh reboot. Nói chung thì ch siêu ngư i dùng m i ư c phép s d ng l nh reboot. Chúng ta c n nh r ng.3. tuy nhiên. Các tuỳ ch n c a l nh halt: -w : không th c s t t máy nhưng v n ghi các thông tin lên file /var/log/wtmp ( ây là file lưu tr danh sách các ngư i dùng ăng nh p thành công vào h th ng). -t s -giây : qui nh init(8) ch kho ng th i gian s -giây t m d ng gi a quá trình g i c nh báo và tín hi u kill. c nh-báo : thông báo g i n t t c ngư i dùng trên h th ng. trư c khi chuy n sang m t m c ch y khác.

Full multiuser mode – Ch a ngư i dùng. -n. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now #ca::ctrlaltdel:/bin/echo "You can't do that" # When our UPS tells us power has failed. <miquels drinkel. -d. giao di n text # 4 – unused – Không s d ng ch này # 5 .d/rc 1 l2:2:wait:/etc/rc.org> # Modified for RHS Linux by Marc Ewing and Donnie Barnes # # Default runlevel.2. si::sysinit:/etc/rc.d/rc 2 l3:3:wait:/etc/rc. Kh i ng vào ch ho Linux cho phép nhi u ch kh i ng.mugnet.halt (Do NOT set initdefault to this) .làm vi c thì l nh reboot v n ư c th c hi n song h th ng òi h i vi c xác nh n m t kh u. The runlevels used by RHS are: # 0 .d/rc 4 l5:5:wait:/etc/rc.reboot (Do NOT set initdefault to this) – Ch kh i ng l i máy tính # id:3:initdefault: .d/rc 5 l6:6:wait:/etc/rc. nh ng ch này ư c li t kê trong file /etc/inittab. không h tr k t n i m ng. assume we have a few minutes 2 8 .ây là ch ng m nh h th ng s s d ng kh i ng # System initialization. without NFS (The same as 3. Dư i ây là n i dung c a file này: # inittab This file describes how the INIT process should set up # the system in a certain run-level.sysinit l0:0:wait:/etc/rc.4. -f. # # Author: Miquel van Smoorenburg. Các tùy ch n c a l nh reboot như sau là -w. if you do not have networking) . ta có th ăng nh p vào ch này trong trư ng h p mu n kh c ph c m t s s c . giao di n text.ây là ch d ng ho t ng c a h th ng # 1 . # 3 .d/rc 3 l4:4:wait:/etc/rc.Multiuser.ây là ch a ngư i dùng. giao di n ho # 6 .d/rc.nl.d/rc 0 l1:1:wait:/etc/rc. -i có ý nghĩa tương t như trong l nh halt. 2.ây là ch ơn ngư i dùng.Single user mode . # 2 .ây là ch a ngư i dùng.X11 .d/rc 0 l0:0:wait:/etc/rc.d/rc 6 # Things to run in every runlevel.

Cũng tuỳ vào vi c ư c cài giao di n GNOME hay KDE mà khi kh i ng vào ch ho . do ó 2 9 . máy tính có các giao di n tương ng. of course. cancel it. Như v y cho máy tính kh i ng vào ch ho ta s a l i dòng c u hình id:3:initdefault: thành id:5:initdefault: Trong Linux có m t s lo i giao di n ho do m t s t ch c vi t ra. Trên hình trên là giao di n GNOME mà khi kh i ng vào ch ho . pr:12345:powerokwait:/sbin/shutdown -c "Power Restored. M t khác. System Shutting Down" # If power was restored before the shutdown kicked in. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure.gnome.kde. # This does. assume you have powerd installed and your # UPS connected and working correctly.# of power left. các giao di n này liên t c ư c phát tri n.org) ã vi t ra các giao di n ho mang tên trùng v i t ch c ó là GNOME và KDE. và ch 5 là kh ng vào ch ho . Schedule a shutdown for 2 minutes from now. Hai t ch c n i ti ng là GNOME (http://www. Shutdown Cancelled" # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/X11/prefdm –nodaemon Trong ó ch kh i ng s 3 là ch kh i ng vào ch Text.org) và KDE (http://www.

Tên ngư i dùng có th ư c cô ng khai song m t kh u thì tuy t i ph i ư c m b o bí m t. h th ng hi n th h p tho i cho phép ngư i dùng nh p vào tên tài kho n. ngư i dùng ph i gõ úng tên và m t kh u. trong ó gõ m t kh u là công vi c b t bu c ph i th c hi n.3. h th ng h i ti p m t kh u. Trong giao di n ăng nh p h a. Trong quá trình ăng nh p. c n thi t ph i chú ý t i vi c thay i m t kh u. · Vi c ăng ký tên và m t kh u c a m t ngư i dùng thông thư ng ư c ti n hành khi m t ngư i dùng m i ăng ký tham gia s d ng h th ng. sau khi ngư i dùng nh p tên tài kho n c a mình. · Vi c ăng ký tên và m t kh u c a siêu ngư i dùng ư c ti n hành trong quá trình kh i t o h i u hành Linux. M t kh u là m t xâu kí t i kèm v i tên ngư i dùng m b o cho phép m t ngư i vào làm vi c trong h th ng v i quy n h n ã ư c quy nh. N u c tên tài kho n và m t kh u u chính xác thì ngư i dùng ư c phép vào h th ng và m t giao di n làm vi c m i s hi n ra như hình dư i. Thông thư ng siêu ngư i dùng cung c p tên và m t kh u cho ngư i dùng m i (có th do ngư i dùng ngh ) và dùng l nh adduser (ho c l nh useradd) ăng ký tên và m t kh u ó v i h 3 0 . L nh thay i m t kh u M t kh u là v n r t quan tr ng trong các h th ng a ngư i dùng và m b o tính b o m t t i a. Th m chí trong trư ng h p h th ng ch có m t ngư i s d ng thì vi c thay i m t kh u v n là r t c n thi t.m i phiên b n s có s khác nhau. 2.

-f : t m t kh u m i cho ngư i dùng song không c n ti n hành vi c ki m tra m t kh u ang dùng. -d : xóa b m t kh u c a ngư i dùng. Khi siêu ngư i dùng gõ l nh: 3 1 . Cho phép ngư i dùng thay i m t kh u c a mình c l p v i siêu ngư i dùng. -l : khóa m t tài kho n ngư i dùng. -u : m khóa (tháo b khóa) m t tài kho n ( i ng u v i tham s -l). N u không có tham s này cho phép nh p m t kh u c t thi t b vào chu n ho c t ư ng d n. Ch siêu ngư i dùng m i có quy n s d ng tham s này.th ng. L nh òi h i ph i xác nh n quy n b ng vi c gõ m t kh u ang dùng trư c khi thay i m t kh u. Vi c khóa tài kho n th c ch t là vi c d ch b n mã hóa m t kh u thành m t xâu ký t vô nghĩa b t u b i kí hi u "!". Cú pháp l nh passwd: passwd [tùy-ch n] [tên-ngư i-dùng] v i các tùy ch n như sau: -k : thay i m t kh u ngư i dùng. Sau khi ngư i dùng gõ xong m t kh u m i. ngư i dùng m i nh t thi t c n thay i m t kh u b o m vi c gi bí m t cá nhân tuy t i. Ch siêu ngư i dùng m i có quy n s d ng tham s này. ch ng h n như: BAD PASSWORD: it is too simplistic/systematic Và sau khi chúng ta kh ng nh l i m t kh u m i. Ch siêu ngư i dùng m i có quy n s d ng tham s này. cho bi t vi c thay i m t kh u thành công và d u nh c shell l i hi n ra. N u tên-ngư i-dùng không có trong l nh thì ng m nh là chính ngư i dùng ã gõ l nh này. h th ng cho ra thông báo: BAD PASSWORD: it is derived from your password entry Retype new UNIX password: ngư i dùng kh ng nh m t l n n a m t kh u v a gõ dòng trên (nh ph i gõ l i úng h t như l n trư c). h th ng cho ra thông báo: Passwd: all authentication tokens updated successfully. Ch nên quá phân vân vì thông báo dòng phía trên vì h u h t khi gõ m t kh u m i luôn g p nh ng thông báo ki u i lo i như v y. L nh passwd cho phép thay i m t kh u ng v i tên ăng nh p ngư i dùng. -stdin : vi c nh p m t kh u ngư i dùng ch ư c ti n hành t thi t b vào chu n không th ti n hành t ư ng d n (pipe). Ch siêu ngư i dùng m i có quy n s d ng tham s này. Ví d khi ngư i dùng user1 gõ l nh: # passwd user1 h th ng thông báo: Changing password for user user1 New UNIX password: ngư i dùng nh p m t kh u m i c a mình vào. Ch siêu ngư i dùng m i có quy n s d ng tham s này. Sau ó. -S : hi n th thông tin ng n g n v tr ng thái m t kh u c a ngư i dùng ư c ưa ra.

-I tương ương v i tham s --iso-8601='date' V i --iso-8601: n u mô-t là 'date' (ho c không có) thì hi n th ngày. n u mô-t là 'minutes': ngày+gi +phút.. -r. thi t t ngày. -I.# passwd -S root s hi n ra thông báo Changing password for user root Password set. n u mô-t là 'seconds': ngày + gi + phút + giây. 2.. L nh xem. ngày sinh. c bi t không nên s d ng h tên. N u thông báo m t kh u quá ơn gi n ư c l p i l p l i m t vài l n và không có thông báo m t kh u m i thành công ã quay v d u nh c shell thì nên gõ l i l nh và ch n m t m t kh u m i ph c t p hơn ôi chút. n u mô-t là 'hours' hi n th ngày+gi .4.4. -R. gi hi n t i và xem l ch trên h th ng 2. --reference= file : hi n th th i gian s a i file l n g n ây nh t. --iso-8601[=mô-t ] : hi n th ngày gi theo chu n ISO-8601 (ví d : 2000-11-8). --rfc-822 : hi n th ngày theo RFC-822 (ví d : Wed. --help : hi n th thông tin tr giúp và thoát. --universal : hi n th ho c thi t t th i gian theo UTC (ví d : Wed Nov 8 14:29:12 UTC 2000). -f. Lưu ý: Có m t l i khuyên i v i ngư i dùng là nên ch n m t kh u không quá ơn gi n quá (nh m tránh ngư i khác d dò tìm ra) ho c không quá ph c t p (tránh khó khăn cho chính ngư i dùng khi ph i ghi nh và gõ m t kh u). -u. s i n tho i . --utc. xâu-văn-b n ư c t trong hai d u nháy ơn ho c hai d u nháy kép. Cú pháp c a l nh g m hai d ng. mà không l y "th i gian hi n t i c a h th ng” như theo ng m nh. gi : date [tùy-ch n] [+ nh-d ng] và d ng thi t t l i ngày gi cho h th ng: date [tùy-ch n] [MMDDhhmm[ [CC[YY] ]-ss]] Các tùy-ch n như sau: -d. 8 Nov 2000 09:21:46 -0500). --date=xâu-văn-b n : hi n th th i gian dư i d ng xâu-văn-b n. gi L nh date cho phép có th xem ho c thi t t l i ngày gi trên h th ng. 3 2 . MD5 encryption cho bi t thu t toán mã hóa m t kh u mà Linux s d ng là m t thu t toán hàm băm có tên là MD5. --set=xâu-văn-b n : thi t t l i th i gian theo ki u xâu-văn-b n. --file=file-văn-b n : gi ng như m t tham s --date nhưng ng v i nhi u ngày c n xem: m i dòng c a file-văn-b n có vai trò như m t xâu-văn-b n trong trư ng h p tham s --date.1 L nh xem. thi t t ngày. c a b n thân ho c ngư i thân làm m t kh u vì ây là m t trong nh ng trư ng h p m t kh u ơn gi n nh t. d ng xem thông tin v ngày. -s.

YY: hai s ch năm trong th k . s d ng l nh man date). hh: hai s ch gi trong ngày. trong m i c p kí t u tiên là % còn kí t th hai mô t nh d ng. %b : Hi n ra thông tin tên tháng vi t t t theo ngôn ng b n a. gi m i c n thi t t. Các dòng ngay dư i ây trình bày m t s ví d s d ng l nh date.ss]] mô t ngày. trong ó: MM: hai s ch tháng. %B : Hi n ra thông tin tên tháng vi t y theo ngôn ng b n a.4. Do s lư ng nh d ng là r t nhi u vì v y chúng ta ch xem xét m t s nh d ng i n hình ( xem y các nh d ng. Dư i ây là m t s nh d ng i n hình: %% : Hi n ra chính kí t %. %a : Hi n ra thông tin tên ngày trong tu n vi t t t theo ngôn ng b n a. L nh xem l ch L nh cal cho phép xem l ch trên h th ng v i cú pháp như sau: cal [tùy-ch n] [<tháng> [<năm>]] 3 3 . trong ó dòng trên mô t l nh ư c gõ còn dòng dư i là thông báo c a Linux. nh-d ng là dãy có t m t n nhi u c p g m hai kí t .2. Trong d ng l nh date cho phép thi t t l i ngày gi cho h th ng thì tham s [MMDDhhmm[ [CC[YY] [.Trong d ng l nh date cho xem thông tin ngày. %A : Hi n ra thông tin tên ngày trong tu n vi t y theo ngôn ng b n a. DD: hai s ch ngày trong tháng. CC: hai s ch th k . gi thì tham s nh-d ng i u khi n cách hi n th thông tin k t qu .50 Wed Jan 3 23:50:50 ICT 2001 # date +%a%A Wed Wednesday # date +%a%A%b%B Wed Wednesday Jan January # date +%D%%%j 01/05/01%005 2. mm: hai s ch phút. # date Wed Jan 3 23:58:50 ICT 2001 # date -d='01/01/2000' Sat Jan 1 00:00:00 ICT 2000 # date -iso-8601='seconds' 2000-12-01T00:36:41-0500 # date -d='01/01/2001' Mon Jan 1 00:00:00 ICT 2001 # date 010323502001. m i ví d ư c cho tương ng v i m t c p hai dòng.

L nh có các tùy ch n là: -a. l ch c a tháng hi n th i s ư c hi n th . --release : hi n nhân c a h -s. --sysname : hi n tên h i u hành. i586. -p. -y : hi n th l ch c a năm hi n th i. -m. m c nh ch n ngày ch nh t là ngày b t u c a tu n. -r. Ví d : # cal 1 2001 January 2001 Su Mo 1 7 8 14 15 21 22 28 29 Tu 2 9 16 23 30 We 3 10 17 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 Khi nh p dòng l nh trên. i686. --nodename : hi n tên c a máy. n u gõ l nh # uname -a 3 4 . --processor : hi n ki u b x lý c a máy ch . i486. --machine : ki u ki n trúc c a b x lý (i386. s ngày b t u ư c tính t ngày 1/1). Dư i ây là ví d hi n th s ngày trong tháng 3 dư i d ng s ngày trong năm 2001. i u hành. Ví d . Các tuỳ-ch n là: -m : ch n ngày Th hai là ngày u tiên trong tu n (m c nh là ngày Ch nh t). -n.. -j : hi n th s ngày trong tháng dư i d ng s ngày trong năm (ví d : ngày 1/11/2000 s ư c hi n th dư i d ng là ngày th 306 trong năm 2000. --all : hi n t t c các thông tin.n u không có tham s . Xem thông tin h th ng L nh uname cho phép xem thông tin h th ng v i cú pháp là: uname [tùy-ch n] N u không có tuỳ ch n thì hi n tên h i u hành.5. trên màn hình s hi n th l ch c a tháng 1 năm 2001..). # cal -j 3 2001 March 2001 Su Mo 63 70 77 84 64 71 78 85 Tu 65 72 79 86 We 66 73 80 87 Th 60 67 74 81 88 Fr 61 68 75 82 89 Sa 62 69 76 83 90 2.

1 v tham s khóa k t h p: Trong ví d trên ây khi vi t tham s -spr là yêu c u th c hi n l nh usame v i nghĩa k t h p tình hu ng theo c ba tham s khóa -s. Linux cho phép thay i giá tr c a bi n h th ng PS1 b ng l nh gán tr m i cho nó. PS1 là bi n h th ng tương ng v i d u nh c c p 1: Giá tr c a PS1 chính là n i dung hi n th c a d u nh c shell. Như ã lưu ý m c 1.thì màn hình s hi n ra như sau: Linux linuxsrv. -r.6. 2. Thay i n i dung d u nh c shell Trong Linux có hai lo i d u nh c: d u nh c c p m t (d u nh c shell) xu t hi n khi nh p l nh và d u nh c c p hai (d u nh c nh p li u) xu t hi n khi l nh c n có d li u ư c nh p t bàn phím và tương ng v i hai bi n nh c tên là PS1 và PS2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown # Thông tin hi n ra có t t c 6 trư ng là: Tên h i u hành: Linux Tên máy: linuxsrv. m t nhu c u t ra là c n thay i giá tr c a các bi n h th ng PS1 và PS2.14-5. Dãy kí t này bao g m các c p kí t i u khi n và các kí t khác.2. C p kí t i u khi n g m hai kí t .0 unknown là tên h i u hành.1 trong nhi u l nh c a Linux cho phép vi t k t h p các tham s khóa theo cách th c như trên mi n là các tham s ó không xung kh c v i nhau. tên nhân và ki u b x lý c a máy ch .linuxvn. cho phép có th có d u cách.net Tên nhân c a h i u hành: 2. Chú ý r ng. B ng dư i ây gi i thi u m t s c p ký t i u khi n có th ư c s d ng khi mu n thay i d u nh c l nh: C p ký t i u khi n Ý nghĩa 3 5 . kí t u tiên là d u s xuôi "\" còn kí t th hai nh n m t trong các trư ng h p li t kê trong b ng dư i ây.2. Dãy kí t n m gi a c p hai d u nháy ơn (có th s d ng c p hai d u kép ") và không ư c phép ch a d u nháy. -p. nh n bi t thông tin h th ng hi n t i. không th vi t -s -p -r thay cho -spr ư c.2.net 2.3.3. Lưu ý: Chúng ta làm rõ thêm n i dung lưu ý trong m c 1. L nh này có d ng: # PS1='<dãy kí t >' Năm (5) kí t u tiên c a l nh gán trên ây (PS1=') ph i ư c vi t liên ti p nhau.0 Ngày s n xu t: #1 Tue Mar 7 21:07:39 EST 2000 Ki u ki n trúc b x lý: i686 Ki u b x lý c a máy ch : unknown Ví d n u gõ l nh: # uname -spr thì màn hình s hi n ra như sau: Linux 2.linuxvn.14-5.

2.7. Trong ngôn ng l p trình ư c cung c p (t m th i g i là ngôn ng bc). cách th c thay i chính xác.\! \# \$ \\ \d \h \n \s \t \u \W \w Hi n th th t c a l nh trong l ch s Hi n th th t c a l nh Hi n th d u ô-la ($). cách th c nh nghĩa hàm. --warn : khi th c hi n phép tính không tuân theo chu n POSIX (POSIX là m t chu n trong Linux) thì m t c nh báo xu t hi n. chúng ta ã có m t "máy tính s b m tay" hi u qu . Cú pháp l nh bc: bc [tùy-ch n] [file. ngư i dùng ư c cung c p m t ngôn ng tính toán (và cho phép l p trình tính toán có d ng ngôn ng l p trình C) ho t ng theo thông d ch. Linux cung c p cách th c hoàn toàn tương t như i v i bi n PS1 thay i giá tr bi n h th ng PS2 tương ng v i d u nh c c p hai. m t s hàm chu n.] v i các tuỳ ch n sau ây: -l. 3 6 . --mathlib : th c hi n phép tính theo chu n thư vi n toán h c (ví d : 5/5=1. hi n th i d u nh c shell có d ng: root[may1 /hda1]# Sau khi gõ l nh root@may1 /hda1]# PS1='[\h@\u \w : \d]\$' thì d u nh c shell ư c thay i là: [may1@root /mnt/hda1 : Fri Oct 27 ]# ngoài vi c i th t gi a tên ngư i dùng và máy còn cho chúng ta bi t thêm v ngày h th ng qu n lý và tên y c a thư m c hi n th i. i v i siêu ngư i dùng (super user). thì hi n th d u s hi u (#) Hi n th d u s (\) Hi n th ngày hi n t i Hi n th tên máy (hostname) Ký hi u xu ng dòng Hi n th tên h shell Hi n th gi hi n t i Hi n th tên ngư i dùng Hi n th tên th c s c a thư m c hi n th i (ví d thư m c hi n th i là /mnt/hda1 thì tên th c s c a nó là /hda1) Hi n th tên y c a thư m c hi n th i (ví d /mnt/hda1) Ví d . t l i chú thích . c u trúc i u khi n. Ch c n s d ng m t ph n nh tác ng c a l nh bc.00000000000000000000). bi n chu n. phép toán so sánh. t n t i r t nhi u công c h tr tính toán và l p trình tính toán: ki u phép toán s h c phong phú. Khi yêu c u l nh này. -w.. L nh g i ngôn ng tính toán s h c Linux cung c p m t ngôn ng tính toán v i chính xác tùy ý thông qua l nh bc....

ây trình bày sơ b m t s y u t cơ b n nh t c a ngôn ng ó (bt là vi t t t c a bi u th c. b ++.08888888888888888888 a%b . Lưu ý: Ngôn ng l p trình tính toán bc là m t ngôn ng r t m nh có n i dung h t s c phong phú cho nên trong khuôn kh c a tài li u này không th mô t h t các n i dung c a ngôn ng ó ư c. --b. 5^3 125 12+12+78*7-62/4 554.-s. Dư i ây là m t ví d s d ng l nh bc d ng ơn gi n nh t. % là chia l y ph n dư. 1994. Khi gõ l nh t i d u nh c: # bc -l màn hình xu t hi n l i gi i thi u v GNU khi dùng bc và ngôn ng bc ư c kích ho t ph c v ngư i dùng. Tham s file là tên file ch a chương trình vi t trên ngôn ng bc. Chúng ta c n s d ng l nh man bc nh n ư c thông tin y v l nh bc và ngôn ng tính toán bc. b là vi t t t c a bi n): Các phép tính: . Inc.bt: l y i.05 Copyright 1991. This is free software with ABSOLUTELY NO WARRANTY. chia /. b --: phép toán tăng. / là phép chia l y thương. -q. khi l nh bc th c hi n s t ng ch y các file chương trình này (N u có nhi u tham s thì có nghĩa s ch y nhi u chương trình liên ti p nhau). l y ph n dư %. 1992.00000000000000000040 ây * là phép nhân. tr -. các phép toán hai ngôi c ng +. 1993. ^ là phép tính lu th a.50000000000000000000 a=4 a^a 256 a*78 312 b=45 a*b 180 a/b . lũy th a nguyên 3 7 . nhân *. 1998 Free Software Foundation. gi m b. 1997. --standard : th c hi n phép tính chính xác theo chu n c a ngôn ng POSIX bc. For details type `warranty'. --quiet : không hi n ra l i gi i thi u v ph n m m GNU khi dùng bc. ++ b. bc 1.

last giá tr tính toán cu i cùng. bt). <=. khác != . gán =. các phép toán so sánh <. mũ cơ s t nhiên e (bt). cho 0 n u sai... Phép so sánh cho 1 n u úng. 3 8 . gán sau khi thao tác <thao tác>=. hàm Bessel b c nguyên n c a bt là j (n. ibase cơ s h m i v i input và obase là cơ s h m v i output (ng m nh hai bi n này có giá tr 10). >=. cosin c (bt). B n bi n chu n là scale s lư ng ch s ph n th p phân. lôgarit t nhiên l (bt).b c ^. b ng ==. Các hàm chu n sin s (bt). >. arctg a (bt).

thư m c cũng ư c coi là file song trong m t s trư ng h p phân bi t v i "file" thư m c. 3 9 . g ch chân. làm vi c ư c v i các file. m t t p h p d li u .). x lý lên các file. Chính vì có h i u hành m b o các ch c năng liên quan n file nên ngư i dùng không c n bi t file c a mình lưu vùng nào trên ĩa t . tên file trên ây có ph n m r ng là . bao g m các ch cái. Các thư m c cũng ư c h i u hành qu n lý trên v t d n ngoài và vì v y. File là m t t p h p d li u có t ch c ư c h i u hành qu n lý theo yêu c u c a ngư i dùng. N u trong tên file có d u ch m "." thì xâu con c a tên file t d u ch m cu i cùng ư c g i là ph n m r ng c a tên file (ho c file).gz và filename. M t s n i dung sau ây liên quan n tên file (bao g m c tên thư m c): Tên file trong Linux có th dài t i 256 ký t . M t s khái ni m Ngư i dùng ã t ng làm vi c v i h i u hành DOS/Windows thì r t quen bi t v i các khái ni m: file (t p tin). Linux ch l y 32 hay 64 ký t u tiên trong tên file mà thôi (tùy theo phiên b n Linux).gz là hai file khác nhau. thư m c.. ví d : This_is.. Chú ý r ng khái ni m ph n m r ng ây không mang ý nghĩa như m t s h i u hành khác (ch ng h n như MS-DOS). ch s ..CHƯƠNG 3.. Tên thư m c/file trong Linux có th có nhi u hơn m t d u ch m.filename.. M t i tư ng i n hình trong các h i u hành ó là file. b ng cách nào c/ghi lên các vùng c a ĩa t mà v n th c hi n ư c yêu c u tìm ki m. chúng ta gi i thi u sơ b v khái ni m thư m c. m b o tính h th ng và thu n ti n cho ngư i dùng chưa t ng làm vi c thành th o v i m t h i u hành nào khác. Thư m c (directory) là i tư ng ư c dùng ch a thông tin v các file. theo nghĩa này. thư m c hi n th i .tar. B i l .. shell script . H i u hành t ch c vi c lưu tr n i dung file trên các thi t b nh lâu dài (ch ng h n ĩa t ) và m b o các thao tác lên file. Ví d .VERY_long. thì i v i Linux. thư m c ch a các file. File có th là m t văn b n (trư ng h p c bi t là chương trình ngu n trên C. ví d hai file FILENAME.a. Linux theo dõi thông tin. N u có hai file ch khác nhau ký t cu i cùng. d u ch m. H i u hành qu n lý file theo tên g i c a file (tên file) và m t s thu c tính liên quan n file. Khác v i file thông thư ng. H TH NG FILE 3.1. Trư c khi gi i thi u m t s n i dung liên quan n tên file và tên thư m c. không ph i ký t nào cũng có nghĩa. Cách t ch c d li u trong file thu c v ch c a nó là ngư i ã t o ra file.tar. Xin nh c l i lưu ý v phân bi t ch hoa và ch thư ng i v i tên thư m c/file. PASCAL. Lưu ý: Chúng ta nên lưu ý r ng. nhưng thư ng không xem các ký t ng sau ký t th 33 hay 65 là quan tr ng i v i nó. ph n tên file còn l i dành cho ch c a file.1 T ng quan v h th ng file 3.filename. chương này v n gi i thi u v các khái ni m này m t cách sơ b . m t chương trình ngôn ng máy. hay nói theo m t cách khác. chúng ta dùng thu t ng file thông thư ng. ó là hai file có th trùng tên. h i u hành l i quan tâm n n i dung c a thư m c. h i u hành không ch qu n lý n i dung file mà còn ph i qu n lý các thông tin liên quan n các file.1. d u g ch n i.

hãy ánh dòng l nh sau: # mkdir "My document" M t s ký t sau không ư c s d ng trong tên thư m c/file: !. d u ". X11 / root bin etc usr home dev peng office52 sh date who X11 src bin user1 user2 tty00 tty01 xinit Xclients Xmodmap Hình 3.N u trong tên thư m c/file có ch a kho ng tr ng. # . Ví d . vi c hi n th tên file s b sung m t kí t theo nghĩa: d u "*" cho file kh thi trong Linux. chúng ta vi t như sau: /etc/X11/xinit/Xclients ư ng ư ng d n này cho bi t Xclients n m trong xinit. h th ng file ư c t ch c lôgic theo d ng hình cây: H th ng file ư c xu t phát t m t thư m c g c ( ư c kí hi u là "/") và cho phép t o ra thư m c con trong m t thư m c b t kỳ.1. 4 0 ." cho file n. M t ph n c u trúc lôgic d ng cây c a h th ng File n m trong etc và etc n m trong g c /. d u "~" cho file sao lưu. t o thư m c có tên là “My document” ch ng h n. chúng ta c n ưa ra m t ư ng d n. ví d d n xác nh file Xclients trong hình 3. &. Hình 3. d u "@" cho file liên k t. $. B i chính t cách th c s d ng thư m c. *.. xinit n m trong X11. T p h p t t c các file có trong h i u hành ư c g i là h th ng file là m t h th ng th ng nh t.1. s ph i t tên thư m c/file vào trong c p d u nháy kép s d ng thư m c/file ó.. cho minh h a m t ph n trong cây lôgic c a h th ng file. Khi s d ng chương trình mc (Midnight Commander). ch m t file hay m t thư m c. Thông thư ng.1. khi kh i t o Linux ã có ngay h th ng file c a nó...

Qua thư m c hi n th i. Sơ b ki n trúc n i t i c a h th ng file Trên ĩa t . Ví d .) gi i thi u nh ng n i dung sâu hơn v h th ng file Linux. C u trúc n i t i c a h th ng file bao g m 4 thành ph n k ti p nhau: Boot block (dùng kh i ng h th ng). thư m c riêng c a ngư i dùng có tên là user1 là /home/user1 . M t danh sách ch s các kh i r i (thư ng tr c trên siêu kh i) trong h th ng file. ngư i dùng ch c n vi t Xclients ho c . và t i th i i m ó thư m c riêng là thư m c hi n th i c a ngư i dùng. h th ng file ư c coi là dãy tu n t các kh i lôgic m i kh i ch a ho c 512B ho c 1024B ho c b i c a 512B là c nh trong m t h th ng file. các kh i d li u ư c a ch hóa b ng cách ánh ch s liên ti p.1. Linux còn cho phép ghép m t h th ng file trên m t thi t b nh ( ĩa m m. Vì v y. Hai d u ch m ".2 và 3.1.. Linux cho phép ngư i dùng ch m t file trong l nh ng n g n hơn nhi u. chúng ta xem xét sơ lư c n i dung các thành ph n c u trúc n i t i m t h th ng file. n u thư m c hi n th i là thư m c xinit thì ch file ã nói.1. Siêu kh i (Super block).. Linux cho phép dùng l nh cd chuy n sang thư m c khác (l y thư m c khác làm thư m c hi n th i). vùng ĩa c ng chưa ư c ưa vào h th ng file) thành m t thư m c con trong h th ng file c a h th ng b ng l nh mount. Thư m c hi n th i là m t thư m c trong h th ng file mà hi n th i "ngư i dùng ang ó". Trong h th ng file. Kích thư c c a h th ng file. Hai m c ti p theo (3." ch thư m c hi n th i. Dư i ây. Danh sách inode và Vùng d li u. Linux (cũng như nhi u h i u hành khác) s d ng khái ni m thư m c hi n th i c a m i ngư i dùng làm vi c trong h th ng. m i a ch ư c ch a trong 4 byte (32 bit).Tên file thư ng là tham s th c s khi gõ l nh và công vi c gõ l nh tr nên r t n ng n i v i ngư i dùng n u như trong l nh ph i gõ m t ư ng d n dài theo d ng trên ( ư c bi t v i tên g i là ư ng d n tuy t i). 3.2. Linux luôn chuy n ngư i dùng vào thư m c riêng. ư ng d n ư c xác nh qua thư m c hi n th i ư c g i là ư ng d n tương i./Xclients trong ó kí hi u ". Khi m t ngư i dùng ăng nh p vào h th ng. Thư m c riêng c a siêu ngư i dùng là /root.. 4 1 . Trong siêu kh i có các trư ng sau ây: Kích thư c c a danh sách inode (khái ni m inode s ư c gi i thích trong m c sau): nh kích c vùng không gian trên H th ng file qu n lý các inode. Hai kích thư c trên ây tính theo ơn v dung lư ng b nh ngoài. Các h th ng file ư c ghép thu c vào các ki u khác nhau. Siêu kh i Siêu kh i ch a nhi u thông tin liên quan n tr ng thái c a h th ng file." ư c dùng ch thư m c ngay trên thư m c hi n th i (cha c a thư m c hi n th i).3.

Nhi u thao tác t o file m i. i u ó có nghĩa là m i inode có ch s không l n hơn ch s này ho c có trong danh sách các inode r i thư ng tr c ho c ã ư c tương ng v i m t file nào ó.v. 4 2 . S lư ng t ng c ng các inode r i trong h th ng file. h th ng không cho phép c p nh t t i hai danh sách nói trên. Danh sách này ch a ch s các inode r i ư c dùng phân ph i ngay ư c cho m t file m i ư c kh i t o. Kích thư c kh i ( ơn v phân ph i d li u) c a h th ng file.Ch s các kh i r i thư ng tr c trên siêu kh i ư c dùng áp ng nhu c u phân ph i m i. danh sách này ch ch a m t b ph n các inode r i trên h th ng file. Hi n t i kích thư c ph bi n c a kh i là 1KB. Các trư ng khóa (lock) danh sách các kh i r i và danh sách inode r i: Trong m t s trư ng h p. xoá file c p nh t thông tin này. C ch d n v vi c siêu kh i ã ư c bi n i: nh kỳ th i gian siêu kh i b nh trong ư c c p nh t l i vào siêu kh i ĩa t và vì v y c n có thông tin v vi c siêu kh i b nh trong khác v i n i dung b nh ngoài: n u hai b n không gi ng nhau thì c n ph i bi n i chúng ư c ng nh t. C ch d n r ng h th ng file ch có th c (c m ghi): Trong m t s trư ng h p. ch ng h n khi h th ng ang làm vi c th c s v i ĩa t c p nh t các danh sách này. Ch s kh i r i ti p theo dùng h tr vi c tìm ki m ti p các kh i r i: b t u tìm t kh i có ch s này tr i. M t danh sách các inode r i (thư ng tr c trên siêu kh i) trong h th ng file. h th ng ang c p nh t thông tin t b nh ngoài thì ch cho phép c i v i h th ng file. theo t ng giai o n. S lư ng t ng c ng các kh i r i trong h th ng file. Thông tin v thi t b . i u ó có nghĩa là m i kh i có ch s không l n hơn ch s này ho c có trong danh sách các kh i r i thư ng tr c ho c ã ư c c p phát cho m t file nào ó. Ch s inode r i ti p theo nh v vi c tìm ki m ti p thêm inode r i: b t u tìm t inode có ch s này tr i. M t trong khái ni m c t lõi xu t hi n trong h th ng file ó là inode. Ch s inode r i ti p theo trong danh sách các inode r i. Trong th i gian máy ho t ng. Ch s c a kh i r i ti p theo trong danh sách các kh i r i. Thông thư ng. c p nh t các thông tin này. Các i tư ng liên quan n khái ni m này s ư c trình bày trong các m c ti p theo. danh sách ch s các kh i r i có trên siêu kh i ch là m t b ph n c a t p t t c các kh i r i có trên h th ng file. Chú ý r ng. xoá file. nhân s ưa siêu kh i lên ĩa n u nó ã ư c bi n i phù h p v i d li u trên h th ng file. thay i n i dung file v. Hai tham s trên ây t o thành c p xác nh ư c danh sách các inode r i trên h th ng file các thao tác t o file m i.

chúng ta xem xét sơ lư c m i quan h liên quan gi a file d li u và vi c lưu tr trên v t d n ngoài i v i Linux. Quy n truy nh p là c. t h p g m inode và t p các kh i d li u như v y là m t file v t lý: inode có thông tin v file v t lý.Inode M i khi m t quá trình kh i t o m t file m i. Trong Linux phân lo i các ki u file: file thông thư ng (regular). S lư ng liên k t i v i inode: ây chính là s lư ng các tên file trên các thư m c ư c liên k t v i inode này. Trong quá trình làm vi c. ư c g i là b ng inode (trong m t s trư ng h p. nó còn ư c g i tư ng minh là b ng sao in-core inode) v i ch c năng tương ng v i vùng danh sách các inode có trong h th ng file. ghi. h th ng dùng 2 bytes lưu tr ch s c a inode. có 3 m c quy n truy nh p liên quan n các i tư ng: m c ch c a file ( i tư ng này ư c ký hi u là u: t ch user). Có th quan ni m r ng. ch thông qua inode m i có th làm vi c v i d li u t i các kh i d li u: Inode ch a d ng thông tin v t p h p các kh i d li u n i dung file. Trong Linux. hi u rõ hơn v inode. Ngư i dùng tác ng thông qua tên file và tên file l i tham chi u n inode (tên file và ch s inode là hai trư ng c a m t ph n t c a m t thư m c). thư m c. i v i m t inode. Inode bao g m các trư ng thông tin sau ây: Ki u file. 4 3 . N i dung c a m t in-core inode không ch ch a các thông tin trong inode tương ng mà còn ư c b sung các thông tin m i giúp cho quá trình x lý inode. Như v y. file là m t tài nguyên chung c a h th ng vì v y quy n truy nh p file ư c c bi t quan tâm tránh nh ng trư ng h p truy nh p không h p l . trong ó có a ch c a các kh i nh ch a n i dung c a file v t lý. h tr cho quá trình truy nh p d li u trong h th ng file. quy n th c hi n i v i m t thư m c tương ng v i vi c cho phép tìm m t tên file có trong thư m c ó. không có nhi u hơn 65535 inode trong m t h th ng file. c t kí t . Linux dùng m t vùng b nh . m t file ch có m t inode song m t file l i có m t ho c m t s tên file. nhân h th ng s gán cho nó m t inode chưa s d ng. Quy n truy nh p file. Liên k t n t p h p các kh i d li u này là m t inode. Inode ư c lưu tr t i vùng danh sách các inode. Thông thư ng. Các inode ư c phân bi t nhau theo ch s c a inode: ó chính là s th t c a inode trong danh sách inode trên h th ng file. th c hi n ho c m t t h p nào ó t nhóm g m 3 quy n trên. Thu t ng inode là s k t h p c a hai t index v i node và ư c s d ng ph d ng trong Linux. Chúng ta xem xét c u trúc n i t i c a m t inode th y ư c s trình bày n i t i c a m t file. m c ngư i dùng khác ( i tư ng này ư c ký hi u là a: t ch all). m i tương ng như v y ư c g i là m t liên k t. V i cách lưu tr ch s như th . Linux quy nh trư ng ki u file có giá tr 0 tương ng ó là inode chưa ư c s d ng. M t inode có th tương ng v i m t ho c nhi u tên file. N i dung c a file ư c ch a trong vùng d li u c a h th ng file và ư c phân chia các kh i d li u (ch a n i dung file) và hình nh phân b n i dung file có trong m t inode tương ng. m c nhóm ngư i dùng c a ch nhân c a file ( i tư ng này ư c ký hi u là g: t ch group). c t kh i và ng d n FIFO (pipes). Chú ý r ng.

th i gian file ư c kh i t o. B ng này có 13 ph n t a ch . M t inode thu c vào danh sách các inode r i khi không có file v t lý nào tương ng v i inode ó. Trong quá trình h th ng làm vi c. th i gian file ư c truy nh p mu n nh t. m t quá trình ang ch i khi inode tháo khóa. • B ng a ch ch a các a ch kh i nh ch a n i dung file. s hi u thi t b lôgic c a h th ng file ch a file nói trên ch s inode: dùng liên k t v i inode trên ĩa. Ví d v n i dung m t inode như sau: type regular perms rwxr-xr-x links 2 owner 41CT group 41CNTT size 5703 bytes accessed Sep 14 1999 7:30 AM modified Sep 10 1999 1:30 PM inode Aug 1 1995 10:15 AM Các ph n t a ch d li u B n sao in-core inode còn b sung thêm trư ng tr ng thái c a in-core inode. in-core inode khác v i inode do s thay i d li u trong file. Trong b nh trong.nh danh ch nhân c a inode. N i dung c a file thay i khi có thao tác ghi lên nó. s lư ng các tên file n i v i file ang ư c m . in-core inode khác v i inode do s thay i d li u trong inode. các in-core inode ư c liên k t theo m t hàng băm và m t danh sách t do. 1 ph n t gián ti p b c 2 và m t ph n t gián ti p b c 3 (chi ti t có trong ph n sau). Th i gian truy nh p file: th i gian file ư c s a i mu n nh t. n i dung c a m t inode thay i khi n i dung c a file thay i ho c thay i ch ho c thay i quy n ho c thay i s liên k t. 4 4 . các móc n i t i các in-core inode khác. dài c a file tính theo byte. n y sinh khái ni m inode tích c c n u như có m t quá trình ang làm vi c v i inode ó (như m file). 1 ph n t gián ti p b c 1. • Trư ng tr ng thái c a in-core inode có các thông tin sau: inode ã b khoá. Trong danh sách hàng băm các in-core inode hòa h p theo s hi u thi t b lôgic và s hi u inode. trong ó có 10 ph n t tr c ti p. nh danh nhóm ch nhân: xác nh tên nhóm ngư i dùng mà ch file là m t thành viên c a nhóm này.

Cơ ch qu n lý a ch file như trên cho th y có s phân bi t gi a file nh v i file l n. M t s l i g i h th ng thư ng g p như m file open. ơn gi n hơn do ch ph i làm vi c v i các ph n t tr c ti p. File nh có dài bé hơn và theo cách t ch c như trên. T ng th v l i g i h th ng File 4 5 . Kh i trên vùng d li u ư c dùng ch a n i dung các file. ch a m t s hi u c a m t kh i nh trên ĩa. kh i nh ngoài này không dùng ch a d li u c a file mà l i ch a danh sách ch s các kh i nh ngoài và chính các kh i nh ngoài này m i th c s ch a n i dung file. Chú ý r ng. n i dung các thư m c và n i dung các kh i nh v a ch c a các file. ghi n i dung file write v. Khác v i ph n t tr c ti p.B ng ch a a ch kh i d li u c a File trong UNIX B ng ch a a ch kh i d li u c a file g m 13 ph n t v i 10 ph n t tr c ti p và 3 ph n t gián ti p: M i ph n t có dài 4 bytes. Như v y.3. 3. thu t toán c File ti n hành theo các cách khác nhau i v i các ph n t tr c ti p và gián ti p. Cơ ch t ch c lưu tr n i dung Fle như ã trình bày cho phép dài file có th lên t i 24+216 + 28+10) kh i. ch s c a kh i d li u ư c ch a trong 32 bit và thông tin này xác nh dung lư ng l n nh t c a h th ng file. c n i dung file read.1. Ph n t gián ti p b c 1 (single indirect) tr t i 1 kh i nh ngoài. B ng dư i ây th ng kê các l i g i h th ng làm vi c v i h th ng file và phân lo i theo ch c năng c a m i l i g i h th ng (m t l i g i có th ư c nh c t i m t s l n): Th i i m s d ng file open creat dup pipe close S d ng namei open creat chdir chroot chown chmod gán inode thu c Vào-ra C u trúc h Qu n tính file file th ng file lý cây chown read mont chdir chmod write umount chown stat cseek iget getblk stat creat link mknod unlink link mknod unlink mount umount Thu t toán h th ng file m c th p Namei iput Ialloc ifree alloc Thu t toán nh v buffer brelse Bread breada free bmap bwrite Hình 3.v.2. m i kh i d li u ư c ánh ch s phân bi t. M i ph n t tr c ti p tr t i 1 kh i d li u th c s ch a n i dung file. Tương t i v i các ph n t gián ti p m c cao hơn. phương pháp truy nh p s cho phép t c nhanh hơn. n u kh i có dài 1KB và m t ch s kh i ngoài có dài 4 bytes thì a ch gián ti p cho phép nh v không gian trên ĩa lưu tr d li u c a file t i 256KB (Không gian b nh ngoài trong vùng d li u ph i dùng t i là 257KB). (2 Vùng d li u bao g m các kh i d li u. óng file close. Khi x lý. M t s thu t toán làm vi c v i inode H th ng l i g i h th ng file Khi làm vi c v i file thư ng thông qua l i g i h th ng.

N u s lư ng file tích c c là 0 thì: 4 6 . m i kh i ĩa ch a 8 inode ĩa thì inode s 8 s b t u t byte th 448 trên kh i ĩa u tiên trong vùng danh sách các inode. trong super block có m t danh sách các inode r i (trên nó) và m t danh sách các kh i r i. Sau khi ã c kh i ĩa ch a inode vào b nh trong. Thu t toán iput lo i b inode Thu t toán iput có ch c năng i ng u v i thu t toán iget: c n tháo b t s xu t hi n c a m t inode. Thu t toán iget c p phát m t b n in-core inode i v i m t s hi u inode. Tuy nhiên. Sau khi ư c tháo khóa inode có th tr thành tích c c ho c r i.1) mod (s lư ng inode trong m t kh i nh ))* dài m t inode Ví d .v. .H th ng gi m s lư ng file tích c c i 1. Thu t toán truy nh p t i inode (iget) Nhi u tình hu ng òi h i thu t toán iget. có nghĩa là có nh ng inode không có giá tr : lo i b nó và t inode m i vào thay th . + N u inode danh sách các inode r i thì lo i b nó kh i danh sách này b ng cách t inode sang tích c c. .1) / (s lư ng inode trong m t kh i nh ) + ch s kh i nh u tiên ch a danh sách inode trên ĩa. ch ng h n như.Chúng ta xem xét m t s thu t toán làm vi c v i inode. Khi danh sách các inode này khác r ng. Công th c liên quan n kh i ĩa t ch a inode có th c vào b nh trong như sau: Ch s kh i ch a inode = (s hi u inode . trong trư ng h p chưa có b n sao in-core inode thì d có n i dung c a nó c n ph i c ư c n i dung c a inode ó và c n nh v kh i d li u ch a inode ã cho. Khác v i trư ng h p thu t toán iget.inode không t n t i trên vùng m tuy nhiên danh sách các inode r i khác r ng. chúng ta có công th c sau: Byte v trí u tiên = ((s hi u inode . ch ng h n khi chương trình th c hi n thao tác óng file. Trong trư ng h p này x lý theo hai bư c: + inode tương ng ã b khóa b i m t quá trình khác: lúc ó ph i i cho n khi quá trình trư c ây không khóa inode n a. Thu t toán iget nh n m t inode cho nó tích c c và i u ó tùy thu c vào m t s tình hu ng sau ây: . L i này x y ra do yêu c u m t inode không còn vùng m làm vi c v i file n a (tương ng v i trư ng h p trong MS-DOS thông báo: too many files opened). ý r ng. n u như m i inode ĩa chi m 64 bytes. Trong thu t toán này. Chú ý r ng. m t quá trình m m t file m i ho c t o m t file m i v. khi m t quá trình không làm vi c v i m t file ư c liên k t v i m t inode n a thì m t s tình hu ng x y ra: .N u inode không t n t i trong vùng m mà l i không thu c danh sách các inode r i trên super block thì h th ng ph i thông báo m t l i ã ư c g p. .inode ã có trong vùng m các inode trên h th ng file ( ã có in-core inode). xác nh chính xác v trí c a inode.. thu t toán iput không n y sinh tình hu ng sai sót. khi làm vi c v i m t h th ng file thì super block c a nó luôn có m t trong b nh trong h th ng có nh ng thông tin làm vi c.

có nghĩa là s t n t i c a file v t lý không còn. Sau ó. Ho t ng c a thu t toán ialloc ư c gi i thích như sau: . chúng ta th c hi n vi c xoá th c s file nói trên b ng m t s thao tác: gi i phóng các kh i d li u. c ng ng Linux ã thêm vào nó r t nhi u ki u h th ng file khác nhau và Linux tr thành m t h i u hành h tr r t nhi u h th ng file.4. Trong trư ng h p s lư ng file tích c c v n dương thì không th c hi n thao tác gì. nó s c p phát kh i r i ti p theo ã ư c ghi nh n trong super block. nhi u thu t toán làm vi c v i file ph i s d ng namei. H tr nhi u h th ng File Các phiên b n u tiên c a Linux ch h tr m t h th ng file duy nh t ó là h th ng file minix. v i s m r ng nhân.ki m tra danh sách inode r i trên super block. nhân lưu gi m t inode ư c g i là inode nh . Khi ó. chính là inode cu i cùng ư c tìm th y sau này thu n l i cho tìm ki m.N u danh sách không r ng thì l y m t inode ti p theo cho file. ch ng h n kh i t o file creat. N u danh sách inode r i trên super block là r ng và không tìm th y inode r i trên ĩa thì s có thông báo l i. . kh i t o các giá tr ban u c a inode ó và gi m s inode r i trên super trên super block. 3. + khi s liên k t >0 thi c n c p nh t s thay i c a inode lên ĩa t . Thu t toán c p phát d li u trên ĩa Khi nhân mu n c p phát m t kh i d li u. Dư i ây là m t s h th ng file thông d ng trong các h i u hành khác nhau ư c Linux h tr . thu t toán namei cho inode tương ng. t ki u file c a inode là 0 và gi i phóng inode. Khi m t kh i d li u ã ư c c p cho m t file thì nó ch ư c c p phát l i khi nó tr thành r i. .N u danh sách các inode r i trên super block là r ng: tìm ki m trên h th ng file nh ng inode r i t i vào danh sách các inode r i trên super block. x y ra m t trong hai trư ng h p ho c danh sách r ng ho c không r ng. Thu t toán ialloc gán inode cho m t file m i Khi m t file m i ư c xu t hi n.1. Thu t toán ifree t i m t inode r i trên ĩa vào danh sách các inode r i trên super block Thu t toán namei tìm ch s m t inode theo tên file Thu t toán namei là m t thu t toán ph d ng. T tên m t ư ng d n file/thư m c. Trên danh sách các inode r i. 4 7 . N u không còn kh i r ng nào trên h th ng file mà l i có nhu c u cung c p kh i thì nhân s thông báo l i. ph i cung c p m t inode cho file và thu t toán ialloc áp ng òi h i trên.- + N u ó là l nh xoá file thì trư c ó h th ng ã th c hi n thao tác gi m s liên k t v i inode i 1 và vì v y có th s lư ng liên k t tr thành 0. Chú ý là trong thu t toán này có s d ng thu t toán ifree. N u danh sách ó y ho c không tìm th y ư c n a thì gán m t inode cho file.

♦ H th ng file NFS: NFS (Network File System) là m t h th ng file trên m ng h tr vi c truy c p d li u t xa gi ng như h th ng file CODA. h th ng Linux có th truy c p vào các phân vùng c a h i u hành Microsoft Window NT. các ưu i m c a h i u hành Window s không còn giá tr ví d như tên file ch t i a 13 ký t (k c m r ng). V i s h tr này. ♦ H th ng file NTFS: V i s h tr này.3 ch y trên các máy Amiga. Tuy nhiên. PROC hi n th n i dung c a chính nhân h th ng. Chúng ta s tr l i ngiên c u h th ng file này trong các ph n sau. d gây v h th ng. h th ng Linux có th truy c p d li u trên các ĩa CD.♦ H th ng file ADFS: ADFS vi t t t c a Acorn Disc Filing System là h th ng file chu n trên h i u hành RiscOS. Thông tin v m i m t ti n trình ang th c hi n trong h th ng ư c lưu trong m t thư m c mang tên ng v i ch s process ID c a ti n trình ó. ♦ H th ng file ISOFS: ây là h th ng file ư c s d ng cho các ĩa CD. Các file trong h th ng file PROC lưu tr các thông tin v tr ng thái hi n hành c a nhân. H th ng file PROC không chi m m t phân vùng nào c a h th ng và cũng không qu n lý các d li u lưu tr trên ĩa. i u hành OS/2. ♦ H th ng file QNX4: ây là h th ng file ư c s d ng trong h i u hành QNX 4. Ngư i dùng có th s d ng h th ng file PROC l y các thông tin v nhân cũng như s a i m t s giá tr c a nhân thông qua s a i n i dung c a các file trong h th ng file này. h th ng Linux có th truy c p ư c các phân vùng c a h i u hành MSDOS. Linux có th truy c p vào các phân vùng ĩa nh d ng theo h th ng file ADFS. H th ng thông d ng nh t cho các ĩa CD hi n nay là ISO 9660. vi c s a i tr c ti p như trên tương i nguy hi m. ♦ H th ng file AFFS: AFFS (The Amiga Fast File System) là m t h th ng file ph bi n c a h i u hành AmigaOS phiên b n 1. H th ng file này ư c s d ng trong h i u hành Minix và m t s h th ng Linux cũ. ♦ H th ng file MINIX: MINIX là h th ng file u tiên mà Linux h tr . ♦ H th ng file HPFS: HPFS là h th ng file ư c s d ng trong h Linux h tr h th ng file này m c ch c (read only). ♦ H th ng file CODA: CODA là m t h th ng file m ng cho phép ngư i dùng có th k t gán các h th ng file t xa và truy c p chúng như các h th ng file c c b (local). các máy ch y Linux có th chia s các phân vùng ĩa trên m ng s d ng như là các phân vùng c c b c a chính máy mình. ♦ H th ng file MSDOS: V i s h tr này. V i s h tr này. V i NFS. ♦ H th ng file EXT2: H th ng file EXT2 (The second extended filesystem) là h th ng ư c dùng ch y u trên các phiên b n c a h i u hành Linux. ♦ H th ng file DEVPTS: H th ng file cho Unix98 PTYs. 4 8 . ♦ H th ng file PROC: ây là m t h th ng file c bi t ư c Linux h tr . ♦ H th ng file EFS: ây là m t d ng h th ng file s d ng cho CDROM. Linux cũng có th s d ng ki u MSDOS truy c p các phân vùng c a Window 95/98 tuy nhiên khi ó. ♦ H th ng file HFS: ây là h th ng file ch y trên các máy Apple Macintosh.

H th ng file này có th ư c s d ng làm phân vùng g c c a h th ng Linux.. H th ng file này ư c s d ng trong các h i u hành Windows 95/98.. 4 9 . B ng cách h tr nhi u ki u h th ng file. h tr các file c bi t (device.) và. th c hi n ư c i u này. Linux có th truy c p và x lý các file c a nhi u h i u hành khác nhau. ♦ H th ng file VFAT: VFAT chính là h th ng file m r ng c a h th ng FAT.. h tr các liên k t (link).. ngoài kh năng h tr nhi u lo i thi t b . Nói tóm l i. h i u hành Linux có th chia s cũng như truy c p các file n m trên các phân vùng c a m t máy ch y các h i u hành k trên. Linux còn có kh năng h tr nhi u ki u h th ng file. SMB cũng là m t d ng h tr h th ng file m ng giúp h th ng có th chia s v i các h th ng s d ng chung giao th c SMB. H th ng file này có m t s ưu i m so v i MSDOS như là h tr tên file dài. h tr vi c phân quy n. ♦ H th ng file SMB: SMB (Server Mesage Block) là m t giao th c c a Windows dùng chia s file gi a các h i u hành Windows 95/98.♦ H th ng file ROMFS: ây là các h th ng file ch c (read only) ư c s d ng ch y u cho vi c kh i t o ĩa o (ramdisk) trong quá trình kh i ng ĩa cài t. t i ưu các thao tác truy c p vào thi t b . ♦ H th ng file UMSDOS: H th ng file UMSDOS (Unix-like MSDOS) là h th ng file ư c m r ng t h th ng file MSDOS theo nh hư ng Unix. b o v các file trên các h th ng khác nhau.. h th ng file c a Linux v n ph i m b o cung c p cho ngư i dùng m t giao di n nh t quán i v i các file. Linux s d ng m t h th ng file c bi t g i là h th ng file o VFS (Virtual File System). pipe .. V i s h tr SMB. M c dù có kh năng truy c p nhi u h th ng file khác nhau. Windows NT và OS/2 Lan Manager. Như v y.

M i khi có m t yêu c u truy c p file. Hình 3. VFS s d a vào các h th ng file th c tìm ki m file yêu c u trên các thi t b v t lý. V i m i file tìm ư c. H th ng file o VFS các thi t b lưu tr . VFS có trách nhi m cung c p cho chương trình ngư i dùng m t giao di n nh t quán v h th ng file thông qua các l nh g i h th ng (system call). nó th c hi n thao tác m file ó và cho tương ng file v i m t c u trúc d li u g i là i-node.1. ♦ Các thao tác v i file ang m .5. 3.3. VFS cung c p r t nhi u l nh g i thao tác v i h th ng file nhưng ch y u thu c vào các lo i sau: ♦ Các thao tác liên quan t i h th ng file. Liên k t tư ng trưng (l nh ln) Trong Linux có hai ki u liên k t ó là liên k t tư ng trưng (liên k t m m) và liên k t c ng. ♦ Các thao tác liên quan t i i-node. ♦ Các thao tác v i vùng m d li u. 5 0 .3 mô t m i quan h gi a VFS v i các h th ng file th c và Programatic file system interface Inode cache System call interface Directory cache Virtual File System Ext2 Minix Msdos Vfat Buffer cache Device driver Physical hardware Hình 3.H th ng file o VFS ư c thi t k cung c p m t giao di n th ng nh t v các file ư c lưu tr trên các thi t b .

và ư c s d ng thay th cho file ho c thư m c ư c tr t i..txt Khi ch y chương trình mc. 3. -d. M t s phiên b n không có tùy ch n này. m t file liên k t th c s tham chi u theo tên n m t file khác. ghi . --backup[=CONTROL] : t o liên k t quay tr l i cho m i file ích ang t n t i. Các tuỳ ch n c a l nh ln: -b. chúng cùng chia s m t inode và inode này ch a ng t t c các thông tin v file. --force : xóa b các file ích ang t n t i. H u h t các thao tác (như m . mu n t o liên k t n file /usr/doc/g77/DOC v i tên file liên k t là g77manual.1 Quy n truy nh p M i file và thư m c trong Linux u có m t ch s h u và m t nhóm s h u. --directory : t o liên k t c ng n các thư m c (tùy ch n này ch dành cho ngư i dùng có quy n qu n tr h th ng). --symbolic : t o các liên k t tư ng trưng.2 Quy n truy nh p thư m c và file 3. -F. -i. hãy s d ng l nh ln v i cú pháp như sau: ln [tùy-ch n] < ích> [tên-n i] L nh này s t o m t liên k t n thư m c/file ích v i tên file liên k t là tên-n i. interactive : v n t o liên k t dù file ích ã b xóa b . -f.txt..) ư c th c hi n trên các file liên k t. t o m t liên k t tư ng trưng. nhân h th ng s t ng "tham chi u" và th c hi n trên file ích c a liên k t. --help : hi n th trang tr giúp và thoát. -s. Ví d . cũng như m t t p h p các quy n truy nh p. Tuy nhiên. thì gõ l nh như sau: # ln -s /usr/doc/g77/DOC g77manual. trong ó. Thông tin v m t file có d ng sau ( ư c hi n ra theo l nh hi n danh sách file ls -l): 5 1 . -n. m t liên k t v i tên file liên k t gi ng như tên file ích s ư c t o ra trong thư m c hi n th i. Có th hi u ki u file này như là m t con tr ch d n t i m t file ho c m t thư m c. --verbose : hi n th tên các file trư c khi t o liên k t. --target-directory=<tên-thư-m c> : xác nh thư m c tên-thư-m c là thư m c có ch a các liên k t. c. -v. Không th t o m t liên k t c ng t i m t thư m c. "Liên k t tư ng trưng" là m t ki u file c bi t. các file liên k t có tên b t u b i d u " ". Theo cách nói k thu t."Liên k t c ng" là m t cách g i khác i v i m t file ang t n t i (không có s phân bi t gi a file g c và file liên k t). N u tên-n i không có. --no-dereference : m t file bình thư ng ư c xem là ích liên k t t m t thư m c. sau ó. file liên k t s b xóa b ch không ph i file ích c a nó.2. và khi v t sáng di chuy n n file liên k t thì tên file ư c liên k t n s hi n th bên dư i. có m t s các thao tác như xóa file. Cho phép thay i các quy n truy nh p và quy n s h u file và thư m c nh m cung c p truy nh p nhi u hơn hay ít hơn.

T p h p m t chu i có 10 ký t ã gi i thi u trên ây ư c chia ra làm 4 ph n: ki u file. M t b c thư g i cho m là m t d ng file văn b n bình thư ng. m t khi ã chuy n quy n s h u c a mình cho ngư i dùng khác thì ngư i ch cũ không ư c phép chuy n quy n s h u và quy n truy nh p ư c n a.com T ph p quy n truy nh p S liên k t Ngư i n file ch file (thư m c) Nhóm ch file Kích thư c file (byte) Ngày gi t o file Tên file Trong ó. Có m t s ki u file trong Linux. c a nhóm s h u và ngư i dùng khác. nó cũng s ư c xem như m i chương trình khác. dãy 10 ký t u tiên mô t ki u file và quy n truy nh p i v i t p tin ó. t c là nó có th ch y ư c. ngư i dùng t o m t file chính là ngư i ch (s h u) c a file ó và là ngư i có quy n s h u nó. nhóm s h u và ngư i dùng khác. Ví d . nhưng 5 2 . B ng dư i ây s li t kê các ki u file trong Linux: Ch cái bi u di n d b c l p s Ki u file Thư m c (directory) File ki u kh i (block-type special file) File ki u ký t (character-type special file) Liên k t tư ng trưng (symbolic link) File ư ng ng (pipe) Socket File bình thư ng (regular file) Chín ký t ti p theo trong chu i là quy n truy nh p ư c chia ra làm 3 nhóm tương ng v i quy n truy nh p c a ngư i s h u. T t nhiên. Ký t u tiên trong t p h p 10 ký t mô t ki u file và quy n truy nh p s cho bi t file thu c ki u nào (ch cái ó ư c g i là ch cái bi u di n). các quy n truy nh p n file c a ch s h u. d rwx r-x r-x ph i nh r ng Quy n c a Quy n c a Quy n c a Linux Ki u file: thư m c ngư i ch nhóm ch ngư i dùng khác xem m i th u là file. 10 ký t u tiên trong dòng ví d ngay trư c ây s ư c phân tích thành: hi u ư c chính xác quy n truy nh p có ý nghĩa như th nào i v i h th ng máy tính. tr m t i u: h th ng nh n bi t r ng m t ng d ng là m t chương trình kh thi. N u cài t m t ng d ng. Ngư i ch c a file có c quy n thay i quy n truy nh p hay quy n s h u i v i file ó.drwxr-xr-x 12 root root 4096 Oct 23 2000 LinuxVN. Theo m c nh.

r). N u ch có quy n ghi. Tuy nhiên. n u ó là m t chương trình kh thi. s a ch a ho c xóa b t kỳ thông tin nào trong ó. Có ba lo i quy n truy nh p chính i v i thư m c/file. i v i thư m c thì ch có ba lo i ký hi u c a các quy n truy nh p là: ---. Quy n ghi là quy n truy nh p ti p theo. ó là: c (read . s thêm ư c thông tin vào file. Ngư i s d ng v i quy n ghi khi truy nh p vào file có th thêm thông tin vào file. Cũng có trư ng h p m t chương trình ch có quy n th c hi n. ghi.quy n c cho phép xem n i dung. h có th sao chép file ó thành file c a h và s a ch a file b n sao. th c hi n Quy n c a nhóm ch : c. chúng ta nh n ư c ây là m t thư m c và quy n truy nh p nó ư c gi i thích như sau: d rwx r-x r-x Ki u file: thư m c Quy n c a ngư i ch : c. ghi (write w) và th c hi n (execute . có nghĩa là ngư i dùng có th ch y ng d ng. th c hi n (không ghi) Quy n ngư i dùng khác: c. th c hi n (không ghi) Gi i thích: S h n ch trư ng h p v quy n truy nh p thư m c ư c gi i thích theo các l p lu n như sau: 5 3 . vì th hoàn toàn có th có m t chương trình v i quy n c và quy n th c hi n. v i ví d ang ư c xem xét. vì n i dung c a thư m c là danh sách c a các file và các thư m c con có bên trong thư m c ó. N u có quy n ghi và quy n c i v i m t file. h th ng s c ch y chương trình (và t t nhiên là l i). B ng dư i ây gi i thi u cách ký hi u c a các quy n truy nh p: Quy n truy nh p --r-r-x rwrwx Ý nghĩa Không cho phép m t quy n truy nh p nào Ch ư c quy n c Quy n c và th c hi n (cho chương trình và shell script) Quy n c và ghi Cho phép t t c các quy n truy nh p (cho chương trình) Tuy nhiên.n u thông báo cho h th ng bi t ó là m t chương trình kh thi. quy n này cho phép ngư i dùng có th ch y ư c file. Quy n c m t thư m c là ư c xem n i dung c a thư m c ó và quy n th c hi n i v i m t thư m c là quy n tìm ư c file và thư m c con có trong thư m c.x). và quy n ghi cho phép thay i n i dung file. rx và rwx. nhưng l i không th xem ư c n i dung c a file. Như v y. Quy n c cho phép ngư i dùng có th xem n i dung c a file v i r t nhi u chương trình khác nhau. có th so n th o l i file ó . Quy n th c hi n c l p v i các quy n truy nh p khác. nhưng không có quy n ghi. Lo i quy n truy nh p th ba là quy n th c hi n. nhưng h không th xem ư c cách nó làm vi c hay sao chép nó. nhưng h s không th thay i.

lúc này. Khi ăng nh p. thư m c LinuxVN. Ho c gi s có quy n th c hi n . 5 4 .. --quiet : b qua h u h t các thông báo l i. Thay i quy n s h u file v i l nh chown thay i quy n s h u i v i m t file. Thay i quy n s h u nhóm v i l nh chgrp Các file (và ngư i dùng) còn thu c vào các nhóm.. Khi chuy n quy n s h u file cho m t ngư i khác. gi s ch có quy n c trên thư m c. hãy s d ng l nh chown v i cú pháp như sau: chown [tïy-chän] [chñ][. --help : ưa ra trang tr giúp và thoát.nhãm] <file . --changes : hi n th dòng thông báo ch v i các file mà l nh làm thay i s h u (s thông báo hi n ra có th ít hơn trư ng h p -v.2.nhưng l i không có quy n c i v i m t thư m c.2. n u dùng l nh ls thì thông tin v thư m c LinuxVN. N u theo sau tên ngư i ch là d u ".com v i ngư i s h u thư m c bây gi là ngư i dùng lan. ây là phương th c truy nh p file thu n ti n cho nhi u ngư i dùng nhưng không ph i t t c ngư i dùng trên h th ng. -R. ngư i ch cũ m t quy n s h u file ó. v y thì làm th nào bi t ư c trong thư m c có nh ng file nào." và nhóm mà không có tên ngư i ch thì ch có quy n s h u nhóm c a file thay i. --recursive : th c hi n i quy n s h u i v i thư m c và file theo quy. 3.com s có d ng: drwxr-xr-x 12 lan root 4096 Oct 23 2000 LinuxVN. N u ch có tham s v ch . hãy gõ l nh: chown lan LinuxVN.> L nh này cho phép thay ch s h u file. -f. Các l nh cơ b n a. ngư i dùng lan h u thư m c trên. Cho phép m t ngư i dùng thu c nhi u nhóm khác nhau." và tên c a m t nhóm thì nhóm ó s nhóm s h u file.quy n này s cho phép tìm ư c file có trên thư m c . khi ó s xem ư c có nh ng file hay thư m c nào trong thư m c nhưng l i không th xem c th n i dung c a m t file hay thư m c có trên thư m c ó vì không tìm ư c nó. Các tùy ch n c a l nh chown: -c.Hãy hình dung. thì ngư i dùng ch s có quy n s h u file và nhóm s h u không thay i.com có thông tin v các quy n truy nh p như sau: drwxr-xr-x 12 thu root 4096 Oct 23 2000 LinuxVN. Ví d .com Ngư là ch s # Khi i s h u hi n t i thư m c LinuxVN. --verbose : hi n th dòng thông báo v i m i file liên quan mà chown tác ng t i (có ho c không thay i s h u). m c nh s là thành viên c a m t nhóm ư c thi t l p khi siêu ngư i dùng root t o tài kho n ngư i dùng. N u ch có d u ". nhưng m i l n ăng nh p ch là thành viên c a m t nhóm. -verbosr). b. -v. --silent.com là ngư i dùng thu.com ó. l nh chown có tác d ng gi ng như l nh chgrp (l nh chgrp ư c trình bày dư i ây).

mod]. Thay i quy n truy c p file v i l nh chmod Cú pháp l nh chmod có ba d ng: chmod [tùy-ch n] <mod [. -verbosr).. --changes -f.. Gi i thích v hai cách xác l p quy n truy nh p file trong l nh chmod như sau: xác l p tuy t i (dùng h th ng mã s vi t theo h cơ s 8 bi u di n cho các quy n truy nh p) và xác l p tương i (dùng các ch cái bi u di n quy n truy nh p). --quiet : b qua h u h t các thông báo l i.> L nh này cho phép thay thu c tính nhóm s h u c a file theo tên nhóm ư c ch ra tr c ti p theo tham s nhóm ho c gián ti p qua thu c tính nhóm c a file có tên là nhómR.> L nh chmod cho phép xác l p quy n truy nh p theo ki u (mode) trên file. -R. Cách xác l p tương i 5 5 .> <file. c.> chmod [tùy-ch n] <mod-h -8> <file. --silent. --quiet -v. --help : hi n th trang tr giúp và thoát Tham s --reference=nhómR cho th y cách gián ti p thay nhóm ch c a file theo nhóm ch c a m t file khác (tên là nhómR) là cách th c ư c ưa chu ng hơn. Các tùy ch n c a l nh chmod ư c li t kê như dư i ây và có ý nghĩa tương t các tuỳ ch n tương ng c a các l nh chown... hãy s d ng l nh chgrp v i cú pháp như sau: chgrp [tùy-ch n] {nhóm|--reference=nhómR} <file.. D ng u tiên là d ng xác l p tương i. d ng th hai là d ng xác l p tuy t i và d ng cu i cùng là d ng gián ti p ch d n theo quy n truy nh p c a file nhómR. Tham s này là xung kh c v i tham s nhóm c a l nh. --changes : hi n th dòng thông báo ch v i các file mà l nh làm thay i s h u (s thông báo hi n ra có th ít hơn trư ng h p -v... -f. --verbose : hi n th dòng thông báo v i m i file liên quan mà chgrp tác ng t i (có ho c không thay i s h u).thay i quy n s h u nhóm i v i m t ho c nhi u file. --verbose -R.. chgrp: -c..> chmod [tùy-ch n] --reference=nhómR <file. -v. Các tùy ch n c a l nh là (m t s tương t như l nh chown): -c. --recursive --help và tham s --reference=RFILE cũng ý nghĩa gián ti p như trong l nh chgrp. --silent. --recursive : th c hi n i quy n s h u i v i thư m c và file theo quy..

M i c m 3 bít như v y cho m t ch s h 8 (nh n giá tr t 0 n 7) và thu c tính quy n truy nh p tương ng v i 3 ch s h 8.2. Ph n 3. trong ó t ng c m 3 v trí theo th t tương ng v i: ch s h u. ngư c l i thì quy n ó b tháo b . 101 cho ngư i dùng khác. và r. Như v y thu c tính quy n truy nh p c a m t file có th bi u di n thành 9 bít nh phân trong ó bít có giá tr 1 thì quy n ó ư c xác nh. nhóm s h u và ngư i dùng khác. hãy ch n o cho ngư i dùng khác.1. Ví d . h 8 áp d ng cách tính như sau: d xác l p 3 ch s 5 6 . Ba h p sau ây s gi i thích các ch cái bi u di n mod theo cách xác l p tương i. N u quy t nh g b quy n c và th c hi n trên file test cho nh ng ngư i không cùng nhóm. nhóm s h u tương ng v i 3 bít gi a. L nh chmod s là: chmod o-rx test Cách xác l p tuy t i i v i ngư i dùng hi u sơ b v bi u di n s trong h cơ s 8 thì cách xác l p tuy t i l i ư c ưa chu ng hơn. hãy ch n g cho nhóm s h u. Ví d l nh: chmod 753 memo1 t thu c tính quy n truy nh p i v i file memo1 là rwxr-xr-x.x cho quy n c và th c hi n. c p 3 s h 8 là 755 tương ng v i dòng 9 bít 111101101 v i 111 cho ch s h u. g b quy n truy nh p. Như v y. 101 cho nhóm s h u. + cho thêm quy n truy nh p.Cách xác l p tương i là d nh theo ý nghĩa c a n i dung các mod và ch nh ng thay i th c s m i ư c bi u di n trong l nh. n u mu n thêm quy n ghi i v i file test cho t t c ngư i dùng trong nhóm s h u. Quy n truy c p u=user (ngư i s h u) g=group (nhóm s h u) o=other (ngư i khác) a=all (t t c ngư i dùng) Thao tác thay + (thêm quy n) .(g b quy n) = (xác nh n quy n) i Ki u truy c p r=read (quy n c) w=write (quy n ghi) x=execute (quy n th c hi n) Có th k t h p các m c t h p th nh t và h p th ba v i m t m c t h p th hai t o ra m t mod. ngư i dùng khác tương ng v i 3 bít cu i. Ví d . và w cho quy n ghi. ch s h u tương ng v i 3 bít u tiên. Lúc ó l nh chmod s có d ng sau: chmod g+w test Cách xác l p tương i trong l nh chmod g n gi ng như m t menu có nhi u m c ch n khác nhau. cho bi t bi u di n quy n truy nh p file thông qua dãy g m 9 v trí dư i d ng rwxrwxrwx. cho phép k t h p có ư c s l a ch n theo yêu c u.

trong ó có m t nhóm ư c g i là nhóm kh i ng.3. L nh newgr cho phép ngư i dùng chuy n sang nhóm ngư i dùng khác ã g n v i mình v i cú pháp: newgrp [nhóm] trong ó nhóm là m t tên nhóm ngư i dùng t n t i trong h th ng. Sau ó m t s l nh thao tác v i thư m c cơ b n nh t ư c trình bày. Linux t ch c h th ng file theo cách s d ng các thư m c.1. i u này ư c m b o khi th c hi n l nh adduser ho c usersdd.Quy n Ch c Ch ghi Ch th c hi n Không có quy n nào Ch s h 8 4 2 1 0 Ch Ch Quy n c và ghi c và th c hi n Ch s h 8 6 5 3 7 Ch ghi và th c hi n c. Khi ăng nh p. m t ngư i dùng thu c vào ch m t nhóm. N u mu n s d ng quy n s h u theo các nhóm khác i v i nh ng file thì ngư i dùng ph i chuy n i thành thành viên c a m t nhóm nh ng nhóm ã ư c g n v i ngư i dùng. ch ng h n dùng l nh: # newgrp hot2 thì Linux s ưa ra m t khuy n cáo thân thi n như sau: newgrp: Sorry 3. ăng nh p vào m t nhóm ngư i dùng m i v i l nh newgrp Linux cho phép m t ngư i dùng có th là thành viên c a m t ho c nhi u nhóm ngư i dùng khác nhau. 3. Khi m t ngư i dùng ăng nh p. ghi và th c hi n d. Khi mong mu n s d ng m t s các chương trình thu c quy n s h u c a nhóm installer. M c này b t u b ng vi c gi i thi u m t s thư m c chính và tác d ng c a chúng trong h th ng Linux. Tuy nhiên.).3 Thao tác v i thư m c Như ã ư c gi i thi u (m c 3.1. Ví d .1 M t s thư m c c bi t ng t t c các thư m c con có trong h th ng. m t ngư i dùng là thành viên c a hai nhóm user và installer. * Thư m c g c / ây là thư m c g c ch a 5 7 . h th ng ng m nh ngư i dùng ó là thành viên c a nhóm kh i ng. và có quy n truy nh p i v i nh ng file thu c quy n s h u c a nhóm kh i ng ó. v i user là nhóm kh i ng. t i m t th i i m. ngư i dùng ó có tư cách là thành viên c a nhóm user. ngư i dùng c n gõ l nh sau: # newgrp installer N u ngư i dùng nói trên c chuy n vào m t nhóm mà ngư i dùng ó không là thành viên.

Không có chúng.. Cũng không th nh p ư c thông tin (nh ng thông tin do trình i u khi n thi t b bàn phím c và chuy n t i h th ng).* Thư m c /root Thư m c /root có th ư c coi là "thư m c riêng" c a siêu ngư i dùng.v. * Thư m c /etc Qu n tr h th ng trong Linux không ph i là ơn gi n. Như v y. Nhưng theo th i gian. ch ng h n như vi c qu n lý tài kho n ngư i dùng. ngày càng có nhi u hơn các file kh thi có trong Linux. c u hình ph n c ng. Khi m t chương trình ư c biên d ch. và cũng không th s d ng ĩa m m c a ( ư c qu n lý b i trình i u khi n ĩa m m). có thêm các thư m c như /sbin. chương trình ng d ng trong Linux là m t file nh phân kh thi. /mnt/hda1: vùng u tiên c a ĩa c ng th nh t (hda). Ban u. Thông thư ng các thư m c con c a /mnt chính là g c c a các h th ng file ư c k t n i: /mnt/floppy: ĩa m m. ĩa m m. v. b m in cho vi c in n. thư m c /etc ã ư c thi t k lưu tr t t c các thông tin hay các file c u hình h th ng. * Thư m c /lib Linux có m t trung tâm lưu tr các thư vi n hàm và th t c. ví d như khi xây d ng (build) m t gói RPM t các file RPM ngu n. gi m b t ph c t p. Thư m c này ư c s d ng lưu tr các file t m th i. ó chính là thư m c /bin. /mnt/hdb3: vùng th ba c a ĩa c ng th 2 (hdb) . v n b o m t. nó s có d ng là file nh phân. * Thư m c /bin Trong Linux. chương trình ư c coi là kh thi n u nó có th th c hi n ư c... 5 8 .. thư m c /bin (bin là vi t t t c a t binary) là nơi lưu tr các file nh phân kh thi.. các file nh phân quan tr ng (nh ng file ư c s d ng n trư c khi Linux có th g n k t n phân vùng /user). ó là thư m c /lib. Nó cũng ư c s d ng cho các vùng tr ng t m th i khi th c hi n các thao tác quan tr ng. s không th có ư c b t kỳ thông tin nào trên màn hình c a (các thông tin có ư c do trình i u khi n thi t b hi n th ưa ra). * Thư m c /lost+found M t file ư c khôi ph c sau khi có b t kỳ m t v n h th ng u ư c lưu vào thư m c này. nh ng nhà phát tri n Linux ã quy t nh ph i t ch c m t thư m c "binaries" lưu tr các chương trình kh thi có trên h th ng. * Thư m c /dev M t ph n không th thi u trong b t kỳ máy tính nào ó là các trình i u khi n thi t b .) vào h th ng file chính nh l nh mount. T t c các trình i u khi n thi t b u ư c lưu tr trong thư m c /dev. ho c g p m t l i v ghi ĩa trên * Thư m c /mnt Thư m c /mnt là nơi k t n i các thi t b (ví d ĩa c ng. các file ăng nh p quan tr ng. do ó. Chính vì l ó. nhân Linux và nh kh i ng. /usr/bin ư c s d ng lưu tr các file ó. hay vùng lưu t m cho vi c nh n và g i email. trình i u khi n thi t b .

Cách th c như v y b o m s an toàn i v i file c n so n th o.3.* Thư m c /tmp Thư m c /tmp ư c r t nhi u chương trình trong Linux s d ng như m t nơi lưu tr các file t m th i. v. i u hành và th c t ây là m t h * Thư m c /misc và thư m c /opt Cho phép lưu tr m i i tư ng vào hai thư m c này. file t m th i s ư c ghi è lên file g c. Vi c so n th o th c hi n tr c ti p trên file t m th i này và sau khi so n th o xong. n u ang so n th o m t file. * Thư m c /var Thư m c /var ư c s d ng lưu tr các file ch a các thông tin luôn luôn thay i. các khóa quá trình.map (file ánh x n các driver n p các h th ng file khác). vùng lưu t m th i cho vi c nh n và g i thư (mail). * Thư m c /home Thư m c này ch a các thư m c cá nhân c a ngư i dùng: m i ngư i dùng tương ng v i m t thư m c con ây. Ví d . bao g m b m in. b i vì h u h t các file nh phân c n cho Linux u ư c lưu tr ây.*. trình i u khi n cho các thi t b RAID (m t thi t b g m m t m ng các ĩa c ng tăng t c và an toàn khi ghi d li u).).v. nh (image) c a h th ng file dùng cho initrd (ramdisk). * Thư m c /sbin Thư m c lưu gi các file h th ng thư ng t 3. * Thư m c /boot Là thư m c ch a nhân c a h th ng (Linux-*. Tuy nhiên. trong ó áng chú ý là thư m c con /usr/src bao g m các thư m c con ch a các chương trình ngu n c a nhân Linux. tên ngư i dùng ư c l y làm tên c a thư m c con.. Thư m c này cho phép kh i ng và n p l i b t kỳ trình i u khi n nào ư c yêu c u c các h th ng file khác. ngày nay th t khó xác nh trong thư m c này có nh ng th gì. * Thư m c /proc ây là thư m c dành cho nhân (kernel) c a h th ng file c l p do nhân kh i t o. System. * Thư m c /usr Thông thư ng thì thư m c /usr là trung tâm lưu tr t t c các l nh hư ng n ngư i dùng (user-related commands). chương trình s t o ra m t file là b n sao t m th i (b n nháp) c a file ó và lưu vào trong thư m c /tmp. .2 Các l nh cơ b n v thư m c * Xác nh thư m c hi n th i v i l nh pwd Cú pháp l nh: 5 9 ng ch y. các b n sao lưu boot record c a các phân vùng ĩa khác.

L nh này ưa ra danh sách các file liên quan n tham s file trong l nh. total 108 drwxr-xr-x 12 thu root 4096 Oct 23 2000 LinuxVN. Trư ng h p ph bi n tham s file là m t thư m c. -m : li t kê các file ư c ngăn cách nhau b i d u ". -t : s p x p các file và thư m c trong danh sách theo th t v th i gian ư c s a i g n ây nh t. bao g m c file n. -x : ưa ra danh sách các file và thư m c theo d ng c t (hai thư m c g n nhau ư c x p trên hai dòng u c a hai c t k nhau). -C : ưa ra danh sách các file và thư m c theo d ng c t (hai thư m c g n nhau ư c x p vào m t c t). * = chương trình kh thi). Cú pháp l nh: ls [tùy-ch n] [file]. -1 : hi n th m i file ho c thư m c trên m t dòng... n u không có tham s file. Ví d .pwd L nh này cho bi t hi n ngư i dùng ang trong thư m c nào và hi n ra theo d ng m t ư ng d n tuy t i. Các tùy ch n c a l nh: -a : li t kê t t c các file. tham s file xác nh nhóm (khi s d ng các mô t nhóm *.". -l : ưa ra thông tin y nh t v các file và thư m c. -r : s p x p danh sách hi n th theo th t ngư c l i. l nh # ls -l s hi n th danh sách y nh t v các file và thư m c có trong thư m c hi n th i. -R : li t kê l n lư t các thư m c và n i dung c a các thư m c. -F : xác nh ki u file (/ = thư m c. Ví d . -s : ch ra kích thư c c a file. ? và c p [ và ]). m c nh danh sách các file có trong thư m c hi n th i s ư c hi n th .com drwxr-xr-x 2 root root 4096 Oct 31 2000 bin drwxr-xr-x 2 root root 4096 Dec 11 16:54 boot drwxr-xr-x 7 root root 36864 Dec 11 16:54 dev drwxr-xr-x 43 root root 4096 Dec 11 16:55 etc 6 0 . gõ l nh pwd t i d u nh c l nh sau khi ngư i dùng lan v a ăng nh p thì màn hình hi n th như sau: # pwd /home/lan # * Xem thông tin v thư m c v i l nh ls S d ng l nh ls và m t s các tùy ch n c a nó là có th bi t ư c m i thông tin v m t thư m c. tuy nhiên trong m t s trư ng h p khác. tính theo kh i (1 kh i = 1204 byte).

conf * L nh t o thư m c mkdir L nh mkdir t o m t thư m c v i cú pháp: mkdir [tùy-ch n] <thư-m c> L nh này cho phép t o m t thư m c m i n u thư m c ó chưa th c s t n t i.conf initlog.drwxr-xr-x 5 root root 4096 Dec 11 16:57 home drwxr-xr-x 4 root root 4096 Oct 31 2000 lib drwxr-xr-x 2 root root 16384 Oct 31 2000 lost+found drwxr-xr-x 2 root root 0 Dec 11 16:54 misc drwxr-xr-x 5 root root 4096 Oct 31 2000 mnt drwxr-xr-x 2 root root 4096 Aug 23 12:03 opt dr-xr-xr-x 56 root root 0 Dec 11 11:54 proc drwxr-x--.2.conf services smb.conf inittab shadowshells syslog. drwxr-xr-x 22 root root 4096 Oct 31 2000 var Ki u file và S liên k t Ngư i quy n truy n file ch file nh p (thư m c) Nhóm ch file Kích thư c file (byte) Ngày gi t o file Tên file ý nghĩa c a m i trư ng trên ây ã ư c gi i thích trong m c 3. Các thông tin này ã ư c gi i thi u trư c ây. N u thư m c ã t n t i. Các tùy ch n: 6 1 . Ch ng h n. c n c t tên và v trí c a nó trên h th ng file (v trí m c nh là thư m c hi n th i). M i dòng ti p theo trình bày thông tin v m i file hay thư m c con.12 root root 4096 Dec 11 16:55 root drwxr-xr-x 3 root root 4096 Oct 31 2000 sbin drwxr-xr-x 3 root root 4096 Oct 31 2000 tftpboot drwxrwxrwx 8 root root 4096 Dec 11 16:58 tmp drwxr-xr-x 22 root root 4096 Oct 31 2000 usr drwxr-xr-x 22 root root 4096 Oct 31 2000 var Dòng u tiên "total 108" cho bi t t ng s kh i (1024 byte) trên ĩa lưu tr các file trong danh sách (14*4+36+16=108). t o m t thư m c. Khi gõ l nh: # ls [is]* cho danh sách các file và thư m c con có tên b t u b ng ho c ch cái i ho c ch cái s có trong thư m c hi n th i: info-dir shadow sysctl. h th ng s thông báo cho bi t.1.

--help : hi n th trang tr giúp và thoát. rmdir /a (v i i u ki n các thư m c là r ng). N u tên m i trùng v i tên m t thư m c ang t n t i thì n i dung c a thư m c ư c i tên s ghi è lên n i dung c a thư m c trùng tên. Ví d . --parents : xóa b m t thư m c. dòng l nh rmdir -p /a/b/c s tương ương v i ba dòng l nh rmdir /a/b/c. hãy gõ l nh sau: # mkdir /home/test * L nh xóa b thư m c rmdir Như ã bi t. Ví d .-m. Cú pháp l nh: rmdir [tùy-ch n[ <thư-m c> Có th xóa b b t kỳ thư m c nào n u có quy n ó. --parents : t o các thư m c c n thi t mà không thông báo l i khi nó ã t n t i. N u s d ng l nh mv i tên m t thư m c v i m t cái tên ã ư c t cho m t file thì l nh s g p l i. Lưu ý r ng. Ví d . Ví d : # rmdir -p /test/test1/test2 rmdir: /: No such file or directory # Dòng l nh trên s l n lư t xóa ba thư m c test2. --mode=Mod : thi t l p quy n truy nh p Mod như trong l nh chmod nhưng không cho quy n rwxrwxrwx. sau ó l n lư t xóa b ti p các thư m c có trên ư ng d n ch a thư m c v a xóa. 6 2 . vì th hãy suy nghĩ c n th n trư c khi quy t nh xóa m t thư m c. -p. --verbose : hi n th các thông báo cho m i thư m c ư c t o. test1. l nh mkdir t o ra m t thư m c m i. * L nh i tên thư m c mv Cú pháp l nh: mv <tên-cũ> <tên-m i> L nh này cho phép i tên m t thư m c t tên-cũ thành tên-m i. thư m c ch b xóa khi nó "r ng". n u mu n t o thư m c test trong thư m c home. test và hi n th thông báo trên màn hình k t qu c a l nh. và v i ng u thì l nh rmdir ư c dùng xóa b m t thư m c. Các tùy ch n c a l nh: --ignore-fail-on-non-empty : b qua các l i n u xóa m t thư m c không r ng. l nh # mv LinuxVN. t c là không t n t i file hay thư m c con nào trong ó. rmdir /a/b. --help : ưa ra trang tr giúp và thoát. -p.com thành LinuxVN. --verbose : ưa ra thông báo khi xóa m t thư m c.com LinuxVN s i tên thư m c LinuxVN. Không có cách gì khôi ph c l i các thư m c ã b xóa.

4. fd1... 3. file th c hi n ư c b t u b i d u (*) và thư ng có màu xanh l c. fd0... File th c hi n lưu tr dư i d ng mã máy mà ta khó có th tìm hi u ư c ý nghĩa c a nó. sau ây là các cách hay ư c dùng. Không gi ng m t s h i u hành khác (như MS-DOS ch ng h n).. file bao hàm thư ng có màu tr ng và b t u b ng d u ngã (~) ho c d u chia (/). /home. hda2.. /dev .. dùng như là nh danh ch ra thi t b c n thao tác. có r t nhi u file khác nhau trong Linux. 3..thi t b c ng theo chu n IDE.thi t b ĩa m m). /usr. Theo quy ư c. Trong mc. s a i theo ý mình. (floppy disk. . ánh s ĩa v t lý. Khi dùng trình ng d ng mc (Midnight Commander. ánh s logic). File liên k t (linked file): là nh ng file ch a tham chi u n các file khác trong h th ng t p tin c a Linux.. /bin. Thư m c hay còn g i là file bao hàm (directory): là file bao hàm các file khác và có c u t o hoàn toàn tương t như file thông thư ng khác nên có th g i là file.3. Các l nh làm vi c v i file 3. Các l nh t o file Trong Linux có r t nhi u cách t o file. a. File ngư i dùng (user data file): là các file t o ra do ho t ng c a ngư i dùng khi kích ho t các chương trình ng d ng tương ng. . file thi t b có màu tím và b t u b ng d u c ng (+). Hơn n a. . nhưng t n t i m t s công c "hi u" ư c các file ó. hdb2.4. chương 8).1 Các ki u file có trong Linux M c 3. 6 3 . ã trình bày sơ lư c v ki u c a các file. các file cơ s d li u hay các file b ng tính.1. Ví d : /. 1. File th c hi n (executable file): là các file ch a mã l nh hay ch th cho máy tính th c hi n.. Tham chi u này cho phép ngư i dùng tìm nhanh t i file thay vì t i v trí nguyên th y c a nó. Ví d như các file thu n văn b n. hdb1..4. hda1.2. File thi t b (device file): là file mô t thi t b .thi t b truy n thông n i ti p).2. b. th i gian ki n t o (created time) và th i gian s a i (modified time). Trong mc.thi t b truy n thông). tài kho n c a ngư i dùng. 2. nhưng bao gi cũng t n t i m t s ki u file c n thi t cho h i u hành và ngư i dùng. thư ng ư c c t trong các t p d ng văn b n ngư i dùng có th can thi p. ttyS (teletype serial .. ngư i ta có th g n vào ó các thông tin ph tr làm cho file này có tính năng tr i hơn so v i tính năng nguyên th y c a nó.. Như ã ư c gi i thi u. file thi t b ư c lưu tr trong thư m c /dev. thông tin thi t b .. dư i ây gi i thi u l i m t s các ki u file cơ b n. File h th ng (system data file): là các file lưu tr thông tin c a h th ng như: c u hình cho kh i ng. Các file thi t b hay g p trong thư m c này là tty (teletype . (hardisk . Linux qu n lý th i gian c a t p tin qua các thông s th i gian truy nh p (accesed time). Ta th y lo i file này gi ng như khái ni m shortcut trong MS-Windows98.. /usr/man.

. g i k t qu c a m t l nh vào m t file. Cú pháp l nh: touch <file> Th c ch t l nh này có tác d ng dùng c p nh t th i gian truy nh p và s a ch a l n cu i c a m t file..) r i k t xu t ra file ho c các ngu n khác (màn hình . Vì lý do này. các file ư c t o b ng l nh touch u ư c s p x p theo th i gian s a i. hay xem n i dung c a m t file . l nh # ls -l /bin >> /home/thu/lenhls ưa các dòng danh sách file trong thư m c /bin vào cu i n i dung c a file /home/thu/lenhls. n i dung file cũ s b th ch b i k t qu c a l nh. Ví d . ví d n u mu n s a m t l i chính t trên m t dòng. # cat > /home/vd/newfile This is a example of cat command # 6 4 .. Chúng ta có th s d ng l nh này l y thông tin t u vào (bàn phím.). N u s d ng l nh touch i v i m t file chưa t n t i. Ph n này trình bày tác d ng c a l nh cat i v i vi c t o file. Như c i m c a cách t o file này là nó không cho phép s a l i. So n th o n i dung c a m t file b ng l nh cat t c là ã i hư ng u ra c a l nh t màn hình vào m t file. chương trình s t o ra file ó..* T o file v i l nh touch L nh touch có nhi u ch c năng... trong ó m t ch c năng là giúp t o file m i trên h th ng: touch r t h u ích cho vi c t ch c m t t p h p các file m i. l nh này cho phép l y thông tin u vào t bàn phím r i xu t ra màn hình. Ví d . Ví d . t o file newfile trong thư m c /home/vd b ng l nh cat. dùng l nh touch t o file newfile: # touch newfile * T o file b ng cách i hư ng u ra c a l nh (>) Cách này r t h u ích n u mu n lưu k t qu c a m t l nh ã th c hi n. hãy s d ng d u ">>". # ls -l /bin >/home/thu/lenhls N u mu n b sung k t qu vào cu i file thay vì thay th n i dung file. ưa k t qu c a l nh ls -l /bin vào file /home/thu/lenhls b ng cách gõ: # ls -l /bin > /home/thu/lenhls Linux t ng t o n u file lenhls chưa có. * T o file v i l nh cat L nh cat tuy ơn gi n nhưng r t h u d ng trong Linux. S d ng b t kỳ trình so n th o nào so n th o file m i. trong trư ng h p ngư c l i. Cú pháp l nh: cat > <file> Theo ng m nh. dùng d u ">" theo nghĩa chuy n hư ng l i ra chu n. Ví d . ch có cách là xóa n v trí c a l i và gõ l i n i dung v a b xóa. Ngư i dùng gõ n i dung c a file ngay t i d u nh c màn hình và gõ CTRL+d k t thúc vi c so n th o.

l nh # cp /home/ftp/vd /home/test/vd1 N u v trí ích.4..ích> cp [tùy-ch n] --target-directory=<thư-m c> <file-ngu n>. -b.ích ho c sao chép t nhi u file-ngu n vào m t thư m c ích (tham s <file.. --link : ch t o liên k t gi a file. --preserve : duy trì các thu c tính c a file-ngu n sang file. -p. -d. --no-dereference : duy trì các liên k t. -v. Có th s d ng luôn l nh cat xem n i dung c a file v a so n th o: # cat /home/vd/newfile This is a example of cat command # 3. --archive : gi ng như -dpR (t h p ba tham s -d. quy thư m c. --suffix=<h u-t > : b qua các h u t thông thư ng (ho c ư c ch ra). --update : ch sao chép khi file ngu n m i hơn file ích ho c khi file ích chưa có. <file. -s. -R. --backup[=CONTROL] : t o file lưu cho m i file ích n u như nó ang t n t i.. --verbose : ưa ra thông báo v quá trình sao chép. Ví d . Trong trư ng h p ch ưa ra v trí file ích ư c t trong thư m c nào thì tên c a file ngu n s là tên c a file ích. -S. L nh này cho phép sao file-ngu n thành file.Sau khi so n th o xong. # cp /home/ftp/vd /home/test/ 6 5 .ích t file-ngu n mà không sao chép. mô t y tên file ích thì n i dung file ngu n s ư c sao chép sang file ích. -r : cho phép sao chép m t cách -R : cho phép sao chép m t cách quy file thông thư ng. D ng th hai là m t cách vi t khác i th t hai tham s v trí.3 Các l nh thao tác trên file * Sao chép file v i l nh cp L nh cp có hai d ng như sau: cp [tùy-ch n] <file-ngu n> . n u không gõ Enter thì ph i gõ CTRL+d hai l n. --help : hi n th trang tr giúp và thoát. -f. gõ Enter và CTRL+d tr v d u nh c l nh. -i.ích> hay <thư-m c>).. như dư i ây). --force : ghi è file ích ang t n t i mà không nh c nh . -l.ích. -p. Các tùy ch n: -a. -u. tuy nhiên file ích có th i gian t o l p là th i i m th c hi n l nh nên các thu c tính th i gian s khác. --interactive : có thông báo nh c nh trư c khi ghi è. --symbolic-link : t o liên k t tư ng trưng thay cho vi c sao chép các file. File ích ư c t o ra có cùng kích thư c và các quy n truy nh p như file ngu n.

Chúng ta chú ý m t gi i pháp là m i khi s d ng m t l nh nào ó.: omitting directory Ví d v vi c l nh cp cho phép sao nhi u file cùng m t lúc vào m t thư m c. # cp . khi gõ l nh có th s d ng kí hi u mô t nhóm xác nh m t nhóm file làm cho tăng hi u l c c a các l nh ó. vì th hãy c n tr ng khi s d ng l nh này. Trong trư ng h p file newfile ã t n t i.1 root ftp 12 Nov 14 11:00 vd1 Lưu ý: i v i nhi u l nh làm vi c v i file. n i dung c a file vd s ghi è lên n i dung c a file newfile. N u s d ng l nh này sao m t thư m c. Ví d .2. newdir cp: . nên th nghi m cách th c hi u qu này. Chính vì lí do nói trên. # cp vd vd1 newdir # pwd /newdir # ls -l total 8 -rw-r--r-. tên file ích s là vd nghĩa là t o m t file m i /home/test/vd.h" sang thư m c con bak. Ví d : # mv vd newfile L nh này s i tên file vd thành newfile.1 root ftp 15 Nov 14 11:00 vd -rw-r--r-. l nh: # cp * bak th c hi n vi c sao chép m i file có trong thư m c hi n th i sang thư m c con c a nó có tên là bak. Dùng l nh # cp /usr/src/linux-2. Do nh ng tình hu ng như th là quá phong phú cho nên không th gi i thi u h t trong tài li u. Cú pháp l nh: 6 6 . * i tên file v i l nh mv Cú pháp l nh i tên file: mv <tên-cũ> <tên-m i> L nh này cho phép i tên file t tên cũ thành tên m i. dù trong nhi u l nh tuy không nói n vi c s d ng kí hi u mô t nhóm file nhưng chúng ta có th áp d ng chúng n u i u ó không trái v i suy lu n thông thư ng. s có m t thông báo ư c ưa ra cho bi t ngu n là m t thư m c và vì v y không th dùng l nh cp sao chép.h bak cho phép sao chép m i file v i tên có hai kí hi u cu i cùng là ".Trong ví d này.14/include/linux/*. * Xóa file v i l nh rm L nh rm là l nh r t "nguy hi m" vì trong Linux không có l nh khôi ph c l i nh ng gì ã xóa.

1.9.3.3.2 Libnss_hesiod-1.2 ld.so.so. -i.o libnss_dns-2.2 Libnss_files-2.1.so libnss_dns. Libnss_dns-2.1 ld-Linux.so.so libBrokenLocale.2 ld. -R. Ví d . --interactive : nh c nh trư c khi xóa b m t file.1 Libnss_dns.so..9..1.5 libBrokenLocale-2.1.o và sau ó dùng l nh ls xem l i danh sách file: # ls ld-Linux.1.1 libnss_files.so Libnss_dns.txt telex.1 Libnss_files.so ld.h xóa m i file v i tên có hai kí hi u cu i cùng là ".9. k c thư m c không r ng.so telex.2 libnss_hesiod-1.9.5 ld-Linux.1 libNoVersion-2.so telex. --force : b qua các file (xác nh qua tham s file) không t n t i mà không c n nh c nh .so.3.so libnss_files.1.3.1.so. dùng l nh ls xem danh sách các file trong thư m c hi n th i: # ls ld-Linux.so.so Libnss_files.so. 6 7 .3. --help : hi n th trang tr giúp và thoát.o quy.1 libNoVersion-2.so.1. L nh rm cho phép xóa nhi u file cùng m t lúc b ng cách ch ra tên c a các file c n xóa trong dòng l nh (ho c dùng kí ki u mô t nhóm). -f.3. L nh rm cho phép xóa b m t file ho c nhi u file.so ld.so.1.so.5 ld-Linux.3.1 libnss_dns.1.so.txt sau ây: # rm vd2. Các tùy ch n: -d.so.so libBrokenLocale.rm [tùy-ch n] <file> .txt S d ng l nh xóa file vd2. --directory : lo i b liên k t c a thư m c.so vd2.1.3.3.1 ld-Linux.h" trong thư m c con bak.so.1.so.5 libBrokenLocale-2.so.so.so Dùng l nh # rm bak/*. Ch có siêu ngư i dùng m i ư c phép dùng tùy ch n này. --verbose : ưa ra các thông báo v quá trình xóa file.3. --recursive : xóa b n i dung c a thư m c m t cách -v.so. -r.2 libnss_files-2.

-L. -l. m c nh s so n th o tr c ti p n i dung trên thi t b vào chu n. s ký t m ư c. k t qu s hi n th lên màn hình như ví d trên.. -w. # wc /home/lan/vd/vdcalj /home/lan/vd/vdwc 8 24 32 41 209 250 192 1473 1665 /home/lan/vd/vdcalj /home/lan/vd/vdwc total L nh trên m s ký t . --max-line-length : ưa ra chi u dài c a dòng dài nh t trong file. L nh hi n ra s lư ng dòng. có th có nhi u cách bi t ư c nh ng thông tin c n thi t. s dòng trên m i file ư c ch ra. --chars : ưa ra s ký t trong file. và dòng cu i cùng hi n th t ng s dòng. --lines : ưa ra s dòng trong file. s lư ng t . s t . s 64 t và có 11 dòng. s lư ng ký t có trong m i file. Dùng CTRL+d k t thúc vi c so n th o. Ví d sau khi gõ l nh: # wc ngư i dùng gõ ti p các dòng như sau: This is a example of wc command without [namefile] sau ó ngư i dùng gõ c p phím Ctrl-d k t thúc thì th y dòng thông báo hi n ra: 2 9 49 Khi gõ l nh wc mà không có m t tham s nào. Ví d .. N u không có tùy ch n nào thì m c nh ưa ra c s dòng. s t và s ký t . Ng m nh khi không có tên file trong l nh thì s c và m trên thi t b vào chu n. Cú pháp l nh: wc [tùy-ch n] [file]. Ch ng h n: k t h p v i l nh ls xác nh s file có trong m t thư m c: # ls | wc -l 37 6 8 . sau khi gõ l nh: # wc /home/lan/mau/mau1 xu t hi n dòng thông báo: 11 64 293 /home/lan/mau/mau1 Dòng thông báo trên cho bi t file mau1 có 293 ký t . Các tuỳ ch n: -c. và m t dòng tính t ng n u có nhi u hơn m t file ư c ch ra. s t . hay s dòng trong m t file. --byte. s t . --words : ưa ra s t trong file. B ng cách k t h p l nh wc v i m t s l nh khác. --help : hi n th trang tr giúp và thoát.* L nh m t và dòng trong file wc Linux có l nh wc dùng m s ký t .

N u mu n thoát b ng cách s d ng nút Logout trên Panel. ngư i dùng s d ng l nh cat xem n i dung file vduniq # cat vduniq Gnome có hai phương pháp thoát ra ngoài. 6 9 . N u s d ng l nh uniq trên m t file không có các dòng trùng l p thì l nh không có tác d ng. --count : m và hi n th s l n xu t hi n c a các dòng trong file. Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. ví d các dòng tr ng ho c các dòng ch a n i dung gi ng nhau. Các tuỳ ch n: -c. chúng ta th y có m t s các thông tin b trùng l p. ch n m c Logout áy menu. -u : hi n th n i dung file sau khi xóa b toàn b các dòng b trùng l p không gi l i m t dòng nào. Gnome có hai phương pháp thoát ra ngoài. có th s d ng l nh uniq li t kê ra n i dung file sau khi ã lo i b các dòng trùng l p. Ví d .dòng l nh trên cho bi t trong thư m c ch c a có 36 file (do dòng u tiên k t qu thông báo c a l nh ls không xác nh m t file). Cú pháp l nh: uniq [tùy-ch n] [input] [output] L nh uniq s lo i b các dòng trùng l p k nhau t input (thi t b vào chu n) và ch gi l i m t dòng duy nh t trong s các dòng trùng l p r i ưa ra output (thi t b ra chu n). Trong file vduniq có hai dòng b trùng l p và k nhau là dòng th 1 và 2. Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. Gnome có hai phương pháp thoát ra ngoài. và dòng th 5 và 6 Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. -i : hi n th n i dung file sau khi xóa b các dòng trùng l p và ch gi l i duy nh t m t dòng có n i dung b trùng l p. trư c h t ph i thêm nút này vào Panel. -D : hi n th t t c các dòng trùng l p trên màn hình. thoát b ng cách s d ng menu chính. Gnome có hai phương pháp thoát ra ngoài. Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. ng th i làm g n và thu nh kích thư c c a file. -d : hi n th lên màn hình dòng b trùng l p. hãy m menu chính. k t h p v i l nh cat bi t s tài kho n cá nhân có trên máy c a ngư i dùng: # cat /etc/passwd | wc -l 324 * L nh lo i b nh ng dòng không quan tr ng uniq Trong m t s trư ng h p khi xem n i dung m t file.

Dòng cu i cùng trong file vduniq có n i dung trùng v i dòng th 5. 7 0 . Ng m nh s p x p theo th t t i n c a các dòng có trong các file (t ng ch cái theo b ng ch h th ng (ch ng h n ASCII) và k t v trí u tiên trong các dòng). ch n m c Logout áy menu. Chú ý. Hi n th n i dung sau khi s p x p c a m t ho c nhi u file ra thi t b ra chu n là tác d ng c a l nh sort. th c ch t l y xâu con t v trí s 1 t i v trí s 2 c a các dòng so sánh l y th t s p x p các dòng.Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. hãy m menu chính. Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. -r : chuy n i th t s p x p hi n th i..) ư c ưa lên u. -d : xem như ch có các ký t [a-zA-Z0-9] trong khóa s p x p. n u có s 2 thì ph i cách s 1 ít nh t m t d u cách. nhưng sau l nh uniq. N u mu n thoát b ng cách s d ng nút Logout trên Panel. Dùng l nh uniq lo i b dòng trùng l p: # uniq vduniq Gnome có hai phương pháp thoát ra ngoài. trư c h t ph i thêm nút này vào Panel. Cú pháp l nh: sort [tùy-ch n] [file] . n u s 2 nh hơn s 1 thì b qua l a ch n này. -f : s p x p không phân bi t ch hoa ch thư ng. B n có th s d ng m c Logout t menu chính Gnome có hai phương pháp thoát ra ngoài. ch n m c Logout áy menu. ? . -b : b qua các d u cách ng trư c trong ph m vi s p x p. Các tùy ch n: +<s 1> [-<s 2>] : Hai giá tr s 1 và s 2 xác nh "khóa" s p x p c a các dòng. thoát b ng cách s d ng menu chính. N u s 2 không có thì coi là h t các dòng. mu n s p x p file vdsort # cat vdsort trư c h t ph i thêm nút này vào Panel.. -c : ki m tra n u file ã s p x p thì thôi không s p x p n a. nó không b xóa vì không k v i dòng có n i dung trùng l p.. * S p x p n i dung file v i l nh sort sort là l nh c các thông tin và s p x p chúng theo th t trong b ng ch cái ho c theo th t ư c quy nh theo các tùy ch n c a l nh. 21434 b n xác nh n là có th c s mu n thoát hay không. các dòng có các kí t c bi t (d u cách.. menu chính. -n : s p x p theo kích thư c c a file. Ch n YES/ NO k t thúc phiên làm vi c v i Gnome. Ví d .

Nó không cung c p ch c năng ho t ng nào khác ngoài ch năng này. Nó không cung c p ch c năng ho t ng nào khác ngoài ch năng này. Có th k t h p l nh sort v i các l nh khác.text. N u mu n thoát b ng cách s d ng nút Logout trên Panel. ho c nút Logout trên Panel chính thoát ra ngoài. N u mu n thoát b ng cách s d ng nút Logout trên Panel. ví d : # ls -s | sort -n total 127 1 Archive/ 1 infoWorld/ 13 keylime.hqx 64 bitnet. Khi ó m t h p tho i Logout s xu t hi n yêu c u L a ch n YES ho c NO k t thúc phiên làm vi c v Gnome. Nó không cung c p ch c năng ho t ng nào khác ngoài ch năng này. 3. ch n m c Logout áy menu.4. menu chính. trư c h t ph i thêm nút này vào Panel.4 Các l nh thao tác theo n i dung file * S d ng l nh file xác Cú pháp l nh file: nh ki u file 7 1 . Gnome có hai phương pháp thoát ra ngoài. Khi ó m t h p tho i Logout s xu t hi n yêu c u 57879 L a ch n YES ho c NO k t thúc phiên làm vi c v Gnome.Z i c c i c c L nh trên cho th t s p x p c a các file theo kích thư c trong thư m c hi n th i.mailing-lists. Nó không cung c p ch c năng ho t ng nào khác ngoài ch năng này. # sort -f vdsort 21434 57879 B n có th s d ng m c Logout t menu chính b n xác nh n là có th c s mu n thoát hay không.pie 46 drop.ho c nút Logout trên Panel chính thoát ra ngoài.

. data: thư ng là d ng file ch a mã nh phân và không th in ra ư c. N u file ư c ki m tra th a mãn m t trong ba ki u file trên thì ki u file s ư c in ra theo các d ng cơ b n sau: text: d ng file văn b n thông thư ng. -f tên-file : cho phép hi n th ki u c a các file có tên trùng v i n i dung trên m i dòng trong file tên-file.file [tùy-ch n] [-f file] [-m <file. 1. M t s tuỳ ch n sau ây: -b : cho phép ch ưa ra ki u file mà không ưa kèm theo tên file. s d ng d u "-". L nh file s l n lư t ki m tra t ki u file h th ng. ch ch a các mã ký t ASCII. ki m tra trên thi t b vào chu n. -n.. -E.c file /dev/hda file.. -s : n u trong n i dung file có nhi u dòng tr ng thì s lo i b b t tr ng.] <file>. --number : hi n th s th t c a m i dòng (k c dòng tr ng). --help : hi n th trang tr giúp và thoát. Cú pháp l nh: cat [tùy-ch n] <tên file> Các tùy ch n: -A. -t : gi ng như -vT.version L nh trên cho xem ki u c a hai file file. * Xem n i dung file v i l nh cat o n trư c. file và thư m c /dev/hda. --show-nonprinting : hi n th các ký t không in ra ư c ngo i tr LFD và TAB. -e : gi ng như tùy ch n -vE.c: C program text file: ELF 32-bit LSB executable. chúng ta ã có d p làm quen v i l nh cat thông qua tác d ng t o file c a l nh. --show-ends : hi n th d u "$" t i cu i m i dòng. Ph n này gi i thi u tác d ng ch y u c a l nh cat: ó là tác d ng xem n i dung c a m t file. -b.nh>. not stripped /dev/hda: block special Intel 80386. Ví d : 7 2 ch hi n th m t dòng . -v. -z : xem ki u c a file nén. Ví d : # file file. --show-tabs : hi n th d u TAB dư i d ng ^I. --show-all : gi ng như tùy ch n -vET. executable: d ng file nh phân kh thi.dynamically linked. --number-nonblank : hi n th thêm s th t trên m i dòng (b qua dòng tr ng). ki u file magic (ví d file mô t thi t b ) r i n ki u file văn b n thông thư ng.. Nh r ng k t qu c a l nh file không ph i lúc nào cũng chính xác tuy t i. -T.c. L nh file cho phép xác nh và in ra ki u thông tin ch a trong file.

"q" to quit . $ 2 có th s d ng m c Logout t menu chính $ 3 ho c nút Logout trên Panel chính thoát ra ngoài. thoát b ng cách s d ng menu chính. ho c nút Logout trên Panel chính thoát ra ngoài. * Xem n i dung các file l n v i l nh more L nh cat cho phép xem n i dung c a m t file. ch n m c Logout áy menu. n i dung file s trôi trên màn hình và ch có th nhìn th y ph n cu i c a file.$ 9 thoát b ng cách s d ng menu chính.$ $ 8 ho c nút Logout trên Panel chính thoát ra ngoài.$ 4 thoát b ng cách s d ng menu chính. thoát b ng cách s d ng menu chính. có th s d ng m c Logout t menu chính ho c nút Logout trên Panel chính thoát ra ngoài. ó là l nh more. Khi ó m t h p tho i Logout s xu t hi n yêu c u xác nh n là có th c s mu n thoát hay không. Cú pháp l nh: more [-dlfpcsu] [-s ] [+/xâum u] [+dòng-s ] [file . hãy m menu chính. nhưng n u file quá l n. hãy m menu chính. Linux có m t l nh cho phép có th xem n i dung c a m t file l n. -d : trên màn hình s hi n th các thông báo giúp ngư i dùng cách s d ng i v i l nh more. Các l a ch n: -s : xác nh s dòng n i dung c a file ư c hi n th (s ). # cat -bEs vdcat thì n i dung file hi n ra như sau: 1 Gnome có hai phương pháp thoát ra ngoài. ví như [ Press space to continue. hay hi n th [Press "h" for instructions . hãy m $ 10 menu chính.] L nh more hi n th n i dung c a file theo t ng trang màn hình. 7 3 . ch n m c Logout áy menu.. $ $ 6 Khi ó m t h p tho i Logout s xu t hi n yêu c u $ 7 xác nh n là có th c s mu n thoát hay không.# cat vdcat chúng ta th y xu t hi n các dòng sau ây: Gnome có hai phương pháp thoát ra ngoài. ch n m c Logout áy menu. ch n m c Logout áy menu.] thay th cho ti ng chuông c nh báo khi b m sai m t phím. hãy m $ 5 menu chính..].

+/xâum u : tùy ch n +/xâum u ch ra m t chu i s +dòng-s : b t u hi n th t dòng th dòng-s . l nh s d ng t i dòng u tiên có ch a ^L và hi n th % n i dung ã xem ư c (^L không b m t). -p : không cu n màn hình. t c là d u ^L s m t và trư c dòng có ch a ^L s có thêm m t dòng tr ng.-l : more thư ng xem ^L là m t ký t c bi t.0 SVGATextMode SysVinit-2. -s : xóa b t các dòng tr ng li n nhau trong n i dung file ch gi l i m t dòng. nh n phím space (ho c enter) ti p t c.] i v i l nh more.23 HTML ImageMagick LDP ORBit-0. thay vào ó là xóa nh ng gì có trên màn hình và hi n th ti p n i dung file. B ng dư i ây li t kê các phím t t ó: Phím t t [Space] n [Enter] h d ho c CTRL+D q ho c CTRL+Q s f b ho c CTRL+B Ch c năng Nh n phím space hi n th màn hình ti p theo Hi n th n dòng ti p theo Hi n th dòng ti p theo Hi n th danh sách các phím t t Cu n màn hình (m c nh là 11 dòng) Thoát kh i l nh more B qua n dòng (m c nh là 1) B qua k màn hình ti p theo (m c nh là 1) Tr l i k màn hình trư c (m c nh là 1) 7 4 . Ví d : # more -d vdmore total 1424 drwxr-xr-x 6 drwxr-xr-x 2 drwxr-xr-x 2 drwxr-xr-x 2 drwxr-xr-x 3 drwxr-xr-x 3 drwxr-xr-x 6 drwxr-xr-x 3 drwxr-xr-x 2 drwxr-xr-x 2 drwxr-xr-x 2 --More--(9%) ư c tìm ki m trư c khi hi n th m i file. root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 root root 4096 Oct 31 2000 [ Press space to continue. -u : b qua d u g ch chân.8.78 WindowMaker "q" to quit . -c : không cu n màn hình. có th s d ng m t s các phím t t th c hi n m t s các thao tác ơn gi n trong khi ang th c hi n l nh. N u có tùy ch n -l. thay vào ó xóa màn hình và hi n th n i dung file b t u t nh màn hình. n i dung c a file s ư c hi n th như bình thư ng nhưng m t khuôn d ng khác. n u không có tùy ch n này.0 AnotherLevel ElectricFence GXedit-1.5. AfterStep-1.

--page-increment=s : ánh s th t c a dòng theo c p s c ng có công sai là s . --number-separator=xâu : thêm chu i xâu vào sau s th t c a dòng.căn ph i và có s 0 u) -p. --number-width=s : hi n th s th t c a dòng trên c t th s . -h.căn trái. Ví d : # nl --body-numbering=a --number-format=rz vdnl 000001 1) New configuration mode 000002 000003 7 5 . t : ch ánh s các dòng không tr ng. --header-numbering=STYLE : s d ng ki u STYLE ánh s các dòng trong n i dung file. --section-delimiter=CC : s d ng CC ánh s trang logic (CC là hai ký t xác nh ph m vi cho vi c phân trang logic). --no-renumber : không thi t l p l i s dòng t i m i trang logic. v i s th t c a dòng ư c thêm vào. Cú pháp l nh: nl [tùy-ch n] <file> L nh này s ưa n i dung file ra thi t b ra chu n. tuy nhiên Linux còn cho phép dùng l nh nl th c hi n công vi c như v y. --help : hi n th trang tr giúp và thoát. --body-numbering=STYLE : s d ng ki u STYLE cho vi c ánh th t các dòng trong n i dung file. không có s 0 u.. -d. -l. n : không ánh s dòng. --join-blank-lines=s :nhóm s dòng tr ng vào thành m t dòng tr ng. -f.). ho c khi file là d u "-". Hi n th s dòng hi n th i xem k file ti p theo Tr l i k file trư c Ch y chương trình so n th o vi t i dòng hi n th i V l i màn hình Hi n th tên file hi n th i và s dòng L p l i l nh trư c * Thêm s th t c a các dòng trong file v i l nh nl Như ã bi t l nh cat v i tham s -n s ánh s th t c a các dòng trong file. -n.= :n :p v CTRL+L :f .. --footer-numbering=STYLE : s d ng ki u STYLE ánh s các dòng trong n i dung file (m t câu có th có hai dòng . Có các ki u STYLE sau: a : ánh s t t c các dòng k c dòng tr ng. -w.căn ph i. rz . Các tuỳ ch n: -b. không có s 0 u. --number-format=khuôn : chèn s dòng theo khuôn (khuôn: ln . --first-page=s : s dòng u tiên trên m i trang logic. -i. -s. N u không có file (tên file). -v. rn . thì c n i dung t thi t b vào chu n.

ho c file là d u "-". k c dòng tr ng. -q. --silent : không ưa ra tên file dòng u. like modules currently do. Trư c h t. file here in a near 000013 future. this isn't recommended at all. 000011 000012 New versions of asapps will also put their config. các s th t ư c căn ph i và có s 0 u (lưu ý r ng có dòng trong file ư c hi n ra thành hai dòng trên gi y). --bytes=c : hi n th c (s nguyên) ký t u tiên trong n i dung file (c có th nh n giá tr là b cho 512. chúng ta hãy làm quen v i l nh head. N u không có tham s file. Các tuỳ ch n: -c. k cho 1K.steprc config file with afterstep f myoldsteprc.. everything goes to Ú/GNUstep/Library/AfterStep or ==> vdhead2 <== 7 6 .000004 1-1) Directories 000005 000006 Now. 000014 L nh trong ví d trên cho thêm s th t c a các câu trong file vdnl theo d ng: ánh s th t t t c các dòng. --help : hi n th trang tr giúp và thoát.. Ví d : # head -6 vdhead1 vdhead2 ==> vdhead1 <== 1) New configuration mode 1-1) Directories Now. everything goes to ~/GNUstep/Library/AfterStep or 000007 /usr/local/share/afterstep ! 000008 000009 You can use your old . m cho 1 Meg) -n. thì l n lư t tên c a file và 10 dòng n i dung u tiên s ư c hi n th . thì ng m nh s c t thi t b vào chu n. N u có nhi u hơn m t file. * Xem qua n i dung file v i l nh head Các o n trư c cho bi t cách th c xem n i dung c a m t file nh l nh cat hay more. Trong Linux cũng có các l nh khác cho nhi u cách th c xem n i dung c a m t file. 000010 however. -v. --verbose : luôn ưa ra tên file dòng u. L nh này m c nh s ưa ra màn hình 10 dòng u tiên c a m i file. Cú pháp l nh head [tùy-ch n] [file]. --quiet. --lines=n : hi n th n (s nguyên) dòng thay cho 10 dòng ng m nh.

d ng k giây gi a các ho t ng. -v. Các tùy ch n: --retry : c g ng m m t file khó truy nh p khi b t u th c hi n l nh tail.. -c. thì l n lư t tên c a file và 10 dòng cu i s ư c hi n th . N u không có tham s file. --max-consecutive-size-changes=n : hi n th tài li u v file (ng m nh n là 200). everything goes to ~/GNUstep/Library/AfterStep or /usr/local/share/afterstep ! ==> vdtail2 <== changed from shell script call to perl script call L nh trên cho xem hai dòng cu i c a hai file vdtail1 và vdtail2. -q. Ví d : # tail -2 vdtail1 vdtail2 ==> vdtail1 <== Now. --follow[={name | descritptor}] : sau khi hi n n i dung file s hi n thông tin v file: -f. -s.include changed from shell script call to perl script call L nh này cho xem qua 6 dòng u tiên trong n i dung hai file vdhead1 và vdhead2.164 patch 3 $HOME/GNUstep/Library/AfterStep/start/Desktop/Theme/. --pid=PID : k t h p v i tùy ch n -f. ho c file là d u "-" thì ng m nh s c t thi t b vào chu n. --help : hi n th trang tr giúp và thoát. --bytes=n : hi n th n (s ) ký t sau cùng. ó là l nh diff v i cú pháp: diff [tuỳ-ch n] <file1> <file2> 7 7 . --lines=n : hi n th n (s ) dòng cu i cùng c a file thay cho 10 dòng ng m nh. -n. --quiet. --max-unchanged-stats=n : hi n th tài li u v file (ng m nh n là 5). Linux có m t l nh có tác d ng như v y.. và --follow=descriptor là như nhau. * Tìm s khác nhau gi a hai file (l nh diff) Vi c tìm ra s khác nhau gi a hai file ôi khi là r t c n thi t.1. N u có nhi u hơn m t file. * Xem qua n i dung file v i l nh tail L nh th hai cho phép xem qua n i dung c a file là l nh tail v i cú pháp: tail [tùy-ch n] [file]. --sleep-interval=k : k t h p v i tùy ch n -f.7. --silent : không ưa ra tên file dòng u trong n i dung ư c hi n th . -follow. ch m d t sau khi quá trình có ch s = PID l i. --verbose : luôn hi n th tên c a file. -f. L nh tail ng m nh ưa ra màn hình 10 dòng cu i trong n i dung c a các file.

--fixed-strings : xem m u như m t danh sách các xâu c nh. -i: so sánh không bi t ch hoa ch thư ng. L nh này có hai tác d ng cơ b n như sau: tác d ng th nh t là l c u ra c a m t l nh khác v i cú pháp là <l nh> | grep <m u l c> tác d ng th hai. -y: hi n th hai file c nh nhau d phân bi t s khác nhau.5 Các l nh tìm file * Tìm theo n i dung file b ng l nh grep L nh grep cũng như l nh ls là hai l nh r t quan tr ng trong Linux. -b: b qua s thay i v s lư ng c a ký t tr ng. 3. Ngoài l nh grep còn có hai l nh là egrep và fgrep. 7 8 . -F. --brief: ch thông báo khi có s khác nhau mà không ưa ra chi ti t n i dung khác nhau. fgrep tương t v i l nh grep -F . b qua các file và các thư m c con có tên phù h p v i m u có trong file. -E.4. Các tuỳ ch n: -a: xem t t c các file d ng văn b n và so sánh theo t ng dòng. --basic-regexp : xem m u l c như m t bi u th c thông thư ng. --after-context=NUM : ưa ra NUM dòng n i dung ti p theo sau dòng có ch a m u. Cú pháp l nh grep: grep [tùy-ch n] <m u-l c> [file] L nh grep hi n th t t c các dòng có ch a m u-l c trong file ư c ch ra (ho c t thi t b vào chu n n u không có file ho c file có d ng là d u "-") Các tùy ch n: -G. egrep tương t như l nh grep -E. và cũng là tác d ng cơ b n ư c gi i thi u trong ph n này. -r: th c hi n so sánh qui trên thư m c. --exclude-from=file: khi so sánh thư m c. N u c file1 và file2 u là thư m c. diff s th c hi n s so sánh l n lư t các file trong c hai thư m c theo th t t a-z (s so sánh này s không qui n u tuỳ ch n -r ho c --recursive không ư c ưa ra). diff s so sánh file có tên trùng v i file2 trong thư m c file1 v i file2. T t nhiên so sánh gi a hai thư m c không th chính xác như khi so sánh hai file. N u file1 là m t thư m c còn file2 là m t file bình thư ng. i u này là ng m nh. -s: thông báo khi hai file là gi ng nhau. -B: b qua m i s thay i mà ch chèn ho c xoá các dòng tr ng.Trong trư ng h p ơn gi n. l nh diff s so sánh n i dung c a hai file. --extended-regexp : xem m u l c như m t bi u th c m r ng. là tìm dòng ch a m u ã nh trong file ư c ch ra. L nh grep còn có các tùy ch n sau: -A NUM. ư c phân ra b i các dòng m i. -d: tìm ra s khác bi t nh (tuỳ ch n này có th làm ch m t c làm vi c c a l nh diff).

--count : m s dòng tương ng ch a m u trong file u vào thay cho vi c hi n th các dòng ch a m u. -i : hi n th các dòng ch a m u không phân bi t ch hoa ch thư ng.5. --line-number : thêm s th t c a dòng ch a m u trong file.1. N u ACTION là recurse.10 8 /dev/hda: x86 boot sector 9 /dev/hda1: Linux/i386 ext2 filesystem 10 /dev/hda2: x86 boot sector 11 /dev/hda3: x86 boot sector.7.6.c file /dev/hda 2 file. --line-regexp : ch hi n th nh ng dòng mà n i dung trùng hoàn toàn v i m u l c.2. -s. --before-context=NUM : ưa ra NUM dòng n i dung trư c dòng có ch a m u. -H. -b. Intel 80386. --context[=NUM] : hi n th NUM dòng (m c nh là 2 dòng) n i dung. M c nh. -h. Tuy nhiên.9. --no-messages : b qua các thông báo l i file không c ư c ho c không t n t i. -l : ưa ra tên các file trùng v i m u l c. thư m c s b b qua.8. --file=file : l y các m u t file.4. File tr ng ch a ng các m u r ng. -NUM : gi ng --context=NUM ưa ra các dòng n i dung trư c và sau dòng có ch a m u. -C [NUM]. -w. --word-regexp : ch hi n th nh ng dòng có ch a m u l c là m t t tr n v n. N u ACTION là skip. -n. --byte-offset : hi n th a ch tương i trong file u vào trư c m i dòng ư c ưa ra -c. -r. m t m u trên m t dòng.c: C program text 3 file:ELF 32-bit LSB executable. -d ACTION. grep s không ưa ra dòng nào nhi u hơn m t l n. not stripped 5 /dev/hda: block special 6 7 $ file -s /dev/hdaỳ. -x. Ví d . ngư i dùng gõ l nh cat xem n i dung file text: # cat -n text thì hi n ra n i dung file ó như sau: 1 $ file file. --with-file : ưa ra tên file trên m i dòng ch a m u tương ng.-B NUM. ACTION là read. tùy ch n này tương ương v i tùy ch n -r. --invert-match : hi n th các dòng không ch a m u. -v. --directories=ACTION : n u u vào là m t thư m c. extended partition table 12 /dev/hda4: Linux/i386 ext2 filesystem 13 /dev/hda5: Linux/i386 swap file 14 /dev/hda6: Linux/i386 swap file 7 9 .3. version 1. 4 dynamically linked. grep s c n i dung c a t t c các file bên trong thư m c ( quy). --no-filename : không hi n th tên file kèm theo dòng ch a m u trong trư ng h p tìm nhi u file. s d ng ACTION x lý nó. và các dòng ưa ra cũng là các dòng tr ng. --recursive : c t t c các file có trong thư m c ( quy). t c là s c n i dung thư m c như m t file thông thư ng. -f file.

l nh grep còn có hai d ng n a trên Linux.b t u m t dòng .thay th cho ký t c . và fgrep . dùng l nh grep l c các dòng có c m filesystem # grep -n filesystem text 9: /dev/hda1: Linux/i386 ext2 filesystem 12: /dev/hda4: Linux/i386 ext2 filesystem Cũng có th s d ng các ký hi u bi u di n thông thư ng (regular .ch n m t ký t không thu c t p h p các ký t ư c ưa ra . B ng dư i ây li t kê m t s ký hi u hay dùng: Ký hi u C \c ^ $ . Th nh tho ng m t bi u th c ơn gi n không th xác nh ư c i tư ng c n tìm.thay cho m t m u có ho c không ch a ký t c # grep .H thutest text text: thutest text: toithutest # grep -H "^thutest" text text: thutest Ngoài các tùy ch n khác nhau. egrep .thay cho m t ký t ơn . Nh ng lúc ó. ví d .expression) trong m ul c ưa ra ư c nhi u cách tìm ki m file khác nhau. l nh egrep t ra r t có ích.k t thúc dòng . [xy] [^xy] c* Ý nghĩa . như ang c n tìm các dòng có m t ho c hai m u l c.s d ng tìm nhi u m u l c cùng m t lúc.15 16 17 18 /dev/hda7: Linux/i386 swap file /dev/hda8: Linux/i386 swap file thutest toithutest Sau ó.có r t nhi u các ký hi u bi u di n m nh hơn grep. Hai d ng ó là egrep .ch n m t ký t trong t p h p các ký t ư c ưa ra .expression grep .hi n th c như là m t ký t bình thư ng n u c là m t ký t i u khi n . Dư i ây là các ký hi u hay dùng: 8 0 .s d ng v i các m u l c ph c t p.

Ký hi u c \c ^ $ .thay cho m t m u có ch a m t ho c nhi u hơn ký t c .b t u m t dòng . [xy] [^xy] c* c+ c? a|b (a) Ý nghĩa .hi n th c như là m t ký t bình thư ng n u c là m t ký t i u khi n .thay cho m t ký t ơn .ho c là a ho c là b . # egrep 'b+' /etc/passwd | head cho ra các dòng k t qu sau: root : x : 0 : 0 : root : /root : /bin/bash bin : x : 1 : 1 : bin : /bin : daemon : x : 2 : 2 : daemon : /sbin : sync : x : 5 : 0 : sync : /sbin : /bin/sync shutdown : x : 6 : 0 : shutdown : /sbin : /sbin/shutdown halt : x : 7 : 0 : halt : /sbin : /sbin/halt gopher : x : 13 : 30 : gopher : /usr/lib/gopher-data : nobody : x : 99 : 99 : Nobody : / : xfs : x : 43 : 43 : X Font Server : /etc/X11/fs : /bin/false named : x : 25 : 25 : Named : /var/named : /bin/false Khi gõ l nh: # egrep '([^a-zA-Z] | :wi)' /etc/printcap | head thì nh n ư c thông báo k t qu : aglw:Ư\ :wi=AG 23 : wk=multiple Apple LaserWrite IINT: aglw1:\ :wi=AG 23 : wk=Apple LaserWrite IINT: 8 1 .thay cho m t m u không có ho c ch có ch a duy nh t m t ký t c .ch n m t ký t trong t p h p các ký t ư c ưa ra .thay cho m t m u có ho c không ch a ký t c . gi s bây gi mu n tìm các dòng có ch a m t ho c nhi u hơn ký t b trên file passwk v i l nh egrep.ch n m t ký t không thu c t p h p các ký t ư c ưa ra .k t thúc dòng .a m t bi u th c Ví d .thay th cho ký t c .

aglw2:\ :wi=AG 23 : wk=Apple LaserWrite IINT: aglw3:\ :wi=AG 23 : wk=Apple LaserWrite IINT: L nh trên cho phép tìm các dòng ư c b t u b i (^) m t ch cái không phân bi t ch hoa ch thư ng ([a-zA-Z]) ho c ( | ) dòng có ch a m u :wi. Ví d . Cú pháp c a l nh find: find [ ư ng-d n] [bi u-th c] L nh find th c hi n vi c tìm ki m file trên cây thư m c theo bi u th c ư c ưa ra. egrep là l nh t t nh t s d ng. Bi u th c có th có nh ng d ng sau: 8 2 . L nh fgrep s làm ư c i u này. i u ki n c n i v i l nh này là ch ra ư c i m b t u c a vi c tìm ki m trong h th ng file và nh ng quy t c c n tuân theo c a vi c tìm ki m. hãy gõ l nh: # fgrep -i -f mauloc thu /dev/hda9: empty /dev/hda10: empty thutest toithutest tìm các câu trong file * Tìm theo các c tính c a file v i l nh find Các o n trên ây ã gi i thi u cách th c tìm file theo n i dung v i các l nh grep. Ví d . Có nh ng lúc c n ph i tìm nhi u m u l c trong m t lúc. ó là s d ng l nh find. ó là các tùy ch n c a l nh là m t t ch không ph i m t ký t . L nh này có m t s khác bi t so v i các l nh khác. l nh tìm file theo các thu c tính c a file. egrep và fgrep. có m t file ch a r t nhi u m u l c và mu n s d ng m t l nh trong Linux tìm các dòng có ch a các m u ó. file thu có n i dung như sau: # cat thu /dev/hda4: Linux/i386 ext2 filesystem /dev/hda5: Linux/i386 swap file /dev/hda8: Linux/i386 swap file /dev/hda9: empty /dev/hda10: empty thutest toithutest và file mauloc có n i dung là: # cat mauloc empty test Bây gi mu n s d ng n i dung file mauloc làm m u l c thu. bi u th c là -print. B t kỳ lúc nào mu n tìm các dòng có ch a nhi u hơn m t m u l c. Linux còn cho phép ngư i dùng s d ng m t cách th c khác y năng l c. M c nh ư ng d n là thư m c hi n th i.

-gid n : ch s nhóm c a file là n.. (ph i có kho ng tr ng gi a {} và '\'). EXPR2 Các tùy ch n l nh: t t c các tùy ch n này luôn tr v giá tr true và ư c t u bi u th c -daystart : o th i gian (-amin. -name m u : tìm ki m file có tên là m u. EXPR1 -o EXPR2 ho c EXPR1 -or EXPR2. -links n : file có n liên k t.Các toán t : ( EXPR ). -mmin. --help : hi n th k t qu c a l nh find và thoát. -follow : (tùy ch n này ch áp d ng cho thư m c) n u có tùy ch n này thì các liên k t tư ng trưng có trong m t thư m c liên k t s ư c ch ra. -mmin n : d li u c a file ư c s a l n cu i vào n phút trư c ây. -ctime n : tr ng thái c a file ư c thay i n*24 gi trư c ây. -group nhóm : file thu c quy n s h u c a nhóm. và d u '\' t i cu i dòng l nh. -fstype ki u : file thu c h th ng file v i ki u.. -atime n : tìm file ư c truy nh p n*24 gi trư c. -type ki u : tìm các file thu c ki u v i ki u nh n các giá tr : b: c bi t theo kh i c: c bi t theo ký t d: thư m c p: pipe f: file bình thư ng l: liên k t tư ng trưng s: socket -uid n: ch s ngư i s h u file là n. -cmin. -user tên-ngư i: file ư c s h u b i ngư i dùng tên-ngư i. -atime. -mtime n : d li u c a file ư c s a vào n*24 gi trư c ây. Tùy ch n exec ph i s d ng d u {} . Các hành ng -exec l nh : tùy ch n này cho phép k t h p l nh find v i m t l nh khác có ư c thông tin nhi u hơn v các thư m c có ch a file c n tìm. -empty : file r ng và ho c là thư m c ho c là file bình thư ng. -ctime.nó s thay th cho tên file tương ng. các test -amin n : tìm file ư c truy nh p n phút trư c. Trong tên file có th ch a c các ký t i di n như d u "*".' 8 3 . -help. EXPR1 -a EXPR2 ho c EXPR1 -and EXPR2. K t thúc l nh là d u '. -mtime). và EXPR1. "?". -cmin n : tr ng thái c a file ư c thay i n phút trư c ây. -depth : th c hi n tìm ki m t n i dung bên trong thư m c trư c (m c nh vi c tìm ki m ư c th c hi n b t u t i g c cây thư m c có ch a file c n tìm). ! EXPR ho c -not EXPR.

c ./usr/bin/whatnow . Có r t nhi u các công c có th ư c s d ng sao lưu.elm/aliases.5/whatsnew . Ví d : # find -name 'what*' ./Mail/mark . Có hai ki u sao lưu là sao lưu theo ki u toàn b (full backup) và sao lưu theo ki u tăng d n (incremental backup).0 to 1.5. Sao lưu tăng d n ch sao lưu nh ng file ư c thay i ho c ư c t o ra k t t sao lưu cu i cùng. B ng cách sao lưu d li u. Linux ưa ra các cách th c ngư i dùng b o v d li u c a mình.55/devel-docs/gnome-devinfo/gnome-dev-info/whatis. Sao lưu toàn b th c hi n vi c sao m i th trên h th ng file.-fprint file : hi n th y tên file vào trong file.1 Sao lưu các file (l nh tar) D li u r t có giá tr ./bin/my. n u ã t n t i thì s b thay th n i dung.0. c n ph i quan tâm n giá c .8./usr/doc/gnome-libs-devel-1. -print : hi n th y tên file trên thi t b ra chu n.5 Nén và sao lưu các file 3. l i do con ngư i ho c do thiên tai. s m t nhi u th i gian và công s c n u ph i t o l i. cpio và dump (công c trong tài li u này là tar). tin c y. t c . bao g m t t c các file. Sao lưu là cách b o v d li u m t cách kinh t nh t. Ngoài ra còn r t nhi u các công c khác có th l a ch n tùy theo phương ti n sao lưu có trong h th ng. ích l i cũng như tính kh d ng c a các phương ti n sao lưu.0/TODO/1.c .text ./usr/doc/gnome-libs-devel-1. ch s c a m i file. N u file không t n t i thì s ư c t o ra.55/devel-docs/gnome-devinfo/gnome-dev-info/what. th m chí có lúc cũng không th nào t o l i ư c.msg 3.new. s không có v n gì x y ra n u d li u trên h th ng b m t./OWL/WordMap/msw-to-txt.0. -type f -exec grep -l -i mapping {} \ .cmd: Permission denied .alt . Vì v y./. -ls : hi n th file hi n th i theo khuôn d ng: li t kê danh sách y kèm c s thư m c.html # find ./usr/bin/whatis ./usr/doc/AfterStep-1. Có b n nguyên nhân cơ b n khi n d li u có th b m t: l i ph n c ng. Các công c truy n th ng là tar./src/fixit. M tv n r t quan tr ng trong vi c sao lưu ó là l a ch n phương ti n sao lưu. .html ./News/usenet. l i ph n m m. v i kích thư c file ư c tính theo kh i (block). 8 4 ./temp/attach.

--extract. -u.. --file [HOSTNAME:]file : tùy ch n này xác nh tên file lưu tr ho c thi t b lưu tr là file (n u không có tùy ch n này. lúc ó hãy s d ng tùy ch n -M: # tar -cMf /dev/fd0H1440 /usr/src tar: Removing leading / from absolute archive path names in the 8 5 . --compare : tìm ra s khác nhau gi a file lưu tr và file h th ng ư c lưu tr . -r. --newer DATE : ch lưu tr các file m i hơn các file ư c lưu tr trong ngày DATE. -K. --one-file-system : t o file lưu tr trên h th ng file c c b . i u này s giúp cho vi c di chuy n file ho c sao lưu băng t tr nên d dàng hơn nhi u.. -k. -v. --remove-files : xóa file g c sau khi ã sao lưu chúng vào trong file lưu tr . -N. -C. --verbose : hi n th danh sách các file ã ư c x lý.] L nh (chương trình) tar ư c thi t k t o l p m t file lưu tr duy nh t. có th k t h p nhi u file thành m t file duy nh t có kích thư c l n hơn. --checkpoint : ưa ra tên thư m c khi c file lưu tr . -f. --starting-file file : b t u t i file trong file lưu tr . L nh tar có các l a ch n: -c.. --after-date DATE. -d. V i tar. --totals : ưa ra t ng s byte ư c t o b i tùy ch n --create.] [<thư-m c>. --keep-old-files : gi nguyên các file lưu tr ang t n t i mà không ghi è file lưu tr m i lên chúng. (dòng thông báo trên cho bi t r ng tar s chuy n c d u / vào trong file sao lưu). --create : t o file lưu tr m i. --list : li t kê n i dung c a m t file lưu tr . -l. -h. -t. --update : ch thêm vào file lưu tr các file m i hơn các file ã có. Ví d : # tar --create --file /dev/ftape /usr/src tar: Removing archive leading / from absolute path names in the # L nh trên t o m t file sao lưu c a thư m c /usr/src trong thư m c /dev/ftape. -x. --multi-volume : tùy ch n này ư c s d ng khi dung lư ng c a file c n sao lưu là l n và không ch a h t trong m t ơn v lưu tr v t lý. . --dereference : không hi n các file liên k t mà hi n các file mà chúng tr t i. --get : tách các file ra kh i file lưu tr . -M.. N u vi c sao lưu không th th c hi n g n vào trong m t băng t . --delete : xóa t file lưu tr (không s d ng cho băng t ). . --directory tên-thư-m c : thay i n thư m c có tên là tên-thư-m c. m c nh nơi lưu tr là /dev/rmt0).Vi c sao lưu toàn b có th ư c th c hi n d dàng v i l nh tar v i cú pháp: tar [tùy-ch n] [<file>. --append : chèn thêm file vào cu i file lưu tr . --diff.

2 Nén d li u Vi c sao lưu r t có ích nhưng ng th i nó cũng chi m r t nhi u không gian c n thi t sao lưu. tar không th thông báo ư c khi các thông tin trong inode c a m t file b thay i. có th th c hi n vi c nén d li u trư c khi sao lưu. hãy s d ng tùy ch n -N: # tar --create --newer '8 Sep 1995' --file /dev/ftape /usr/src --verbose tar: Removing leading / from absolute path names in the archive usr/src/ usr/src/Linux-1.10-includes/include/asm-i386/ usr/src/Linux-1. 8 6 .gz # Lưu ý r ng.Prepare volume #2 for /dev/fd0H1440 and hit return: # Chú ý r ng ph i nh d ng ĩa m m trư c khi th c hi n vi c sao lưu. # s d ng ki u sao lưu tăng d n.2.2. 3. có th ki m tra k t qu c a công vi c b ng tùy ch n -compare: # tar --compare --verbose -f /dev/ftape usr/src/ usr/src/Linux usr/src/Linux-1. ví d như thay i quy n truy nh p c a file. Trong Linux có khá nhi u cách nén d li u.2.2.10-includes/include/Linux/modules/ usr/src/Linux-1.10-includes/include/asm-alpha/ usr/src/Linux-1. Sau khi th c hi n vi c sao lưu.2.2.10-includes/include/Linux/ usr/src/Linux-1. bi t ư c nh ng thông tin thay i s c n dùng n l nh find và so sánh v i tr ng thái hi n th i c a file h th ng v i danh sách các file ư c sao lưu t trư c. có th s d ng m t thi t b u cu i khác th c hi n vi c nh d ng ĩa khi tar yêu c u m t ĩa m m m i.2.10-includes/ usr/src/Linux-1.11.10-includes/include/asm-sparc/ usr/src/patch-1.5..2.2. sau ó th c hi n vi c gi i nén (dãn) nh n l i n i dung trư c khi nén.2. gi m không gian lưu tr c n thi t.10-includes/include/asm-generic/ usr/src/Linux-1.10-includes/ . tài li u này gi i thi u hai phương cách ph bi n là gzip và compress.2. hay thay i tên file ch ng h n.10-includes/include/asm-m68k/ usr/src/Linux-1..10-includes/include/asm-mips/ usr/src/Linux-1.2.10-includes/include/ usr/src/Linux-1.

Các tùy ch n: -c. N u tên file g m nhi u ph n nh thì ph n dài nh t s b c t b . N u tên file nén quá dài so v i tên file g c. --decompress --uncompress : gi i nén. -d. gzip s ch c t ph n tên file vư t quá 3 ký t (các ph n ư c ngăn cách v i nhau b i d u ch m).. tên file ư c gi i nén. --list : hi n th nh ng thông tin sau i v i m t file ư c nén: compressed size: kích thư c c a file nén uncompressed size: kích thư c c a file ư c gi i nén ratio: t l nén (0. Ví d . các thông tin sau s ư c hi n th : method: phương th c nén crc: CRC 32-bit cho d li u ư c gi i nén date & time: th i gian các file ư c gi i nén N u k t h p v i tùy ch n --name. File ư c nén có th ư c khôi ph c tr l i d ng nguyên th v i l nh gzip -d ho c gunzip. gunzip dùng gi i nén các file nén b ng l nh gzip. -z.msdos. tiêu và t ng s dòng c a các file nén không ư c hi n th . u ra s tu n t là các file ư c nén m t cách c l p.* Nén.gz. N u không có tên file nào ư c ch ra thì thông tin t thi t b vào chu n s ư c nén và g i ra thi t b ra chu n.Z . t ng kích thư c và t l nén c a t t c các file s ư c hi n th N u k t h p v i tùy ch n --quiet.msd. gi i nén và xem n i dung các file v i l nh gzip.gz. N u có nhi u hơn m t file u vào. -gz.exe. gunzip và zcat Cú pháp các l nh này như sau: gzip [tùy-ch n] [ -S suffix ] [ < file> ] gunzip [tùy-ch n] [ -S suffix ] [ <file> ] zcat [tùy-ch n] [ <file> ] L nh gzip s làm gi m kích thư c c a file và khi s d ng l nh này.exe. gzip s c t b b t. file g c s b thay th b i file nén v i ph n m r ng là . Trong m t vài trư ng h p. . --help : hi n th màn hình tr giúp và thoát. hay d li u nén ư c c ho c ghi trên thi t b u cu i.0% n u không bi t) uncompressed_name: tên c a file ư c gi i nén N u k t h p v i tùy ch n --verbose. gi nguyên file g c không có s thay i. V i l nh gzip có th gi i nén m t ho c nhi u file có ph n m r ng là . compress. compress -H. -l. th i gian gi i nén ư c lưu tr trong file nén N u k t h p v i tùy ch n --verbose.gz. zip. l nh này s b qua liên k t tư ng trưng. -h.. _z ho c . các thông tin khác liên quan n file không thay i. L nh zcat ư c s d ng khi mu n xem n i dung m t file nén trên thi t b ra chu n. tên file là gzip. 8 7 .z. --force : th c hi n nén ho c gi i nén th m chí file có nhi u liên k t ho c file tương ng th c s ã t n t i. khi ư c nén s có tên là gzip. -f. --stdout --to-stdout : ưa ra trên thi t b ra chu n.

nhưng các ph n m r ng khác . tùy ch n này s không lưu tr tên file g c và th i gian nén. --recursive : nén thư m c. -t.z và . -S .50.suf.suf : s d ng ph n m r ng . -r. uncompress. Ví d : # ls /home/test Desktop data dictionary newt-0.suf thay cho .8 rpm save vd1 # gzip /home/test/vd1 # ls /home/test Desktop data dictionary newt-0. --test : tùy ch n này ư c s d ng ki m tra tính toàn v n c a file ư c nén -v. --fast. -q. n u -# là -1 ho c --fast thì s d ng phương th c nén nhanh nh t (less compression).gz. Ng m nh m c nén là -6 ( ây là phương th c nén theo t c nén cao). (tên file g c s luôn ư c lưu n u khi nén tên c a nó b c t b ). Khi gi i nén. n u là -9 ho c --best thì s dùng phương th c nén ch m nh t (best compression). --name : tùy ch n này ngư c v i tùy ch n trên (-n). -N. gi i nén và xem file v i các l nh compress. --suffix . --quiet : b qua m i c nh báo.8 rpm save vd1.50. --no-name : khi nén. Tùy ch n này ư c ng m nh. zcat Cú pháp các l nh như sau: compress [tùy-ch n] [<file>] 8 8 .gz s b ngăn ch n tránh s l n x n khi các file ư c chuy n n h th ng khác.gz # zcat /home/test/vd1 PID TTY TIME CMD 973 pts/0 00:00:00 bash 996 pts/0 00:00:00 man 1008 pts/0 00:00:00 sh 1010 pts/0 00:00:00 less 1142 pts/0 00:00:00 cat 1152 pts/0 00:00:00 cat 1181 pts/0 00:00:00 man 1183 pts/0 00:00:00 sh 1185 pts/0 00:00:00 less # * Nén. tùy ch n này s không khôi ph c l i tên file g c cũng như th i gian th c hi n vi c nén. nó h u ích trên h th ng có s gi i h n v dài tên file hay khi th i i m nén b m t sau khi chuy n i file. B t kỳ ph n m r ng nào cũng có th ư c ưa ra. --best : i u ch nh t c c a vi c nén b ng cách s d ng d u #. --verbose : hi n th ph n trăm thu g n i v i m i file ư c nén ho c gi i nén -#.-n.

L nh zcat tương ương v i uncompress -c. Các file ư c nén có th ư c khôi ph c l i nh vi c s d ng l nh uncompress. L nh compress ch s d ng cho các file thông thư ng. 8 9 .uncompress [tùy-ch n] [<file>] zcat [tùy-ch n] [<file>] L nh compress làm gi m kích thư c c a file và khi s d ng l nh này. ngư i dùng s ư c nh c khi các file ã th c s t n t i và có th b ghi è. các thông tin khác liên quan n file không thay i. file g c s b thay th b i file nén v i ph n m r ng là . -v : hi n th t l gi m kích thư c cho m i file ư c nén. compress s th c hi n vi c nén các thư m c.Z. nó s b qua liên k t tư ng trưng. không có file nào b thay i. N u không có tên file nào ư c ch ra. N u m t file có nhi u liên k t c ng. zcat th c hi n vi c gi i nén ho c là các file ư c li t kê trong dòng l nh ho c t thi t b vào chu n ưa ra d li u ư c gi i nén trên thi t b ra chu n. compress b qua vi c nén file ó tr khi có tùy ch n -f. -r : n u tùy ch n này ư c ưa ra. thông tin t thi t b vào chu n s ư c nén và g i ra thi t b ra chu n. Các tùy ch n: -f : n u tùy ch n này không ư c ưa ra và compress ch y trong ch n n trư c. -c : tùy ch n này s th c hi n vi c nén ho c gi i nén r i ưa ra thi t b ra chu n. Trong m t vài trư ng h p.

Ph n text c a chương trình. Các câu l nh trong text ch thao tác t i vùng data. data và stack: Vùng text c a quá trình tương ng v i file chương trình. Tr quá trình 0 không có cha. h th ng th c hi n theo ba m c: m c ngư i dùng. Các chương trình này ch y (ph n l nh c a chúng th c hi n) 9 0 . stack. Quá trình ư c t o khi kh i ng h i u hành là quá trình 0.1 Quá trình trong UNIX 4. thông qua l i g i h th ng exec. Text là thành ph n câu l nh th c hi n. Vùng stack ư c nhân t ng t o v i kích thư c theo s linh ho t c a nhân.2.1. M i quá trình khác u ư c t o ra t m t quá trình khác thông qua l i g i h th ng fork: quá trình th c hi n l i g i h th ng fork ư c g i là quá trình cha. data là thành ph n d li u còn stack là thành ph n thông tin t m th i ho t ng theo cơ ch LIFO. Các quá trình ư c h th ng phân bi t b ng s hi u c a quá trình. còn quá trình ư c t o ra theo l i g i fork ư c g i là quá trình con. không truy nh p ư c t i data và stack c a các quá trình khác. vi t t t là PID (Proccess Index). QU N TR QUÁ TRÌNH 4.CHƯƠNG 4. data. M t s b ng thông tin liên quan n t file. Quá trình bao g m ba thành ph n là text. Sơ b v quá trình Quá trình là i tư ng trong h th ng tương ng v i m t phiên th c hi n c a m t chương trình. K t qu d ch chương trình ngu n s t o ra file chương trình ích g m m t s ph n như sau (lưu tr trên v t d n ngoài): Ph n u file mô t m t s c tính c a file chương trình (tương t File header c a file chương trình trong MS-DOS). • M c ngư i dùng (user level): g m có chương trình ngư i dùng và chương trình trong các thư vi n.v. Vùng data c a quá trình tương ng v i các giá tr ư c quy nh trong file chương trình. m c nhân và m c ph n c ng. 4. Ph n stach bao g m các stack frame (khung) lôgic: m i satck frame ư c t vào khi g i m t hàm và l y ra khi quay v . M i stack frame ch a tham sô c a hàm. stack tương ng c a quá trình.1. nhân s t i n i dung c a file chương trình vào b nh trong theo các vùng text. Tương ng trong stack có m t stack pointer liên quan n chi u sâu c a stack. và nhân s nh v không gian i v i stack theo yêu c u. Sơ b c u trúc i u khi n c a UNIX Theo phân c p. ngo i tr các vùng d li u dùng chung. Khi có l i g i fork. Các giá tr m u v vi c phân ph i b nh i v i vùng data c a chương trình.1. các bi n a phương v. m i quá trình có trong h th ng u có m t cha và m t cha có th có nhi u con. Trong mã chương trình có các dòng l nh qu n lý hình tr ng c a stack.

M c nhân là m c tr ng tâm nh t c a h i u hành Linux-UNIX.File Subsystem). Hai thành ph n cơ b n nh t là H th ng i u khi n File và H th ng con i u khi n quá trình. các l i g i h th ng (system calls).• trong tr ng thái ngư i dùng c a quá trình. Ch y m c nhân là nh ng chương trình c a h i u hành thu c h th ng con i u khi n File (h th ng con làm vi c v i File . các chương trình i u khi n thi t b (Device Drivers). Hình v dư i ây cho sơ b c u trúc i u khi n trong UNIX: Chương trình ngư i dùng M c ngư i dùng M c nhân Thư vi n m u Gíao di n theo các l i g i h th ng H th ng con i u khi n File Cache b m H th ng con i u khi n quá trình (bao g m 3 thành ph n con bên ph i B truy n thông liên quá trình B l p l ch Thành ph n i u ph i b nh Ký t Kh i i u khi n thi t b  I U KHI N PH N C NG M c nhân ph n M c c ng PH N C NG C u trúc c a Nhân và các m c quá trình 9 1 . h th ng con i u khi n quá trình (Proccess Control System). Cache b m (Buffer cache) và các chương trình i u khi n ph n c ng (Hard Control). Chương trình ngư i dùng thao tác v i nhân ho c tr c ti p ho c gián ti p nh g i thư vi n nh các l i g i h th ng.

M t s l i g i h th ng cho kh i i u khi n quá trình: fork: T o quá trình m i.1. Vi c truy nh p t i File nh hai cách th c: truy nh p tr c ti p v i File ho c thông qua buffer cache. argv). main (argc. Chúng ta xem xét ví d sau: #include <fenth. Các buffer cache lưu tr d li u t m th i theo t ng kh i. a s các thu t toán v các l i g i h th ng liên quan n File và các hàm chương trình con m c th p ã ư c trình bày trong chương 2. fdnew. exec(pid) exit: Cho k t thúc quá trình ang t n t i. int version. Các quá trình tương tác v i H th ng con i u khi n File nh các l i g i h th ng (các l i g i h th ng File m c cao). B i u khi n ph n c ng (hardware control) có ch c năng cho phép ng t và tương tác thông tin v i máy. Các chương trình x lý ng t là hàm riêng bi t trong nhân mà không ph i là m t quá trình. Nhân thao tác tr c ti p v i kh i i u khi n thi t b truy nh p tr c ti p d li u trong File không qua thi t b ph : truy nh p theo ký t . i u khi n truy c p File và tìm ki m d li u v. 9 2 . Các h th ng con trong nhân H th ng con i u khi n File có nhi m v qu n lý h th ng File. Các quá trình có ưu tiên và b l p l ch ch n quá trình có ưu tiên cao nh t. cung c p vùng nh r i ĩa cho File. int argc. H th ng con i u khi n File và H th ng con i u khi n quá trình tương tác v i nhau khi file ư c t i vào b nh trong và cho th c hi n. char *argv[]. | int fdold. B truy n thông liên quá trình th c hi n vi c ng b hóa các quá trình liên quan nhau. qu n lý b nh và l p l ch th c hi n i v i các quá trình ang t n t i. Các thi t b như ĩa.h> char buffer[2048]. signal: i u khi n các hi n tư ng b t thư ng trong quá trình H th ng con i u khi n quá trình bao g m 3 thành ph n sau ây: Thành ph n i u ph i b nh có nhi m v qu n lý. i u khi n c p phát b nh . brk: i u khi n kích thư c b nh c p phát cho quá trình. H th ng con i u khi n quá trình ch u trách nhi m ng b hóa s tương tác liên quá trình.v.3. L i g i hàm này có d ng pid=fork() exec: Cho th c hi n quá trình ang t n t i. B l p l ch (schelduler) có nhi m v i u ph i CPU cho các quá trình. Stack trong quá trình M i quá trình th c hi n ư c mode nhân và mode ngư i dùng vì v y phân chia hai lo i stack nhân và stack ngư i dùng. thi t b u cu i có th ng t CPU khi ang th c hi n quá trình. Nhân vào-ra d li u thông qua các kh i trung gian và nh thi t b nh th c p: truy nh p d li u theo kh i.4. M t s trang b lo i b khi c p phát b nh cho quá trình.

exit(1). while (count = read(old. Trong ví d trên. | int count. | c */ Trong chương trình trên. còn các tham s old và new và bi n count trong hàm copy xu t hi n m i khi copy ư c g i. new. | copy (old.fdnew). new) int old. Kh i t o giá tr ban u cho bi n version và dành vùng nh cho bi n m ng buffer.if (argc != 3) | printf(' c n 2 i s i v i chương trình sao file!'). exit(0).0666).count). fdnew trong chương trình main trong stack khi main ư c g i (m t l n i v i m i chương trình). O_RDONLY).buffer. /* m file ngu n ch if (fdold == -1) | printf (' Không th m file &cs\n'. exit(1) | fdold = open (argv[1]. | fdnew =creat (argv[2]. /*m File ich rw cho m i ngư i */ if (fdnew ==-1) | printf('Không th kh i t o file &cs\n'. Stack ngư i dùng Bi n c c b không có a ch frame 2 a ch quay l i sau khi write Các tham s b m c a write buffer m i frame 3 Các bi n c c count call write () b a ch c a Frame 1 Stack nhân Hư ng tăng c a stack Frame 3 call Bi n c c b func2() a ch c a Frame 1 9 3 . các tham s argc.argv[2].sizeof(buffer))>0) write(buffer.argv[1]). exit(1). argv và các bi n fdold. | copy(fdold. mã l nh (g i là ph n text) c a file ư c sinh ra t các hàm main và copy.

.Trư ng liên quan n tr ng thái ngưng c a quá trình (theo l i g i hàm sleep) a ch c a vùng s d ng tương ng v i quá trình.Các gi i h n kích thư c file và quá trình.Các thông tin tương ng ư c trình bày trong PCB.B m th i gian ch y m c nhân và m c ngư i dùng. .Ch s thành ph n tương ng v i quá trình trong b ng các quá trình: a ch c a kh i PCB tương ng.Mô t v các file ang m ng v i quá trình. 4. và các d li u khác i v i vi c th c hi n hàm trong mode ngư i dùng. có tác d ng khi quá trình ang th c hi n: .ra. . • Vùng s d ng (U-area) ch a các thông tin riêng. . các tham s .Các m c cho phép th c hi n i v i quá trình. .Tr ng thái c a quá trình. các a ch liên k t v. .4. M i thành ph n bao g m m t s trư ng sau ây (m i thành ph n ây chính là m t PCB): . Sơ b v i u khi n quá trình Nhân s d ng 4 c u trúc d li u sau ây truy nh p n quá trình: • B ng các quá trình. tương ng v i m i quá trình ang t n t i trong h th ng là m t thành ph n. bi n c c b .Ch s h u c a quá trình. .Thư m c hi n t i và thư m c g c hi n t i: môi trư ng c a quá trình. Stack ngư i dùng ch a các i s . .a ch quay v sau l i g i a ch quay v sau l i g i copy func2 Các tham s old Tham s c a func2 nhân c a copy new frame 2 Frame 2 Bi n c c b fdold call copy () call Bi n c c b fdnew func2() a ch c a Frame 0 a ch c a Frame 0 a ch quay v sau l i g i a ch quay v sau l i g i main func1 Tham s c a argc Tham s c a func1 nhân main Frame 1 argv Frame 1 call main () call func1() Các stack cho m t quá trình Quá trình trong UNIX ư c th c hi n theo m t trong hai mode: mode nhân hay mode ngư i dùng và tương ng v i 2 mode này.M t s thông tin khác • Các b ng nh v a ch b nh i v i m i quá trình.Tham s lưu tr dung lư ng d li u di chuy n trong vào .Các giá tr tr v và mã l i (n u có) i v i l i g i h th ng hi n t i. . liên quan n th c hi n các hàm theo mode nhân. .1. quá trình s d ng stack riêng bi t i v i m i mode. 9 4 . bi n c c b .v. Stach nhân ch a các i s . .

V i l i g i exec: Nhân c p phát các vùng b nh th c cho các vùng text. Th c hi n m c ngư i dùng (1) Hoàn thi n (9) Th c hi n m c nhân (2) S n sàng sang m c ngư i dùng (7) Ch i thi u tài nguyên (4) S n sàng th c hi n (3) i b nh th c hi n (5) Ch i b nh ngoài (6) Quá trình phát sinh (8) 9 5 .B ng ch a vùng b nh chung: phân ho ch b nh . c tính m i vùng theo phân ho ch: ch a text.V i l i g i exit: Nhân s gi i phóng các vùng b nh liên quan n quá trình. cho phép các quá trình chia x vùng b nh .1. . Nhân x lý v i các l i g i h th ng như sau: . B ng các vùng nh cho m t quá trình U-area B ng các vùng nh (b ng các trang o) Cá c c u trú c d li u i u khi n quá trìn h 4. • B nh trong (các trang th c) 5. data và stack. Tr ng thái và chuy n d ch tr ng thái Sơ bi u di n các tr ng thái và vi c chuy n tr ng thái trong UNIX ư c trình bày trong hình dư i ây (S hi u tr ng thái quá trình xem trong hình v ). Sơ b v m i liên k t c a các c u trúc d li u trên ư c mô t như hình v phía sau. data ho c vùng b nh dùng chung v. .v.V i l i g i fork: Nhân sao vùng a ch c a quá trình cũ.

S ngưng ho t ng và ho t ng tr l i c a quá trình M t quá trình trong tr ng thái th c hi n m c nhân có kh năng chuy n sang tr ng thái ngưng theo l i g i hàm sleep. li t kê các file v i l nh ls.6. quá trình có th b treo b i m t quá trình ngoài 9 6 . Cung chuy n t tr ng thái (2) vào ngay tr ng thái (2) x y ra khi quá trình tr ng thái th c hi n m c nhân. Có th có nhi u quá trình cùng ch y m t lúc. t c là quá trình t m d ng không ho t ng (20 giây ho c ít hơn) (traced or stopped) tr ng thái d ng. Sơ b v l nh i v i quá trình Khi m m t trang man.1. trong trư ng h p khác. Sau khi s ki n x y ra. Ví d dòng l nh ls -l | sort | more s kh i t o ba quá trình: ls. b t c chương trình nào ang ch y u ư c coi là m t quá trình. Tr ng thái (3) th hi n quá trình ã s n sáng th c hi n. quá trình i t i tr ng thái (2) khi g p l i g i h th ng ho c hi n tư ng ng t x y ra. Trong Linux. quá trình t tr ng thái ngưng chuy n sang tr ng thái s n sàng có th ư c c p phát CPU ch y. T tr ng thái (1) t i tr ng thái (7) khi h t lư ng t th i gian. N u l n u phát sinh.v. 4. t c là quá trình có th th c hi n ư c nhưng ch n lư t th c hi n vì m t quá trình khác ang có CPU. 4. Tr ng thái (4) là tr ng thái ch i trong b nh còn tr ng thái (6) th hi n vi c ch i trong b nh ngoài. quá trình khác th c hi n l i g i exit v. Tr ng thái ngưng x y ra trong m t s tình hu ng ch im t s ki n: hoàn thành vi c vào-ra.7. Ký hi u D R S T Z Ý nghĩa (uninterruptible sleep) tr ng thái này quá trình b treo và không th ch y l i nó b ng m t tín hi u. Trong tr ng thái th c hi n m c ngư i dùng (1). các thành ph n c a nó ã b nh trong ch i CPU th c hi n.1. nhân h th ng g i các hàm x lý ng t tương ng. Quá trình có th tr i qua nhi u tr ng thái khác nhau và t i m t th i i m m t quá trình rơi vào m t trong các tr ng thái ó.Sơ chuy n tr ng thái quá trình Khi quá trình ư c phát sinh nó tr ng thái (8). (sleeping) tr ng thái t m d ng. ch y trình so n th o vi hay ch y b t kỳ m t l nh nào trong Linux thì i u ó có nghĩa là ang kh i t o m t ho c nhi u quá trình. sort và more. B ng dư i ây gi i thi u các tr ng thái cơ b n c a quá trình trong Linux. Vi c th c hi n ti p theo tùy thu c vào tr ng thái trư c ó c a nó. tùy thu c vào tình tr ng b nh quá trình ư c phân ph i b nh trong (3) hay b nh ngoài (5). (runnable) tr ng thái s n sàng th c hi n. nó c n i t i th c hi n m c nhân hoàn thi n công vi c l i g i fork s t tr ng thái (3) sang tr ng thái (1). t tr ng thái (3) nó i t i tr ng thái ch d i CPU m c ngư i dùng (7).

ngư i dùng ang xem trang man c a l nh sort. K t qu c a quá trình trên hi n th như sau: # man sort | more SORT(1) FSF SORT(1) NAME sort . Sau khi th xong. nhưng nó v n ư c tham chi u trong h th ng không có các trang thư ng trú quá trình có m c ưu tiên cao hơn quá trình có m c ưu tiên th p hơn có các trang khóa bên trong b nh 4. [Files].2. L nh fg và l nh bg Linux cho phép ngư i dùng s d ng t h p phím CTRL+z d ng m t quá trình và kh i ng l i quá trình ó b ng cách gõ l nh fg./src/sort [OPTION] .. nhìn xu ng cu i th y có tùy ch n -b..end it *before* POS2 obsoles-cent)field numbers and character offsets are num-bered starting with zero(contrast with the -k option) -b ignore leading blanks in sort fields or keys --More-(CTRL+z) [1]+ Stopped man sort | more # ls -s | sort -b | head -4 1 Archives/ 1 InfoWorld/ 1 Mail/ 1 News/ 1 OWL/ # fg man sort | more --More-- 9 7 ... DESCRIPTION Write sorted concatenation of all FILE(s) to standard out-put.. hãy gõ fg ti p t c xem trang man c a l nh sort.2.1. +POS1 [-POS2] start a key at POS1. cho phép ngư i dùng gõ CTRL+z t m d ng l nh man và gõ l nh th tùy ch n -b. Ví d . Thay cho vi c ánh q thoát và sau ó ch y l i l nh man.W < N L (zombie process) quá trình ã k t thúc th c hi n.sort lines of text Files SYNOPSIS . Các l nh cơ b n 4. mu n th tùy ch n này ng th i v n mu n xem trang man. L nh fg (foreground) tham chi u n các chương trình mà màn hình cũng như bàn phím ang làm vi c v i chúng.

Khi chương trình c n ưa thông tin ra màn hình ho c nh n thông tin t bàn phím.dùng ký hi u &. l nh: # vi & [6] 920 9 8 . khi quá trình n n k t thúc thì h th ng s g i thông báo t i ngư i dùng. n u ch kho ng 30 ho c 40 giây sau r i gõ Enter l n n a. nhưng trên h u h t các h th ng. l nh sau ây th c hi n vi c tìm ki m file thu1 trong ch n n: # find -name thu1 & [5] 918 trong ch này. N uc chuy n m t chương trình vào ch n n m c dù nó có các thông tin c n xu t ho c nh p t các thi t b vào ra chu n thì h th ng s ưa ra thông báo l i dư i d ng sau: Stopped (tty input/output) tên chương trình. cách th c gõ phím CTRL+z t m d ng m t quá trình ã ư c gi i thi u. màn hình hi n th thông báo hoàn thành chương trình như sau: # [5] Done find -name thu1 # Gi s chương trình chưa hoàn thành và mu n chuy n nó lên ch sau: # fg 5 find -name thu1 . ch c n thêm ký hi u '&' vào cu i l nh. hãy gõ l nh chương trình ã hoàn thành và hi n th thông báo r ng file thu1 n m thư m c g c. Thông thư ng s ưa ra m t thông báo l i n u ngư i dùng c chuy n m t chương trình vào ch n n khi mà chương trình ó c n ph i xu t ho c nh p thông tin t thi t b vào ra chu n. Trong m t s h th ng. Vì gõ Enter khi quá trình chưa th c hi n xong nên trên màn hình ch hi n th s th t c a chương trình và ch s quá trình.s d ng l nh bg . N u m t quá trình ho t ng mà không ưa ra thông tin nào trên màn hình và không c n nh n b t kỳ thông tin u vào nào. Cũng có th s d ng ch s i u khi n công vi c (job control) làm vi c v i chương trình nào mu n. và chuy n m t chương trình vào trong ch n n .trong khi các chương trình khác ang ch y. s th t c a chương trình là [5]. thì có th s d ng l nh bg ưa nó vào trong ch n n ( ch này nó s ti p t c ch y cho n khi k t thúc).Trong ph n trư c. chương trình ó ư c ánh s th t ( ư c bao b i d u ngo c vuông []). Linux còn ngư i dùng cách th c ch y m t chương trình dư i ch n n (background) . Khi ch y m t chương trình trong ch n n./thu1 n i. có m t chương trình (ho c m t l nh ng) t ng ch y trong ch n n. khi quá trình trên n n hoàn thành thì h th ng s ch cho n khi ngư i dùng gõ phím Enter thì m i hi n th d u nh c l nh m i kèm theo thông báo hoàn thành quá trình (thư ng thì m t quá trình hoàn thành sau kho ng 20 giây). Ví d . Ví d . Sau ó có th s d ng l nh fg + s th t c a chương trình ưa chương trình tr l i ch n i và ti p t c ch y. theo sau là ch s c a quá trình. h th ng s t ng d ng chương trình và thông báo cho ngư i dùng. ch s quá trình tương ng v i l nh find là 918.

TTY . Cách ph c t p hơn là s d ng l nh ps.th i gian ch y quá trình. Cú pháp l nh ps: ps [tùy-ch n] L nh ps có m t lư ng quá phong phú các tùy ch n ư c chia ra làm nhi u lo i. TIME . 9 9 . Dư i ây là m t s các tùy ch n hay dùng.2. -p : hi n th các quá trình theo ch s c a quá trình. -U : hi n th các quá trình theo tên ho c ch s c a ngư i dùng th c s (ngư i dùng kh i ng quá trình). Dòng thông báo l i Stopped (tty intput) vi cũng x y ra khi chương trình vi c n nh n thông tin.2.l nh kh i t o quá trình). -s : hi n th các quá trình thu c v m t phiên làm vi c.# nh n Enter # [6] + Stopped (tty output) vi # L nh trên ch y chương trình vi trong ch n n. -t : hi n th các quá trình thu c m t tr m cu i. -r : ch hi n th quá trình ang ư c ch y. Các tùy ch n ơn gi n: -A. tuy nhiên l nh g p ph i l i vì ây là chương trình òi h i hi n th các thông tin ra màn hình (output). CMD . -T : ch n hi n th các quá trình trên tr m cu i ang ch y. ó là l nh jobs s cho bi t các quá trình nào ã d ng ho c là ư c ch y trong ch n n. -e : ch n hi n th t t c các quá trình.ch s c a quá trình. 4. -a : ch n hi n th t t c các quá trình trên m t tr m cu i. bao g m c các quá trình c a nh ng ngư i dùng khác.tên thi t b u cu i trên ó quá trình ư c th c hi n. Cách d hơn. L nh này cho bi t thông tin y nh t v các quá trình ang ch y trên h th ng. Hi n th các quá trình ang ch y v i l nh ps Linux cung c p cho ngư i dùng hai cách th c nh n bi t có nh ng chương trình nào ang ch y trong h th ng. Ví d : # ps PID 7813 7908 TTY TIME CMD pts/0 00:00:00 bash pts/0 00:00:00 ps # (PID . Ch n theo danh sách -C : ch n hi n th các quá trình theo tên l nh. -G : hi n th các quá trình theo ch s nhóm ngư i dùng. -u : hi n th các quá trình theo tên và ch s c a ngư i dùng hi u qu .

tên thi t b u cu i.th i gian th c hi n quá trình. NI. mu n xem các thông tin như tên ngư i dùng.l nh kh i t o quá trình -l : hi n th y các thông tin v quá trình v i các trư ng F.2.th i gian kh i t o quá trình. s d ng l nh kill h y b m t quá trình.ch s quá trình. SZ. C . Cú pháp l nh: kill [tùy-ch n] <ch -s -c a-ti n-trình> kill -l [tín hi u] L nh kill s g i m t tín hi u n quá trình ư c ch ra.ch s quá trình kh i t o ra quá trình. i u quan tr ng nh t khi s d ng l nh kill là ph i xác nh ư c ch s c a quá trình mà chúng ta mu n h y. CMD -o xâu-ch n : hi n th các thông tin v quá trình theo d ng do ngư i dùng t ch n thông qua xâu-ch n các kí hi u i u khi n hi n th có các d ng như sau: %C. S. TIME . PID. UID. hãy gõ l nh: # ps -o '%U %G %p %P %y %x %c' USER GROUP PID PPID TTY TIME COMMAND root root 1929 1927 pts/1 00:00:00 bash root root 2279 1929 pts/1 00:00:00 ps 4.3. -s : xác nh tín hi u ư c g i. WCHAN. TIME. PPID. STIME . CMD .tên thi t b u cu i trên ó quá trình ư c ch y. H y quá trình v i l nh kill Trong m t s trư ng h p. %cpu % CPU ư c s d ng cho quá trình %mem % b nh ư c s d ng ch y quá trình %G tên nhóm ngư i dùng %P ch s c a quá trình cha kh i ng ra quá trình con %U nh danh ngư i dùng %c l nh t o ra quá trình %p ch s c a quá trình %x th i gian ch y quá trình %y thi t b u cu i trên ó quá trình ư c th c hi n Ví d . TTY. th i gian ch y quá trình. Dư i ây là m t s tín hi u hay dùng: S Tên Ý nghĩa 1 SIGHUP (hang up) ây là tín hi u ư c g i n t t c các quá trình ang ch y trư c khi logout kh i h th ng 2 SIGINT (interrupt) ây là tín hi u ư c g i khi nh n 1 0 . ADDR.ch s ngư i dùng. C. l nh kh i t o quá trình. PID . ch s quá trình. Tín hi u có th là s ho c tên c a tín hi u. PRI. N u không ch ra m t tín hi u nào thì ng m nh là tín hi u TERM s ư c g i..Thi t t khuôn d ng ư c ưa ra c a các quá trình -f : hi n th thông tin v quá trình v i các trư ng sau UID . TTY . tên nhóm. ch s quá trình kh i t o ra quá trình. PPID .

CTRL+c SIGKILL (kill) tín hi u này s d ng quá trình ngay l p t c SIGTERM tín hi u này yêu c u d ng quá trình ngay l p t c, nhưng cho phép chương trình xóa các file t m. -p : l nh kill s ch ưa ra ch s c a quá trình mà không g i m t tín hi u nào. -l : hi n th danh sách các tín hi u mà l nh kill có th g i n các quá trình (các tín hi u này có trong file /usr/include/Linux/signal.h) Ví d , # ps 9 15
PID TTY TIME CMD 2240 2276 2277 2280 2281 2285 2289 2291 2292 2293 2298 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 pts/2 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 bash man more sh sh less man sh gunzip less ps

# kill 2277
PID TTY TIME CMD 2240 pts/2 00:00:00 2276 pts/2 00:00:00 2280 pts/2 00:00:00 2281 pts/2 00:00:00 2285 pts/2 00:00:00 2289 pts/2 00:00:00 2291 pts/2 00:00:00 2292 pts/2 00:00:00 2293 pts/2 00:00:00 2298 pts/2 00:00:00

bash man sh sh less man sh gunzip less ps

4.2.4. Cho máy ng ng ho t ng m t th i gian v i l nh sleep N u mu n cho máy ngh m t th i gian mà không mu n t t vì ng i kh i ng l i thì c n dùng l nh sleep. Cú pháp: sleep [tùy-ch n] NUMBER[SUFFIXƯ] NUMBER: s giây(s) ng ng ho t ng. SUFFIX : có th là giây(s) ho c phút(m) ho c gi ho c ngày(d) 1 0

Các tùy ch n: --help : hi n th tr giúp và thoát --version : hi n th thông tin v phiên b n và thoát 4.2.5. Xem cây quá trình v i l nh pstree ã bi t l nh xem các quá trình ang ch y trên h th ng, tuy nhiên trong Linux còn có m t l nh cho phép có th nhìn th y m c phân c p c a các quá trình, ó là l nh pstree. Cú pháp l nh: pstree [tùy-ch n] [pid | ngư i-dùng] L nh pstree s hi n th các quá trình ang ch y dư i d ng cây quá trình. G c c a cây quá trình thư ng là init. N u ưa ra tên c a m t ngư i dùng thì cây c a các quá trình do ngư i dùng ó s h u s ư c ưa ra. pstree thư ng g p các nhánh quá trình trùng nhau vào trong d u ngo c vuông, ví d : init -+-getty |-getty |-getty |-getty thành init ---4*[getty] -a : ch ra tham s dòng l nh. N u dòng l nh c a m t quá trình ư c tráo i ra bên ngoài, nó ư c ưa vào trong d u ngo c ơn. -c : không th thu g n các cây con ng nh t. M c nh, các cây con s ư c thu g n khi có th -h : hi n th quá trình hi n th i và "t tiên" c a nó v i màu sáng tr ng -H : gi ng như tùy ch n -h, nhưng quá trình con c a quá trình hi n th i không có màu sáng tr ng -l : hi n th dòng dài. -n : s p x p các quá trình cùng m t t tiên theo ch s quá trình thay cho s p x p theo tên Ví d , # pstree
init-+-apmd |-atd |-automount |-crond |-enlightenment |-gdm-+-X | `-gdm---gnome-session |-gen_util_applet |-gmc |-gnome-name-serv |-gnome-smproxy |-gnomepager_appl |-gpm |-identd---identd---3*[identd]

1 0

|-inetd |-kflushd |-klogd |-kpiod |-kswapd |-kupdate |-lockd---rpciod |-login---bash---mc-+-bash-+-cat | | |-passwd | | `-pstree | `-cons.saver |-lpd |-mdrecoveryd |-5*[mingetty] |-panel |-portmap |-rpc.statd |-sendmail |-syslogd `-xfs

4.2.6. L nh thi t t l i ưu tiên c a quá trình nice và l nh renice Ngoài các l nh xem và h y b quá trình, trong Linux còn có hai l nh liên quan n ưu tiên c a quá trình, ó là l nh nice và l nh renice. ch y m t chương trình v i ưu tiên nh trư c, hãy s d ng l nh nice. Cú pháp l nh: nice [tùy-ch n] [l nh [tham-s ]... ] L nh nice s ch y m t chương trình (l nh) theo ưu tiên ã s p x p. N u không có l nh, m c ưu tiên hi n t i s hi n th . ưu tiên ư c s p x p t -20 (m c ưu tiên cao nh t) n 19 (m c ưu tiên th p nh t). -ADJUST : tăng ưu tiên theo ADJUST u tiên --help : hi n th trang tr giúp và thoát thay i ưu tiên c a m t quá trình ang ch y, hãy s d ng l nh renice. Cú pháp l nh: renice < -ưu-tiên> [tùy-ch n] L nh renice s thay i m c ưu tiên c a m t ho c nhi u quá trình ang ch y. -g : thay i quy n ưu tiên theo nhóm ngư i dùng -p : thay i quy n ưu tiên theo ch s c a quá trình -u : thay i quy n ưu tiên theo tên ngư i dùng Ví d : # renice +1 987 -u daemon root -p 32

1 0

l nh trên s thay i m c ưu tiên c a quá trình có ch s là 987 và 32, và t t c các quá trình do ngư i dùng daemon và root s h u.

1 0

N i dung chương này gi i thi u các l nh t o m t ngư i dùng m i.2. m i ngư i s d ng ư c g n v i tên duy nh t ( ã ư c ăng ký) và tên ó ư c s d ng ăng nh p. Nhân h th ng qu n lý ngư i dùng theo ch s . Tuy nhiên m t ngư i dùng th c s có th có nhi u tên ăng nh p khác nhau. các tài nguyên. vì vi c qu n lý theo ch s s d dàng và nhanh thông qua m t cơ s d li u lưu tr các thông tin v ngư i dùng. c n phân bi t ngư i dùng khác nhau do quy n s h u các tài nguyên trong h th ng. ăng nh p root s ư c t ng t o ra. M i truy c p h th ng Linux u thông qua tài kho n ngư i dùng. ngư i qu n tr ). Vi c thêm m t ngư i dùng m i ch có th th c hi n ư c n u ăng nh p v i tư cách là siêu ngư i dùng. và các trư ng này ư c ngăn cách nhau b i d u ':'. thay i thu c tính c a m t ngư i dùng cũng như xóa b m t ngư i dùng.1 File /etc/passwd Danh sách ngư i dùng cũng như các thông tin tương /etc/passwd. T t nh t ch nên ăng nh p root khi th c s c n thi t. i u này v n r t quan tr ng th m chí c khi máy tính ch có m t ngư i s d ng t i m t th i i m. ch có th th c hi n ư c các l nh trên n u có quy n c a m t siêu ngư i dùng. 5. trong h i u hành a ngư i dùng. và hãy ăng nh p vào h th ng v i tư cách là m t ngư i dùng bình thư ng.CHƯƠNG 5. c n ph i thêm thông tin v ngư i dùng ó vào trong cơ s d li u ngư i dùng. 5. vì khi ăng nh p v i tư cách ngư i dùng root. t o m t ngư i dùng m i. quá trình c a riêng h . có th làm b t c i u gì mu n trên h th ng. ý nghĩa c a các trư ng thông tin ó l n lư t như sau: 1 0 .2 Các l nh cơ b n qu n lý ngư i dùng Ngư i dùng ư c qu n lý thông qua tên ngư i dùng (th c ra là ch s ngư i dùng). và t o m t thư m c cá nhân cho riêng ngư i dùng ó.1 Tài kho n ngư i dùng Như ã bi t. ch ng h n như. và các thông tin thu c v ngư i dùng ó. Ví d dư i ây là n i dung c a file /etc/passwd: ng ư c lưu tr trong file mail:x:8:12:mail:/var/spool/mail: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: bien:x:500:0:Nguyen Thanh Bien:/home/bien:/bin/bash sangnm:x:17:100:Nguyen Minh Sang:/home/sangnm:/bin/bash lan:x:501:0:Lan GNU:/home/lan:/bin/bash M i dòng trong file tương ng v i b y trư ng thông tin c a m t ngư i dùng. Vì th . ăng nh p này ư c xem là thu c v siêu ngư i dùng (ngư i dùng c p cao. i u này r t c n thi t thi t l p các bi n môi trư ng phù h p cho ngư i dùng. L nh chính thêm ngư i dùng trong h th ng Linux là useradd (ho c adduser). QU N LÝ TÀI KHO N NGƯ I DÙNG Chương này cung c p m t s công c h u ích trong Linux ngư i dùng trên h th ng. m i ngư i dùng có quy n h n v i file. Lưu ý. qu n lý các tài kho n 5. Khi cài t h i u hành Linux. Tài kho n ngư i dùng có th hi u là t t c các file.

S nhóm ng m nh là 1. hay các file kh i t o ư c sao chép.// -p. 5. -m : v i tùy ch n này.2 Thêm ngư i dùng v i l nh useradd Siêu ngư i dùng s d ng l nh useradd t o m t ngư i dùng m i ho c c p nh t ng m nh các thông tin v ngư i dùng. -e. giá tr này ph i là duy nh t.'. -n : ng m nh khi thêm ngư i dùng. group : danh sách các nhóm ph mà ngư i dùng cũng là thành viên thu c các nhóm ó. thư m c cá nhân s ư c t o. initial_group : tùy ch n này xác nh tên ho c s kh i t o ăng nh p nhóm ngư i dùng. Cú pháp l nh: useradd [tùy-ch n] <tên-ngư i-dùng> useradd -D [tùy-ch n] N u không có tùy ch n -D.// -s. home_dir : t o thư m c ăng nh p cho ngư i dùng. -f. N u =0 thì h y b tài kho n ngư i dùng ngay sau khi m t kh u h t hi u l c. comment : so n th o trư ng thông tin v ngư i dùng. thư m c cá nhân c a ngư i dùng s ư c t o n u nó chưa t n t i. -M : không t o thư m c ngư i dùng. Tên nhóm ph i t n t i. Tùy ch n này s lo i b s ng m nh trên. =-1 thì ngư c l i (m c nh là -1). -d. expire_date : thi t t th i gian (YYYY-MM-DD) tài kho n ngư i dùng s b h y b . m t nhóm cùng tên v i ngư i dùng s ư c t o. và s c a nhóm ph i tham chi u n m t nhóm ã t n t i. ây chính là lý do vì sao m t kh u ăng nh p c a ngư i dùng không hi n th trong n i dung file. Các tùy ch n như sau: -c.2. -u.Tên ngư i dùng (username) M t kh u ngư i dùng (passwd . -G. -g.ư c mã hóa) Ch s ngư i dùng (user id) Các ch s nhóm ngư i dùng (group id) Tên y ho c các thông tin khác v tài kho n ngư i dùng (comment) Thư m c ngư i dùng ăng nh p Shell ăng nh p (chương trình ch y lúc ăng nh p) B t kỳ ngư i dùng nào trên h th ng u có th c ư c n i dung file /etc/passwd. Thay i các giá tr ng m nh 1 0 . l nh useradd s t o m t tài kho n ngư i dùng m i s d ng các giá tr ư c ch ra trên dòng l nh và các giá tr m c nh c a h th ng. Tài kho n ngư i dùng m i s ư c nh p vào trong các file h th ng. inactive_days : tùy ch n này xác nh s ngày trư c khi m t kh u c a ngư i dùng h t hi u l c khi tài kho n b h y b . m c nh ngư i dùng s thu c vào nhóm kh i t o. và có th ăng nh p v i tư cách ngư i dùng khác n u h bi t ư c m t kh u. i u này tùy thu c vào các tùy ch n ư c ưa ra. M i nhóm s ư c ngăn cách v i nhóm khác b i d u '. uid : thi t t ch s ngư i dùng. passwd : t o m t kh u ăng nh p cho ngư i dùng. shell : thi t l p shell ăng nh p cho ngư i dùng.

-s.Khi tùy ch n -D ư c s d ng. ch s nhóm là 100.go-w /home/new Thi t l p m t kh u c a ngư i dùng v i l nh passwd # passwd new passwd: Sau khi thi t l p m t kh u cho ngư i dùng bư c cu i cùng. default_shell : thay i shell ăng nh p. vipw s ki m tra s ng nh t trên file b thay i. default_inactive : xác nh th i i m h t hi u l c c a m t kh u ăng nh p khi tài kho n ngư i dùng b xóa b . default_expire_date : thay i th i h n h t giá tr c a tài kho n ngư i dùng. Hãy c n th n trong vi c so n th o tránh nh m l n. l nh useradd s b qua các giá tr ng m nh và c p nh t các giá tr m i. default_home : thêm tên ngư i dùng vào cu i thư m c cá nhân t o tên thư m c cá nhân m i. ch s ngư i dùng 503. N u t t c m i th dư ng như thích h p thì có nghĩa là file /etc/passwd ã ư c c p nh t. n u không h có th vô tình ăng nh p trong khi ang sao chép các file. 1 0 . -g. L nh vipw m trình so n th o trên h th ng và hi u ch nh b n sao t m c a file /etc/passwd. Khi file này ư c lưu. có th t o ngư i dùng m i b ng cách sau: So n th o file /etc/passwd b ng vipw. thư m c cá nhân là /home/new và shell ăng nh p là shell bash: # vipw mail:x:8:12:mail:/var/spool/mail: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: bien:x:500:0:Nguyen Thanh Bien:/home/bien:/bin/bash sang:x:17:100:Nguyen Minh Sang:/home/sangnm:/bin/bash lan:x:501:0:Lan GNU:/home/lan:/bin/bash new::503:100:them mot nguoi moi:/home/new:/bin/bash T o thư m c cá nhân c a ngư i dùng m i v i l nh mkdir # mkdir /home/new Sao chép các file t thư m c /etc/skel/ ( ây là thư m c lưu tr các file c n thi t cho ngư i dùng) vào file cá nhân v a t o Thay i quy n s h u và các quy n truy nh p file /home/new v i các l nh chown và chmod # chown new /home/new # chmod go=u. Nên thi t l p m t kh u ngư i dùng bư c cu i cùng. Riêng trư ng m t kh u nên tr ng và t o m t kh u sau. tài kho n ngư i dùng s làm vi c. -b. default_group : thay i ch s nhóm ngư i dùng. Vi c s d ng file t m và khóa file s có tác d ng như m t cơ ch khóa ngăn vi c hai ngư i dùng cùng so n th o file m t lúc. Lúc ó s thêm dòng thông tin m i v ngư i dùng c n t o. Ngoài l nh useradd. -e. Ví d : thêm ngư i dùng có tên là new. -f.

Ví d . -f. c n so n th o l i tr c ti p trên file /etc/passwd (v i l nh vipw).2. S nhóm ng m nh là 1.' m c nh ngư i dùng s thu c vào nhóm kh i t o. passwd : thay i m t kh u ăng nh p c a tài kho n ngư i dùng. group : thay i danh sách các nhóm ph mà ngư i dùng cũng là thành viên thu c các nhóm ó.2. login_name : thay i tên ăng nh p c a ngư i dùng. inactive_days : thi t t s ngày h t hi u l c c a m t kh u trư c khi tài kho n ngư i dùng h t h n s d ng. và s c a nhóm ph i tham chi u n m t nhóm ã t n t i. -g. Trong m t s trư ng h p.3 Thay i thu c tính ngư i dùng Trong Linux có r t nhi u l nh cho phép thay i m t s các thu c tính c a tài kho n ngư i dùng như: chfn: thay i thông tin cá nhân c a ngư i dùng. Cú pháp l nh: usermod [tùy-ch n] <tên. trư c h t ph i xóa b m i th có liên quan n ngư i dùng ó. tên thư m c riêng c a ngư i dùng có th s thay i tham chi u n tên ăng nh p m i. initial_group : tùy ch n này thay i tên ho c s kh i t o ăng nh p nhóm ngư i dùng. Ph i m b o r ng ngư i dùng ó không th c hi n b t kỳ quá trình nào trong khi l nh usermod ang th c hi n thay i các thu c tính c a ngư i dùng ó. hãy gõ l nh sau: # usermod -l new newuser 5. uid : thay i ch s ngư i dùng.4 Xóa b m t ngư i dùng (l nh userdel) xóa b m t ngư i dùng. M i nhóm s ư c ngăn cách v i nhóm khác b i d u '. home_dir : thay i thư m c cá nhân c a tài kho n ngư i dùng. -s. ó là l nh usermod. shell : thay i shell ăng nh p. -l. comment : thay i thông tin cá nhân c a tài kho n ngư i dùng. L nh usermod không cho phép thay i tên c a ngư i dùng ang ăng nh p. thay i tên ngư i dùng. -G. -p.ăng-nh p> L nh usermod s a i các file tài kho n h th ng theo các thu c tính ư c xác nh trên dòng l nh. Nhưng có m t l nh t ng quát cho phép có th thay i b t kỳ thông tin nào v tài kho n ngư i dùng. passwd: thay i m t kh u.5. L nh hay ư c dùng xóa b m t tài kho n ngư i dùng là l nh userdel v i cú pháp: userdel [-r] <tên-ngư i-dùng> 1 0 . M t s các thu c tính khác s ph i thay i b ng tay. chsh: thay i shell ăng nh p. Ví d mu n thay i tên ngư i dùng new thành tên m i là newuser. -d. -e. Các tùy ch n c a l nh: -c. -u. expire_date : thay i th i i m h t h n c a tài kho n ngư i dùng (YYYY-MM-DD). Tên nhóm ph i t n t i.

adm adm:x:4:root. L nh userdel s không cho phép xóa b ngư i dùng khi h ang ăng nh p vào h th ng.daemon disk:x:6:root lp:x:7:daemon. 5. ho c u c n truy c p m t thi t b nào ó như máy in ch ng h n. tuy nhiên t i m t th i i m. ngư i dùng ch thu c vào m t nhóm c th .ư c mã hóa).bin.lp mail:x:12:mail huyen:x:500: langnu:x:501: M i dòng trong file có b n trư ng ư c phân cách b i d u ':'.daemon sys:x:3:root.1 Nhóm ngư i dùng và file /etc/group Thông tin v nhóm ngư i dùng ư c lưu trong file /etc/group. T t c nh ng ngư i dùng trong cùng m t nhóm có th cùng truy nh p m t trình ti n ích. M t ngư i dùng cùng lúc có th là thành viên c a nhi u nhóm khác nhau.3. Nhóm có th thi t l p các quy n truy nh p các thành viên c a nhóm ó có th truy c p thi t b .L nh này s thay i n i dung c a các file tài kho n h th ng b ng cách xóa b các thông tin v ngư i dùng ư c ưa ra trên dòng l nh. Ngư i dùng này ph i th c s t n t i. Ph i h y b m i quá trình có liên quan n ngư i dùng trư c khi xoá b ngư i dùng ó.3 Các l nh cơ b n liên quan n nhóm ngư i dùng M i ngư i dùng trong h th ng Linux u thu c vào m t nhóm ngư i dùng c th . t c là nhóm không yêu c u m t kh u Ch s nhóm ngư i dùng (group id) Danh sách các ngư i dùng thu c nhóm ó (users) 1 0 . ý nghĩa c a các trư ng theo th t xu t hi n như sau: Tên nhóm ngư i dùng (groupname) M t kh u nhóm ngư i dùng (passwd . 5.adm.bin. file.daemon daemon:x:2:root. n u trư ng này r ng.bin. Tuỳ ch n -r có ý nghĩa: -r : các file t n t i trong thư m c riêng c a ngư i dùng cũng như các file n m trong các thư m c khác có liên quan n ngư i dùng b xóa b cùng lúc v i thư m c ngư i dùng. Ngoài ra cũng có th xóa b tài kho n c a m t ngư i dùng b ng cách hi u ch nh l i file /etc/passwd. Ví d n i dung c a file /etc/group có th như sau: root:x:0:root bin:x:1:root. h th ng file ho c toàn b máy tính mà nh ng ngư i dùng khác không thu c nhóm ó không th truy c p ư c. file này có cách b trí tương t như file /etc/passwd.

4 Xóa m t nhóm ngư i dùng (l nh groupdel) N u không mu n m t nhóm nào ó t n t i n a thì ch vi c xóa tên nhóm ó trong file /etc/group. nó s b ghi è. nhưng cách nhanh nh t là s d ng l nh groupadd. -f : tùy ch n này s b qua vi c nh c nh . ch s này ph i là duy nh t. tuy nhiên các thành viên trong nhóm s ph i b sung b ng cách so n th o file /etc/group.2 Thêm nhóm ngư i dùng Cho phép hi u ch nh thông tin trong file /etc/group b ng b t kỳ trình so n th o văn b n nào có trên h th ng c a thêm nhóm ngư i dùng. ây là hai nhóm (102. Giá tr t 0 n 499 ch dùng cho các nhóm h th ng.5. Các tùy ch n c a l nh: -g. dung Hai dòng trên s b sung hai nhóm ngư i dùng m i cùng danh sách các thành viên trong nhóm: nhóm installer v i ch s nhóm là 102 và các thành viên là các ngư i dùng có tên hieu. n u nhóm ngư i dùng ó ã t n t i. gid : thay i giá tr ch s c a nhóm ngư i dùng. 5.3. ch xóa ư c m t nhóm khi không có ngư i dùng nào thu c nhóm ó n a. -r : tùy ch n này ư c dùng khi mu n thêm m t tài kho n h th ng. Nhưng ph i lưu ý r ng. -n.3. sang tiengviet:x:103:minh. Cú pháp l nh: groupdel <tên-nhóm> 1 1 . 103) ngư i dùng h th ng. long. Ngoài ra có th s d ng l nh groupdel xóa m t nhóm ngư i dùng. Ch s m i ph i có giá tr l n hơn 500 và l n hơn các ch s nhóm ã có trên h th ng. Thêm nhóm ngư i dùng m i v i l nh groupadd: # groupadd -r installer L nh trên s cho phép t o m t nhóm ngư i dùng m i có tên là installer. Tương t là nhóm tiengviet v i ch s nhóm là 103 và danh sách các thành viên là minh. huy. Ví d : Thêm nhóm ngư i dùng b ng cách so n th o file /etc/group: installer:x:102:hieu. 5.3. dung. Cú pháp l nh : groupadd [tùy-ch n] <tên-nhóm> Các tuỳ ch n là: -g. group_name : thay i tên nhóm ngư i dùng. gid : tùy ch n này xác nh ch s nhóm ngư i dùng.3 S a i các thu c tính c a m t nhóm ngư i dùng (l nh groupmod) Trong m t s trư ng h p c n ph i thay i m t s thông tin v nhóm ngư i dùng b ng l nh groupmod v i cú pháp như sau: groupmod [tùy-ch n] <tên-nhóm> Thông tin v các nhóm xác nh qua tham s tên-nhóm ư c i u ch nh. sang. long. huy.

c t th hai là tên thi t b u cu i mà ngư i dùng ó ang s d ng. N u cung c p úng m t mã. thì s là ngư i dùng root cho t i khi dùng l nh exit ho c CTRL+d ăng xu t ra kh i tài kho n này và tr v ăng nh p ban u. Ngoài who... xóa ngư i dùng . --count : hi n th tên các ngư i dùng ăng nh p và s ngư i dùng ăng nh p. Tương t . Cú pháp l nh: su <ngư i-dùng> N u ăng nh p v i tư cách ngư i dùng bình thư ng và mu n tr thành siêu ngư i dùng (root) dùng l nh sau: # su root Khi ó h th ng s yêu c u nh p m t kh u c a siêu ngư i dùng. có th s d ng thêm l nh users xác nh ư c nh ng ngư i ăng nh p trên h th ng.2 Xác nh ngư i dùng ang ăng nh p (l nh who) * L nh who là m t l nh ơn gi n. C t u là tên c a ngư i dùng. 5. xóa t t c các th c th liên quan nhóm. Tuy nhiên n u ăng nh p v i tư cách ngư i dùng bình thư ng và mu n chuy n i sang m t ăng nh p ngư i dùng khác thì ph i cung c p m t kh u c a ngư i dùng ó.4.L nh này s s a i các file tài kho n h th ng.4. c t th ba hi n th ngày gi ngư i dùng ăng nh p. --heading : hi n th tiêu c a các c t trong n i dung l nh. Tên nhóm ph i th c s t n t i.. n u ăng nh p v i tư cách root và mu n tr thành ngư i dùng bình thư ng có tên là newer thì hãy gõ l nh sau: # su newer s không b h i v m t kh u khi thay i t siêu ngư i dùng sang m t ngư i dùng khác. cho bi t ư c hi n t i có nh ng ai ang ăng nh p trên h th ng v i cú pháp như sau: who [tùy-ch n] Các tuỳ ch n là: -H. -q.1 ăng nh p v i tư cách m t ngư i dùng khác khi dùng l nh su ôi lúc mu n th c hi n l nh như m t ngư i dùng khác và s d ng các file hay thi t b thu c quy n s h u c a ngư i dùng ó. 5. n 5. L nh su cho phép thay i tên ngư i dùng m t cách hi u qu và c p cho các quy n truy nh p c a ngư i dùng ó. còn có m t s l nh khác có th giúp ích r t nhi u n u ang làm vi c trên m t h th ng a ngư i dùng. 1 1 .4 Các l nh cơ b n khác có liên quan n ngư i dùng Ngoài các l nh như thêm ngư i dùng. Ví d : # who root tty1 Nov 15 03:54 lan pts/0 Nov 15 06:07 # L nh who hi n th ba c t thông tin cho t ng ngư i dùng trên h th ng. -m : hi n th tên máy và tên ngư i dùng v i thi t b vào chu n.

--help : hi n th trang tr giúp và thoát. Cú pháp l nh: whoami ho c who am i Ví d : # whoami lan # # who am i may9!lan pts/0 Nov 15 06:07 # L nh who am i s hi n k t qu y hơn v i tên máy ăng nh p. * Có m t cách khác xác nh thông tin ngư i dùng v i l nh id Cú pháp l nh: id [tùy-ch n] [ngư i-dùng] L nh này s ưa ra thông tin v ngư i dùng ư c xác nh trên dòng l nh ho c thông tin v ngư i dùng hi n th i. --group : ch hi n th ch s nhóm ngư i dùng. -u. tên thi t b và ngày gi ăng nh p.Ví d : # users lan root # * Trong trư ng h p ngư i dùng không nh n i tên ăng nh p trong m t phiên làm vi c ( i u này nghe có v như hơi vô lý nhưng là tình hu ng ôi lúc g p ph i). Các tuỳ ch n là: -g. Ví d : # id uid=506(lan) gid=503(lan) groups=503(lan) # # id -g 503 # # id -u 506 # # id root 1 1 . --user : ch hi n th ch s c a ngư i dùng. hãy s d ng l nh whoami và who am i. tên ngư i dùng ang ăng nh p.

213 3:20pm 0. N u ch ra ngư i dùng trong l nh thì ch hi n ra các quá trình liên quan n ngư i dùng ó.1(bin).6(disk).3 Xác nh các quá trình ang ư c ti n hành (l nh w) L nh w cho phép xác nh ư c thông tin v các quá trình ang ư c th c hi n trên h th ng và nh ng ngư i dùng ti n hành quá trình ó.uid=0(root)gid=0(root)groups=0(root).2(daemon).10s w root pts/2 :0 3:33pm 9:32 0.168.29s /usr/bin/mc –P 1 1 .41s 0. Cú pháp l nh: w [ngư i-dùng] L nh w ưa ra thông tin v ngư i dùng hi n th i trên h th ng và quá trình h ang th c hi n.00s 0.2:14pm 13:03 9.69s 0.2.10(wheel) # 5. Ví d : # w root tty2 .4(adm).10s /usr/bin/mc -P lan pts/1 192.4. 3(sys).30s 9.

Không nh ng th mail còn cho phép s d ng trên m ng internet ( a ch mail thư ng dư i d ng tênlogin@máy.lĩnh-v c. ngày gi vào h th ng.yes) 6. s hi u terminal. m bào cách th c truy n thông gián ti p (còn g i là off-line) như v y. h th ng t o ra cho m i ngư i dùng m t h p thư riêng. m t ngư i dùng mu n liên h v i ngư i dùng khác. . Khi dùng l nh write truy n thông cho nhau thì òi h i hai ngư i g i và nh n ng th i ang làm vi c và cùng ch p nh n cu c trao i ó. • N u ngư i dùng user2 ang làm vi c. 1 1 . phút> Cùng lúc ó. s d ng l nh: $mesg y (y . máy ngư i dùng user2 s phát ra ti ng chuông và trên màn hình hi n ra: Message from user1 on tty17 at <gi .1. ngư i dùng user1 gõ ctrl-d. ti p t c cho phép ngư i khác g i thông báo n.K t thúc dòng cu i cùng (h t thông báo) b ng c m -oo.1.1. t ch i m i vi c nh n thông báo t ngư i khác. Ngư i g i gõ thông báo c a mình theo quy t c: . Cách th c s d ng mail là khác h n: m t trong hai ngư i g i ho c nh n có th không ăng nh p vào h th ng.2. L nh mail L nh mail cho phép g i thư i n t gi a các ngư i dùng. s d ng l nh không nh n thông báo: $mesg n (n .m ng. Khi m t ngư i dùng l nh mail g i thư n m t ngư i khác thì thư ư c t ng cho vào h p thư c a ngư i nh n và ngư i nh n sau ó cũng dùng l nh mail xem trong h p thư có thư m i hay không. $write <tên ngư i dùng> [<tên tr m cu i>] c n g i thông báo n ngư i dùng user1 có tên user2 s gõ: $write user2 tty43 • N u ngư i dùng user2 hi n không làm vi c thì trên màn hình ngư i dùng user1 s hi n ra: "user2 is not logged in" và hi n l i d u m i shell. t i máy c a user1 màn hình tr ng hi n nh ng thông tin g i t i ngư i dùng user2.qu c-gia).CHƯƠNG 6.1. Thông thư ng. song ho t ng theo ch off-line (gián ti p). c n s d ng l nh who: $who hi n thông tin như sau: user1 tty17 Oct 15 10:20 user2 tty43 Oct 15 8:25 user4 tty52 Oct 15 12:20 trong ó có tên ngư i dùng.K t thúc m t dòng b ng c m -o. k t thúc k t n i v i ngư i dùng user2. L nh truy n thông 6. Sau ó s d ng l nh write chuy n thông báo cho nhau. L nh write L nh write ư c dùng trao i gi a nh ng ngư i hi n ang cùng làm vi c trong h th ng. TRUY N THÔNG VÀ M NG UNIX-LINUX 6.no) M t ngư i khác g i thông báo n ngư i này s nh n ư c vi c truy nh p không cho phép permission denied.

C n tr giúp gõ d u ch m h i (màn hình có hai d u ??): ? màn hình hi n ra d ng sau: <s > Hi n thư s <s > (d u cách) Hi n thư ngay phía trư c + Hi n thư ngay ti p theo l cmd th c hi n l nh cmd dq xóa thư hi n th i và ra kh i mail m user g i thư hi n th i cho ngư i dùng s tên-file ghi thư hi n th i vào file có tên r [tên-file] tr l i thư hi n th i (có th t file) d <s > xóa thư s u khôi ph c thư hi n th i u <s > khôi ph c thư s m <user> . Thư g i i cho ngư i dùng khác. d u m i c a shell l i hi n ra. Cách làm trên ây hay ư c s d ng trong g i / nh n thư i n t ho c liên k t truy n thông vì cho phép ti t ki m ư c th i gian k t n i vào h th ng. màn hình b xóa và con tr so n th o nh p nháy góc trên.. Chú ý: D ng sau ây ư c dùng g i thư ã so n trong n i dung m t file nào ó (chú ý d u "<" ch d n thi t b vào chu n là n i dung file thay vì cho bàn phím): $mail tên_ngư i_nh n < tên_file_n i_dung_thư Ví d . $mail user2 L nh này cho phép so n và g i thư cho ngư i nh n có tên ư c ch . . hãy gõ ctrl-d. chuy n ti p thư t i các ngư i dùng khác q ra kh i mail 1 1 - .L nh mail ch yêu c u ngư i g i (ho c ngư i nh n) login trong h th ng. L nh mail trong UNIX g m 2 ch c năng: g i thư và qu n lý thư. có hai ch làm vi c v i l nh mail: mode l nh (command mode) qu n tr thư và mode so n (compose mode) cho phép t o thư. Sau khi gõ l nh. ư c lưu t i h p thư c a h th ng. Vào mail theo mode l nh khi dùng l nh mail không tham s : $mail Sau khi gõ l nh.T i th i i m login h th ng. ngư i dùng có th th y ư c có thư m i khi trên màn hình xu t hi n dòng thông báo "you have mail". màn hình mail mode l nh ư c hi n ra v i d u m i c a mode l nh. trái ngư i dùng gõ n i dung thư. Vi c nh n và g i thư ư c ti n hành t m t ngư i dùng. màn hình c a mail bi n m t và d u m i c a shell l i xu t hi n. Mode so n th c ch t là s d ng l nh mail có tham s : $mail tên_ngư i_nh n> Ví d . c bi t chi phí ph i tr khi k t n i là áng k . a/ Mode so n Mode so n làm vi c tr c ti p v i m t thư và g i ngay cho ngư i khác. (ph bi n là d u ch m h i "?") T i ây ngư i dùng s d ng các l nh c a mail qu n lý h th ng thư c a mình. b/ Mode l nh Như ã nói s d ng mode l nh c a mail qu n lý h p thư. $ mail user2 < thu1 N i dung thư t File thu1 ư c g i cho ngư i nh n user2.. Tương ng. k t thúc so n thư.

113.130. netmask <m t n m ng> xác nh m t n m ng cho giao di n này.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3912830 errors:84463 dropped:0 overruns:0 frame:0 TX packets:2402090 errors:0 dropped:0 overruns:0 carrier:0 collisions:84463 txqueuelen:100 RX bytes:2767096664 (2638. L nh talk Trong Linux cho phép s d ng l nh talk thay th cho l nh write. eth1 cho card m ng xem c u hình c a máy hi n t i ta dùng l nh # ifconfig Và ví d v k t qu thu ư c là: eth0 Link encap:Ethernet HWaddr 00:02:55:07:63:07 inet addr:203. broadcast < a ch > xác nh a ch qu ng bá cho giao di n này. arp | -arp cho phép hay c m giao th c ARP trên giao di n này. down tuỳ ch n này s t t giao di n ư c ch ra.9 Mb) TX bytes:1265930467 (1207.255.201 Bcast:203. qu n lý thi t b này Linux cung c p l nh ifconfig.130. /sbin/ifconfig <giao di n> [ < a ch > ] [ arp | -arp][ broadcast < a ch >][netmask <m t n m ng> ] trong ó: <giao di n> tên c a thi t b giao ti p m ng. u tiên.Th c hi n các l nh theo ch d n trên ây qu n tr ư c h p thư c a cá nhân.2 C u hình Card giao ti p m ng các máy có th giao ti p ư c v i nhau trong m ng theo giao th c TCP/IP. Ngoài ra ta cũng có th dùng l nh này kích ho t ho c t t m t card m ng. 6. < a ch > a ch m ng s gán cho giao di n này.113.2 Mb) Interrupt:29 1 1 . thi t b dùng làm phương ti n giao ti p ó là Card giao ti p m ng (network card). up tuỳ ch n này s kích ho t giao di n ư c ch ra.223 Mask:255.3.1. ch ng h n eth0 cho card m ng th hai. 6. L nh này dùng xem các thông tin v c u hình m ng hi n th i c a máy cũng như gán các a ch cho các card giao ti p m ng (interface).

có công c này ta ph i cài t package redhat-config-networkxxx.0 Mb) Trong trư ng h p này ta th y máy hi n t i có 2 card m ng và ư c gán các tương ng như trên.7 Mb) lo Link encap:Local Loopback inet addr:127.0.9.10 Bcast:10.0. i u này làm cho m ng tr nên m t h th ng duy nh t. Cùng v i s phát 1 1 .255. ch ng h n như d li u trong /etc/passwd và /etc/group cho t t c các máy tr m trên m ng.0.rpm trong ó xxx là s hi u phiên b n c a chương trình. m t h p tho i s hi n lên cho phép ta thay i các tham s cho t ng card m ng ư c cài trên máy. M t trong nh ng i m quan tr ng là làm cho các d li u quan tr ng như là thông tin v ngư i dùng.0.162.154 netmask 255.1 Mask:255.255. Các d ch v m ng 6.5 Mb) TX bytes:1471928637 (1403.10.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:45868 errors:0 dropped:0 overruns:0 frame:0 TX packets:45868 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5338927 (5.3. 6. NIS ư c xây d ng trên vi c s d ng d ch v RPC (Remote Procedure Call). a ch Mu n ch xem các thông tin v m t card m ng nào ó thôi ta dùng l nh: # ifconfig eth0 Mu n kích ho t m t card m ng ta dùng l nh # ifconfig eth0 up Mu n t t m t card m ng ta dùng l nh # ifconfig eth0 down Mu n t l i a ch cho m t card m ng ta dùng l nh: # ifconfig eth0 203.eth1 Link encap:Ethernet HWaddr 00:05:1C:98:05:B1 inet addr:10.0 Mb) TX bytes:5338927 (5. Ban u NIS ư c g i là nh ng trang vàng (Yellow Pages –YP).0. NIS (Network Information System) là m t ng d ng cung c p các ti n ích truy nh p cơ s d li u phân ph i thông tin.255. v các tr m trong m ng là ng nh t trên t t c các tr m làm vi c.1 H thông tin m ng NIS Khi s d ng h th ng m ng nói chung. Trong giao di n ho GNOME ta ánh l nh redhat-config-network.3. Nó bao g m m t thư vi n máy ch .0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:15389731 errors:0 dropped:0 overruns:0 frame:0 TX packets:7768909 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2578998337 (2459. thư vi n máy tr m và các công c qu n tr .10. m c ích c a chúng ta là làm cho môi trư ng m ng tr nên trong su t i v i ngư i dùng.0.248 Ngoài ra n u máy tính có cài giao di n GNOME cùng các package qu n lý m ng c a GNOME thì ta có th s d ng l nh có giao di n ho giúp cho vi c c u hình các tham s card m ng d dàng hơn.255 Mask:255.255.

hi n th và t tên cho m t mi n ta s d ng l nh #domainname nis-domain Tên mi n NIS s cho bi t máy ch c a mi n nào các ng d ng s truy c p nh n thông tin c n thi t.byname" Use "aliases" for map "mail. M i file văn b n này có th có nhi u file maps khác nhau tùy thu c vào khóa c a nó. NIS truy n th ng ư c xây d ng trên thư vi n libc 4/5. Các file maps thư ng là các file theo nh d ng DMB. Các chương trình máy ch c a NIS thư ng có tên là ypserv.byname protocol.bynumber rpc.byname" Use "networks" for map "networks.byname protocol..tri n c a NIS mà có s xu t hi n khác nhau trong các phiên b n. Ho t ng c a NIS NIS lưu tr cơ s d li u v thông tin qu n tr m ng trong các file maps..byaddr passwd. hi n th danh sách các nickname ta dùng l nh ypcat: #ypcat -x Use "ethers" for map "ethers.byname" Use "protocols" for map "protocols. các chương trình ng d ng ph i h i ypbind. NYS là m t phiên b n chu n h tr c NIS và NIS+.bynumber rpc. m t d ng cơ s d li u ơn gi n. bi t ư c máy ch nào trong m ng là NIS server. 1 1 .byname network.byaddr" . Nó s phát các gói tin qu ng bá tìm các máy ch NIS trên m ng ho c s d ng các thông tin trong các file c u hình ngư i qu n tr ã cung c p. Ví d n u khóa là tên máy tr m thì ta có file hosts.byname passwd.aliases" Use "services" for map "services. Trong các m ng c nh ta ch c n m t máy làm máy ch NIS.bynumber mail. t ó các NIS client có th truy nh p n các thông tin thông qua d ch v RPC. M t mi n (domain) NIS là m t t p h p các máy tr m ư c qu n lý b i m t máy ch NIS.bynumber" Use "hosts" for map "hosts. m t chương trình ch y ng m có nhi m v phát hi n các NIS server trên m ng.byid Groups. Các file này ư c t trên m t NIS server trung tâm. n u khóa là a ch IP thì ta có file hosts.byid service.byname. Các file maps ư c t o ra t các file văn b n như /etc/hosts hay /etc/passwd.aliases M i m t file maps có m t tên ng n hơn nh i v i ngư i dùng g i là các nickname.byname network.byname group.byname.addr Hosts..byname service. File ch /etc/hosts /etc/networks /etc/passwd /etc/groups /etc/services /etc/rpc /etc/protocol /usr/lib/aliases File maps tương ng hosts. NIS+ là s m r ng c a NIS song v n h tr b o m t thông tin.

Bây gi ta tìm hi u cách cài t máy ch NIS chính.conf như sau: Cài #/etc/yp.conf domainname nis-domain server lnserver Dòng u tiên cho bi t máy tr m này thu c vào mi n NIS có tên là nis-domain. Ta có th cài t b ng l nh: #rpm -ivh ypserv-xxx.conf server ln-server1 domainname1 server ln-server2 domainname2 Khi mu n s d ng m t mi n khác thì ta ch c n ánh l i l nh domainname mi n ta tương ng. ta có th ch ra nhi u mi n NIS và các máy ch tương ng v i nó b ng l nh server. ho c khi có s c thì toàn b h th ng m ng ó s không th ho t ng ư c. Trong file này s ch a các l nh c n thi t t o ra file maps. Các máy ch NIS ph s giúp gi i quy t v n này. Do v y m i khi có s thay i. a ch IP c a tên máy ch này ph i xu t hi n trong file /etc/hosts. Ho c ta có th s d ng a ch IP ngay trên dòng này. ta c n th c hi n l i l nh make c p nh t s s a i. Chúng không ư c t o ra b ng makedbm mà ư c l y v t máy ch chính. t các máy tr m NIS Trư c tiên ta c n cài t ph n m m ypbind lên máy tr m b ng l nh: #rpm -ivh ypbind-xxx. m t máy ch NIS có th b quá t i. Khi trong m ng có nhi u máy tr m làm vi c.rpm. Sau khi cài t ph n m m ta dùng l nh make: #domainname nis-domain #cd /var/yp #make Các file map không t ng c p nh t m i khi ta s a thông tin qu n tr .rpm Bư c ti p theo là ch ra tên c a máy ch và tên mi n NIS mà tr m này s s d ng b ng cách thay i thông tin trong file /etc/yp. Vi c cài t các máy ch NIS ph ch khác máy ch NIS chính ch t o ra các file map. Khi ta s d ng máy tính thư ng xuyên ph i thay i mi n NIS. m t mi n ch có th có m t máy ch NIS chính. Trư c tiên ta ph i cài t ph n m m ypserv lên máy tính. Dòng th 2 ch ra tên máy ch NIS. xác nh 1 1 . N u không có dòng l nh này thì ta có th ch ra b ng cách ánh l nh domainname t i d u nh c dòng l nh. Do ó ph i m b o chương trình ã ư c cài trên máy. vi c t o l p s ư c ti n hành thông qua m t makefile.Cài t và c u hình cho máy ch NIS V i NIS ta có khái ni m máy ch NIS chính và máy ch NIS ph . File c u hình dư i ây cho phép th c hi n i u ó: #yp.rpm #mkdir /var/yp/nis-domain t o các file cơ s d li u ta s d ng chương trình makedbm. Chương trình s n m trong package ypserv-xxx.

168. gethostbyaddr() và getservbyname(). Tên c a máy ch ư c t trong file /etc/resolv. protocols. M c dù ta ã s d ng NIS như là m t h qu n tr t p trung.conf. Ví d sau cho bi t th t s d ng d ch v c a các hàm gethostbyname(). Ch khi nào d ch v trư c b l i. và m t s file khác. rpc. Tên c a các file là tên c a các file map tương ng c a d ch v NIS.conf. files: s d ng các file c u hình c c b . kh i ng ypbind.conf. N u có t khóa [NOTFOUND=return] trong các thành ph n c a file nsswitch.. shadow. N u máy ch ã ho t ng ta ki m tra xem s ho t ng c a ypserv b ng l nh rpcinfo: #rpcinfo –u serverhost ypserv program 10004 version 2 ready and waiting N u ta nh n ư c thông báo như trên là ypserv ang ho t ng t t.byaddr s ư c s d ng. Tên c a server ư c ch ra trong file /etc/nis. dbm: tìm thông tin trong các file cơ s d li u /var/dbm.50. NIS m i dùng ti p d ch v 1 2 . Th t ư c ch ra trong file /etc/nsswitch.1 may2 . xem thông tin v a ch IP c a các tr m ta dùng l nh: #ypbind #ypcat hosts. passwd. dns: s d ng DNS server. có nghĩa là h th ng NIS ho t ng chưa t t.byname và hosts. ta có th ki m tra xem tên mi n và tên máy ch trong file yp. ta nên ki m tra xem chương trình ypbind ã ho t ng hay chưa. services. d ch v này ư c s d ng cho mình thành ph n hosts. Tên c a server ư c ch ra trong file /etc/yp.conf.. Các d ch v ư c li t kê trư c s ư c s d ng. ví d : /etc/passwd cho thành ph n passwd.conf. Thông thư ng NIS ư c s d ng tra c u các thông tin v máy tr m và tài kho n ngư i dùng.1 may1 192.byname 192. N u ta không nh n ư c k t qu như trên ho c ta nh n ư c m t thông báo l i “can’t bind to servers domain”. Các file.. các file map là hosts. sau ó dùng ti n ích ypcat l y thông tin qu n lý b i NIS server. Trư c h t. h th ng này v n cho phép các máy tr m làm vi c ư c quy n t do l a ch n s d ng các file c u hình c c b ho c s d ng t NIS server. chương trình c th ư c s d ng s ph thu c vào t ng lo i d ch v : nisplus hay nis+: s d ng NIS+ server cho mi n NIS hi n th i.50. networks. group. Các thành ph n ư c h tr hi n th i c a NYS là: hosts.conf ã chính xác chưa và sau ó ping máy ch . L a ch n các file map Khi s d ng NIS ta c n xác nh nh ng file c u hình nào c a các máy tr m s ư c thay th b i NIS.168. NIS s thoát ra ngay mà không s d ng ti p các d ch v sau trong trư ng h p nó không tìm th y thông tin d ch v trư c ó. nis: s d ng NIS server cho domain hi n th i. n u không thành công thì s d ng d ch v sau ó.conf.Sau khi ã t o ra các file c u hình cơ b n. V i thành ph n hosts.conf hosts: nis dns files services files nis Dư i ây là danh sách các d ch v có th s d ng trong file /etc/nsswitch. #nsswitch.

sau. Trong ví d dư i NIS ch s d ng các file c c b khi kh i b h ng.

ng ho c DNS, NIS server

#/ect/nsswitch.conf
hosts: nis dns [NOTFOUND=return] files network: nis [NOTFOUND=return] files services: file nis protocol: files nis rpc: files nis S d ng các file map passwd và group M t trong nh ng ng d ng chính c a NIS là ng b thông tin v các tài kho n c a ngư i s d ng trên t t c các máy tr m trong mi n NIS. Khi ó thông tin v ngư i dùng trên tr m ư c li t kê m t ph n nh trong /etc/passwd, ph n còn l i ư c lưu trong file map passwd.byname. Vi c ch n nis trong file /etc/nsswitch.conf chưa NIS có th ho t ng. Khi s d ng tài kho n c a ngư i dùng ư c cung c p b i NIS, trư c tiên ph i m b o s hi u c a ngư i dùng trong file passwd ph i trùng v i s hi u c a ngư i dùng ó trên NIS. N u s hi u ngư i dùng, s hi u nhóm c a ngư i dùng ó khác v i thông tin trong mi n NIS, ta c n s a l i cho trùng nhau. Trư c tiên ta thay i s hi u ngư i dùng (uid) và s hi u nhóm (gid) trong ó file /etc/passwd và /etc/group trên tr m c c b sang các giá tr m i c a NIS. Sau ó i quy n s h u c a t t c các file b ng cách thay i s hi u uid và gid cũ sang uid và gid m i. Gi s ngư i dùng anhnv có s hi u uid là 501, thu c nhóm sinhvien có gid là 423, ta s a i quy n s h u như sau: #find / -uid 501 – print > /tmp/uid/uid.501 #find / -gid 501 – print > /tmp/uid/gid.501 #cat /tmp/uid.501 | xargs chown anhnv #cat /tmp/gid.501 | xargs chgrp sinhvien Sau khi th c hi n các công vi c trên s hi u uid và gid c a m t ngư i dùng trên máy tr m s ng nh t v i NIS. Bư c ti p theo là s a i file /etc/nsswitch.conf như sau:

#/etc/nsswitch.conf
passwd: nis files group: nis files File trên quy nh l nh login và các l nh thu c h này s truy v n NIS server khi m t ngư i dùng mu n truy nh p, n u không tìm th y nó s tìm ti p n các file c c b . Thông thư ng ta lo i b h u h t ngư i dùng kh i các file c c b , ch gi l i root ho c các tài kho n chung như mail, news,… cho m t s tác v c n chuy n i s hi u uid sang tên và ngư c l i. Ví d trong chương trình qu n lý công vi c cron s d ng l nh su t m tr thành news. N u news không có trong /etc/passwd, chương trình trên s không th c hi n ư c. Khi ngư i dùng mu n thay i m t kh u, h không th dùng l nh passwd như khi chưa có NIS. L nh passwd ch có tác d ng s a i các file c u hình c c b . NIS cung c p m t công c là yppasswd, nó không nh ng cho phép s a i m t kh u ngư i dùng trên NIS mà còn thay i các thu c tính khác như shell… Chương trình này ư c th c hi n khi kh i ng h th ng b ng cách ch y thêm d ch v rpc.yppasswd. Vì thói quen ngư i dùng có th

1 2

gõ l nh passwd khi mu n thay liên k t n yppasswd. #cd /bin

i m t kh u. Gi i pháp

ây là thay

i passwd b ng m t

#mv passwd passwd.old #ln yppasswd passwd

6.4 H th ng file trên m ng
Linux có d ch v chia s file trên m ng máy tính. Khi ta mu n có kh năng các máy Linux có th chia s tài nguyên là các file v i nhau, d ch v NFS s cung c p kh năng này. D ch v này cho phép chia s file cho các ngư i dùng trên m ng LAN, các file này có kh năng xu t hi n i v i các ngư i dùng như là các file trên máy c a mình. 6.4.1 Cài t NFS cài t d ch v này ta c n chu n b m t package là nfs-utils-xxx.rpm trong ó xxx là s hi u phiên b n. ăng nh p v i quy n root và s d ng l nh: # rpm –ivh nfs-utils-xxx.rpm N u không có l i thông báo l i thì vi c cài t ã thành công. NFS s d ng th t c RPC (Remote Procedure Calls) g i và nh n yêu c u gi a các máy ch và máy tr m trên m ng, do v y d ch v ánh x c ng portmap (d ch v qu n lý các yêu c u RPC) ph i ư c kh i ng trư c. Trên máy ch NFS d nh s chia s các file d li u ph i kh i ng hai d ch v nfs và portmap b ng l nh: # service nfs start # service portmap start NFS ho t ng thì ta c n ph i kh i ng các d ch v sau: Portmapper: ti n trình này không làm vi c tr c ti p v i NFS mà tham gia qu n lý các yêu c u RPC t máy tr m g i n. Mountd: ti n trình này s ánh x các file trên máy ch t i các thư m c trên máy tr m yêu c u. Nó s hu b ánh x này n u có l nh umount t máy tr m. Nfs: là ti n trình chính th c hi n các nhi m v c a giao th c NFS. Nó có nhi m v cung c p cho các máy tr m các thư m c ho c file ư c yêu c u. Ta có th ki m tra các thông tin v các d ch v NFS b ng l nh: #rpcinfo -p Ta s thu ư c k t qu : program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper … 100005 3 udp 1024 mountd 100005 3 tcp 1024 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs

...

1 2

6.4.2 Kh i ng và d ng NFS Vi c kh i ng d ch v NFS cũng khá ơn gi n và ã ư c gi i thi u trên b ng cách kh i ng portmap và nfs. # service nfs start ho c #/etc/init.d/nfs start Vi c d ng (t t) d ch v này cũng khá ơn gi n, ta dùng l nh sau: #service nfs stop ho c #/etc/init.d/nfs stop Ta có th t cho d ch v này ư c t ng kh i ng khi ta kh i ng máy tính b ng cách dùng l nh: #setup

Hình

t các ng d ng t kh i

ng khi Linux kh i

ng

Sau ó ch n “System services”, ti p ó ta s nh n ư c m t danh sách các d ch v hi n ang có trong h th ng. Mu n cho d ch v nào ư c t ng kh i ng ta ch c n ch n d ch v ó, ây ta ch n d ch v có tên nfs. Ch n OK và cu i cùng ch n Quit. 6.4.3 C u hình NFS server và Client C u hình nfs ta ch c n s a file /etc/exports, ây là file ch a danh sách các thư m c ư c chia s cho các máy khác. Nó cũng ng th i ch a danh sách các máy tr m có quy n ư c truy c p và quy n truy c p c a các máy tr m này. M t chú ý v nh d ng c a file này như sau: các dòng tr ng s ư c b qua, các dòng b t u b ng d u # ư c coi là các dòng

1 2

chú thích và s ư c b qua. Các dòng dài quá ta có th ng t trên nhi u dòng b ng cách s d ng d u ng t dòng (\). C u trúc c a m i dòng khai báo trong file này như sau: Tên thư m c Danh sách a ch các máy tr m, quy n truy nh p c a các máy tr m ó

Danh sách a ch các máy tr m, quy n truy nh p c a các máy tr m ó
192.168.0.127(ro)

/software/project /software/setup

192.168.0.172(rw) 192.168.0.0/28(ro)

Trong ó, các tham s có ý nghĩa như sau: tên thư m c là ư ng d n n thư m c ta mu n chia s cho các máy khác. Danh sách a ch các máy tr m, có th là a ch IP ho c tên máy ( ư c li t kê trong file /etc/hosts). Trong trư ng h p mu n li t kê danh sách các máy có a ch g n k nhau trong m t kho ng nào ó ta có th có cách vi t rút g n như sau: ch ng h n ta mu n li t kê các a ch c a máy tr m trong kho ng t 192.168.0.0 n các máy tr m có a ch 192.168.0.15 ta ch c n vi t 192.168.0.0/28. Quy n truy nh p ư c vi t dư i d ng (rw) ch quy n c và ghi, còn (ro) thì các máy tr m ch có quy n c trên thư m c ó, (noaccess) c m các máy tr m truy nh p vào các thư m c con c a thư m c chia s . Chú ý, gi a a ch c a máy và quy n truy nh p không có d u cách. 6.4.4 S d ng mount

c d li u trên các thư m c ã ư c chia s này ta có th dùng cách sau: ta s dùng l nh mount, nhưng trong trư ng h p này ta ph i c n quy n qu n tr (root). Cú pháp c a l nh s như sau:
#mount <tên_máy_ch :/tên_thư_m c_chia_s > </tên_thư_m c_c n_ánh_x >

Lưu ý, trư c khi ra l nh này ta ph i t o ra thư m c c n ánh x (trong trư ng h p nó chưa t n t i). Ví d , ánh x thư m c /software/project trên m t máy ch 192.168.0.33 vào thư m c /mnt/project trên máy hi n t i ta dùng l nh sau:
#mount 192.168.0.33:/software/project /mnt/project

Bây gi thư m c /mnt/project trên máy hi n t i s bình ng như các thư m c khác trên máy. Ta có th sao chép, c các file trên thư m c này.
6.4.5 Unmount

Sau khi th c hi n xong các thao tác c n thi t, ta có th h y b ánh x này b ng l nh umount như sau:
#umount /mnt/project

Sau l nh này thì ta không còn có kh năng thao tác v i thư m c trên máy ch ư c n a, n u mu n ta l i ph i ánh x l i.
1 2

Ngoài ra mu n xem tr ng thái ho t
#/etc/init.d/nfs status

ng c a d ch v nfs ta có th dùng l nh:

Nó s hi n th thông tin v tr ng thái hi n t i c a d ch v này ang ch y hay ã d ng l i.
rpc.mountd (pid 936) is running... nfsd (pid 948 947 946 945 944 943 942 941) is running... rpc.rquotad (pid 931) is running... 6.4.6 Mount t ng qua t p c u hình Bây gi n u ta mu n h th ng s t ng ánh x thư m c này khi máy kh i ng cho nh ng ngư i dùng không có quy n qu n tr có th dùng ư c thì ta có th s d ng cách s a i n i dung c a file /etc/fstab. Cũng tương t như l nh mount trên, trong file /etc/fstab cũng có các trư ng gi ng như ã nói trên. M i m t dòng trong file này s có c u trúc như sau: <tên_máy_ch :/ ư ng_d n_ n_thư_m c_chia_s > </ ư ng_d n_ n_thư_m c_c c_b > nfs tham s nfs ch cho h i u hành bi t ki u file là nfs. Ví d ta có th thêm dòng 192.168.0.33:/software/project /mnt/project nfs vào cu i file /etc/fstab.

1 2

Trong c u trúc dòng x p hàng. Shell cho phép ngư i dùng ch y t ng l nh shell (th c hi n tr c ti p) ho c dãy l nh shell (file script) và c bi t hơn là theo d ng thông qua ng d n (pipe). $ cal 10 1999. Ví d . Cách th c pipes Trong Linux có m t s lo i shell. Trong ng c nh c a shell.. v i hai quá trình A và B ư c k t n i m t ng d n ư c th hi n như sau: Quá trình A Quá trình B Như v y u ra c a A thông thư ng ho c là thi t b ra chu n (màn hình) ho c là m t File (là m t tham s c a l nh) ư c thay b ng " u nh p c a ng d n".) V y ư ng ng có d ng <l nh ph c h p> | <l nh ph c h p> L nh ph c h p phía sau có th không có i s . ls -L | \ 1 2 . Như v y danh sách l nh là dãy các l nh liên ti p nhau. cal 11 1999 . m t u c a dòng nh n ph n t vào và còn u kia l i xu t ph n t ra. ư c th hi n là m t cách th c c a shell truy n thông liên quá trình.. có th dùng ng d n làm file vào chu n cho các l nh c ti p theo. cái sau cách cái trư c b i d u ch m ph y ". L P TRÌNH SHELL VÀ L P TRÌNH C TRÊN LINUX 7. thông tin k t qu t l nh phía trư c tr thành thông tin input c a l nh ngay phía sau mà không ch u tác ng theo cách thông thư ng c a l nh trư c n a. cái ra c a l nh trư c là cái vào c a l nh sau và không ph i thông qua nơi lưu tr trung gian. Trong chương trình.1. • Trong m t dòng l nh c a shell có th th c hi n m t danh sách các l nh tu n t nhau d ng: <l nh> [.1.. Cách th c pipes và các y u t cơ b n l p trình trên shell 7. Dòng byte l n lư t "ch y" t quá trình A sang quá trình B. • S d ng ng d n là cách th c c bi t trong UNIX và Linux. Trong trư ng h p ó. cal 12 1999 Shell cho ngư i dùng cách th c c bi t th c hi n các l nh tu n t nhau. Ví d .1." Ví d . Mô t cách th c s d ng ư ng ng trong shell như sau: <l nh ph c h p> là ho c <l nh> ho c (<l nh>[. u vào c a B thông thư ng ho c là thi t b vào chu n (bàn phím) ho c là m t File (là m t tham s c a l nh) ư c thay b ng " u xu t c a ng d n".CHƯƠNG 7. Tương t .<l nh>]. ng d n ư c t ch c theo ki u c u trúc d li u dòng x p hàng "vào trư c ra trư c" FIFO "First In First Out". shell ng m nh là bash. <l nh>]. $ cal 1999 | more N i dung l ch năm 1999 (l nh cal óng vai trò quá trình A) không ư c in ngay ra màn hình như thông thư ng theo tác ng c a l nh cal n a mà ư c lưu lên m t "file" t m th i ki u " ng d n" c a h th ng và sau ó tr thành i s c a l nh more (l nh more óng vai trò quá trình B)..

Thông thư ng các b d ch l nh shell là sh (/bin/sh) ho c ksh (/bin/ksh) th c hi n m t chương trình shell ta có các cách sau ây: $sh <<tên chương trình> ho c $sh <tên chương trình> ho c nh i mod c a chương trình: $chmod u+x <tên chương trình> và ch y chương trình $<tên chương trình> . Các bi n trong file script Trong shell có th k t i 3 lo i bi n: • Bi n môi trư ng (bi n shell c bi t. Các y u t cơ b n l p trình trong shell Shell có công c cho phép có th l p trình trên shell làm tăng thêm thân thi n khi giao ti p v i ngư i dùng.HOME : ư ng d n thư m c riêng c a ngư i dùng. .Bi u th c i u ki n. Trong . .2.Chương trình là dãy các dòng l nh shell song ư c t trong m t file văn b n ( ư c so n th o theo so n th o văn b n). a. . t o ra m t bi n ta ch c n gán bi n ó m t giá tr nào ó.MAIL: ư ng d n thư m c ch a h p thư ngư i dùng. Trong tài li u này s d ng chúng m t cách t nhiên. Bi n ư c t tên g m m t xâu ký t .C u trúc r nhánh. quy t c t tên như sau: ký t u tiên ph i là m t ch c i ho c d u g ch chân (_).Các phép toán s h c.USER: Tên ngư i dùng ã vào h th ng. . . .thì ký hi u "\" ch ra r ng ng d n ư c dùng như file vào chu n.Ph n l n các y u t ngôn ng trong l p trình shell là tương ng v i l p trình C. 7. Các i tư ng tham gia công c như th có th ư c li t kê: . M t s n i dung trong chương trình shell . b b qua khi shell th c hi n chương trình. . .PATH: thư m c dùng tìm các file th hi n n i dung l nh.SHELL: ư ng d n c a shell (/bin/sh ho c /bin/ksh) . . bi n shell xác nh trư c ho c bi n shell chu n) ư c li t kê như sau (các bi n này thư ng g m các ch cái hoa): .Các bi n (trong ó chú ý t i các bi n chu n).1. . bi n t khóa.C u trúc l p.PS2: d u m i th 2 c a shell (ng m nh là >).PWD: Thư m c hi n t i ngư i dùng ang làm.profile thư m c riêng c a m i ngư i dùng thư ng có các câu l nh d ng: <bi n môi trư ng> = <giá tr > • Bi n ngư i dùng: Các bi n này do ngư i dùng t tên và có các cánh th c nh n giá tr các bi n ngư i dùng t bàn phím (l nh read). .PS1: d u m i ban u c a shell (ng m nh là $).Các hàm vào .ra . . Ví d : myname=”TriThanh” 1 2 . b.TERM: S hi u gán cho tr m cu i.Các dòng l nh b t u b ng d u # chính là dòng chú thích. . sau tên là m t hay nhi u ký t khác. Phép gán là m t d u b ng (=).

Tên bi n là phân bi t ch hoa ch thư ng. S khác nhau gi a “$*” và “$@” là gì và t i sao l i có s phân bi t? S khác nhau cho phép ta x lý các i s dòng l nh b ng hai cách. M t s ví d v cách t tên bi n: $ no=10 # ây là m t cách khai báo h p l Nhưng cách khai báo dư i ây là không h p l $ no =10 #có d u cách sau tên bi n $ no= 10 # có d u cách sau d u = $ no = 10 # có d u cách c ng trư c l n ng sau d u = Ta có th khai báo m t bi n nhưng nó có giá tr NULL như trong nh ng cách sau: $ vech= $ vech="" N u ta ra l nh in giá tr c a bi n này thì ta s thu ư c m t giá tr NULL ra màn hình (m t dòng tr ng). các tham bi n th c b t u b ng “$1” (n u tham s cú v trí l n hơn 9. “$*”. tên các bi n này cho trư c. Bi n t ng (hay bi n-ch c. .. Có 10 bi n t ng: $0. Ví d . $tên_bi n. Dòng ra (hay dòng vào) tương ng v i các tham s v trí là các "t " có trong các dòng ó. $9 Tham bi n “$0” ch a tên c a l nh.. “$#” là s lư ng tham bi n v trí (không tính “$0”). $1. $chay vao chuong trinh roi N u chay là m t l nh thì dòng vào này thì: $0 có giá tr chay $1 có giá tr vao $2 có giá tr chuong $3 có giá tr trinh $4 có giá tr roi M t ví d khác v bi n v trí giúp ta phân bi t ư c s khác nhau gi a bi n $* và $@: #!/bin/bash #testparm. Shell bash có ba tham bi n v trí c bi t. “$@” cho phép ta x lý m i i s riêng bi t b i vì giá tr c a chúng là N i s c l p. $myname. ${10} thu ư c các giá tr c a chúng).. “$@” tr v t t c các tham bi n v trí ư c ưa ra dư i d ng N xâu ư c bao trong d u ngo c kép. $myname.Chú ý: không ư c có d u cách (space) ng trư c hay ng sau d u b ng. tham s v trí) là các bi n do shell ã có s n. do nó là m t xâu ơn. “$#”. và “$#”. Ch ng h n ta mu n in ra giá tr c a bi n myname trên ta ch c n ra l nh: echo $myname. $2.sh function cntparm { • 1 2 . ta ph i s d ng cú pháp ${} – ví d . nên có th ư c bi u di n linh ho t hơn không c n yêu c u nhi u mã shell. “$*” là m t danh sách t t c các tham bi n v trí lo i tr “$0”. ã ư c nh d ng như là m t xâu ơn v i m i tham bi n ư c phân cách b i k t $IFS. truy xu t n m t bi n ta dùng cú pháp sau. “$@”. Cách th nh t.

‘ và “.sh Kurt Roland Wall inside cntparm 1 parms: Kurt Roland Wall inside cntparm 3 parms: Kurt Roland Wall outside cntparm: Kurt Roland Wall outside cntparm: Kurt Roland Wall Trong dòng th nh t và th 2 ta th y k t qu có s khác nhau. c./testparm. . dòng th nh t bi n “$*” tr v tham bi n v trí dư i d ng m t xâu ơn. Ký t chú gi i. i m khác nhau gi a các ký t trích d n m nh và trích d n y u. Dòng th hai g i cntparm. # ‘ “ $ * ? Mô t nh hư ng u vào nh hư ng u ra B t u subshell K t thúc subshell Ký hi u d n Dùng hi n ký t c bi t Thi hành l nh ch y ch ng m B t u kh i l nh K t thúc kh i l nh Thư m c home c a ngư i dùng hi n t i Thay th l nh Chia c t l nh L i chú gi i Trích d n m nh Trích d n y u Bi u th c bi n Ký t i di n cho chu i Ký t i di n cho m t ký t Các ký t c bi t c a bash D u chia c t l nh. tương ng là: trích d n m nh b t bash hi u t t c các ký t theo nghĩa en. khi n bash b qua m i ký t t ó cho n h t dòng. 1 2 .echo –e “inside cntparm $# parms: $*” } cntparm ‘$*’ cntparm ‘$@’ echo –e “outside cntparm $* parms\n” echo –e “outside cntparm $@ parms\n” Khi ch y chương trình này ta s thu ư c k t qu : $. . tr v i s dòng l nh c a là 3 xâu c l p. # . vì th cntparm báo cáo m t tham bi n ơn. nó là k t thúc l nh theo lý thuy t POSIX. vì th cntparm báo cáo ba tham bi n. Nhưng quan tr ng hơn. cho phép th c hi n nh ng l nh bash ph c t p ánh trên m t dòng. trích d n y u ch b o h cho m t vài ký t c bi t c a bash . Các ký t c bi t trong bash Ký t < > ( ) | \ & { } ~ ` .

S d ng 4 toán t string u tiên cho k t qu status như sau: $echo ${status:-undefined} defined $echo ${status:=undefined} defined $echo ${status:+undefined} undefined $echo ${status:?Dohhh\! undefined} defined Bây gi s d ng l nh unset xoá bi n status. và th c hi n v n các l nh ó. Các toán t string c a bash minh ho . N u length b b qua. B ng dư i là danh sách các toán t này cùng v i miêu t c th cho ch c năng c a t ng toán t . n u không thì tr v word N u bi n t n t i và xác nh thì tr v giá tr c a nó. cũng ư c g i là các toán t thay th trong tài li u v bash. M t s l nh l p trình trên shell 7. còn không thì tr v null N u bi n t n t i và xác nh thì tr v giá tr c a nó. Tr v m t xâu con c a var b t u t i offset c a dài length. sau ó tr v giá tr c a nó N u bi n t n t i và xác nh thì tr v word. còn không thì hi n th “bash: $var:$message” và thoát ra kh i l nh hay t p l nh hi n th i. ki m tra giá tr c a bi n là chưa gán giá tr ho c kh ng xác nh.word} ${var:= word} ${var:+ word} ${var:?message} ${var: offset[:length]} Ch c năng N u bi n t n t i và xác nh thì tr v giá tr c a nó.2. n u không thì gán bi n thành word. hãy xem xét m t bi n shell có tên là status ư c kh i t o v i giá tr defined.2. Toán t ${var:. toàn b xâu t offset s ư c tr v . S d ng các toán t bash Các toán t string Các toán t string. ư c output như sau: $unset status $echo ${status:-undefined} undefined $echo ${status:=undefined} undefined $echo ${status:+undefined} undefined $unset status $echo ${status:?Dohhh\! undefined} bash:status Dohhh! Undefined 1 3 .1.7.

${var//pattern/string} Thay ph n kh p dài nh t c a pattern trong var b ng string.C n thi t unset status l n th hai vì l nh th ba. Các toán t bash Pattern-Matching Thông thư ng quy t c chu n c a các toán t bash pattern-matching là thao tác v i file và tên ư ng d n. các thư m c riêng bi t ư c phân nh b i d u hai ch m. #!/bin/bash ############################################ myfile=/usr/src/linux/Documentation/ide. b tên file và tr v ư ng d n c a file. Các toán t substring ã có trong danh sách b ng trên c bi t có ích. L nh th 4 làm kh p t t c m i th sau “/”. Bi n môi trư ng $PATH là m t ví d . Toán t này ch có trong bash 2. Toán t này có trong bash 2. M c dù nó có th khá dài. b t u t cu i bi n. Bi u th c ${foo:7} tr v he_Hobbit./pattern. K t qu c a t p l nh này là: $ . Ví d .txt echo ‘${myfile##*/}=’ ${myfile##*/} echo ‘basename $myfile =’ $(basename $myfile) echo ‘${myfile%/*}=’ ${myfile%/*} echo ‘dirname $myfile =’ $(dirname $myfile) L nh th 2 xoá xâu matching “*/” dài nh t trong tên file và tr v tên file. Hãy xét bi n foo có giá tr Bilbo_the_Hobbit. kh i t o l i status thành undefined. Ch thay ph n kh p u tiên. gi s ta có m t tên bi n shell là mylife có giá tr là /usr/src/linux/Documentation/ide.0 ho c l n hơn.sh 1 3 . Thay t t c các ph n kh p. Toán t ${var#pattern} Ch c năng Xoá b ph n kh p (match) ng n nh t c a pattern trư c var và tr v ph n còn l i ${var##pattern} Xoá b ph n kh p (match) dài nh t c a pattern trư c var và tr v ph n còn l i ${var%pattern} Xoá b ph n kh p ng n nh t c a pattern cu i var và tr v ph n còn l i ${var%%pattern} Xoá b ph n kh p dài nh t c a pattern cu i var và tr v ph n còn l i ${var/pattern/string} Thay ph n kh p dài nh t c a pattern trong var b ng string. echo ${status:+undefined}. S d ng m u “/*” và “*/” ta có th tách ư c tên thư m c và tên file.0 hay l n hơn. B ng dư i là danh sách các toán t Pattern-Matching c a bash và ch c năng c a chúng. Các toán t Pattern-Matching Các toán t pattern-matching có ích nh t trong công vi c v i các b n ghi dài bi n hay các xâu ã ư c nh d ng t do ư c nh gi i b i các kí t c nh. trong khi ${foo:7:5} l i tr v he_Ho.txt (tài li u v trình i u khi n ĩa IDE c a nhân).

l nh thay th m i d u hai ch m trong bi n môi trư ng $PATH b ng m t dòng m i. • for – Thi hành m t ho c nhi u câu l nh trong m t s c nh l n. • until – Thi hành m t ho c nhi u câu l nh cho n khi m t i u ki n nào ó tr thành true ho c false. • while – Thi hành m t ho c nhi u câu l nh trong khi m t i u ki n nào ó là true ho c false.2. • select – Thi hành m t ho c nhi u câu l nh d a trên m t kho ng tuỳ ch n c a ngư i dùng. nó bao g m: • if – Thi hành m t ho c nhi u câu l nh n u có i u ki n là true ho c false. 1 3 . k t qu hi n th ư ng d n r t d c (ví d này s sai n u ta không có bash phiên b n 2. i u khi n lu ng Các c u trúc i u khi n lu ng c a bash.${myfile##*/} = ide.txt basename $myfile = ide.2. • case – Thi hành m t ho c nhi u câu l nh ph thu c vào giá tr c a bi n.txt ${myfile%/*} = /usr/src/linux/Documentation dirname $myfile = /usr/src/linux/Documentation minh ho v các toán t pattern-matching và thay th .0 ho c m i hơn): $ echo –e ${PATH//:/\\n} /usr/local/bin /bin /usr/bin /usr/X11R6/bin /home/kwall/bin /home/wall/wp/wpbin Các toán t so sánh chu i ki m tra str1 = str2 str1 != str2 -n str -z str Các toán t so sánh s h c ki m tra -eq -ge -gt -le -lt -ne i u ki n th c str1 b ng str2 str1 khác str2 str có dài l n hơn 0 (khác null) str có dài b ng 0 (null) Toán t sánh chu i c a bash i u ki n th c b ng l n hơn ho c b ng l n hơn nh hơn ho c b ng nh hơn khác Các cách test s nguyên c a bash 7.

tr v 0 n u không có gì khác nhau. Ph c t p hơn. câu l nh if c a bash y ch c năng như c a C. s d ng toán t $? ngay sau khi ch y l nh. Nhìn chung. bash cho phép ta ph i h p các mã thoát trong ph n i u ki n s d ng các toán t && và || ư c g i là toán t logic AND và OR. bash l y 0 có nghĩa là true ho c bình thư ng còn khác 0 là false.7. vì th c n ki m tra tài li u v các chương trình ta ki m tra mã thoát v i i u ki n if. vì th không có h n ch nào c . Tương t . Không quan tâm n cách mà chương trình xác nh mã thoát c a chúng. thì m nh else s ư c thi hành và i u khi n nh y t i dòng u tiên c a mã fi. N u m t câu i u ki n ho t ng không như mong i thì hãy ki m tra tài li u v mã thoát . m nh else (tuỳ ch n) s ch thi hành khi t t c else không th a mãn. sau ó statements s ư c thi hành. N u nó là 0 (true). Ta có th k t h p l i c 2 lo i toán t l i có m t bi u th c như sau: command1 && comamnd2 || command3 N u câu l nh command1 ch y thành công thì shell s ch y l nh command2 và n u command1 không ch y thành công thì command3 ư c ch y. 1 3 . Cú pháp y cho toán t AND như sau: command1 && command2 Câu l nh command2 ch ư c ch y khi và ch khi command1 tr v tr ng thái là s 0 (true). 1 n u có s khác bi t và 2 n u có v n nào ó. ta c n ph i ch c ch n r ng mình hi u if ki m tra tr ng thái thoát c a câu l nh last trong condition. Cú pháp cho toán t OR thì như sau: command1 || command2 Câu l nh command2 ch ư c ch y khi và ch khi command1 tr l i m t giá tr khác 0 (false). nhưng n u nó khác 0.1 C u trúc r nhánh có i u ki n if Bash cung c p s th c hi n có i u ki n l nh nào ó s d ng câu l nh if. Ví d chương trình diff. $? tr v mã thoát c a l nh ch y ngay lúc ó. N u ta c n c th ki m tra m t mã thoát c a l nh.2.2. Các m nh elif (tuỳ ch n) (có th nhi u tuỳ ý) s ch thi hành khi i u ki n if là false. và khác 0 n u ngư c l i. Chú ý: Không ph i t t c chương trình u tuân theo cùng m t chu n cho giá tr tr v . Cú pháp c a nó ư c khái quát như sau: if condition then statements [elif condition statements] [else statements] fi u tiên. các chương trình Linux tr v 0 n u thành công hay hoàn toàn bình thư ng.

n u không thì l nh "echo File is not removed" ư c ch y.else # if [ $1 -gt 0 ].bak then # more code here fi C hai o n mã u th c hi n cùng m t ch c năng. B ng dư i là danh sách các toán t test file ph bi n nh t (danh sách hoàn ch nh có th tìm th y trong nh ng trang manual y v bash). khá nhi u và hoàn ch nh. ây là i u ki n c n thi t trong cú pháp shell c a bash. Gi s trư c khi ta vào trong m t kh i mã... nhưng o n th hai ng n hơn nhi u. M c dù if ch ki m tra các mã thoát. then echo "$1 is positive" elif [ $1 -lt 0 ] then echo "$1 is negative" elif [ $1 -eq 0 ] then echo "$1 is zero" else echo "Opps! $1 is not number. như là o n mã sau: if cd /home/kwall/data then if cp datafile datafile. Ta có th ki m tra các thu c tính file.elif. bash cho phép ta vi t o n mã này súc tích hơn nhi u như sau: if cd /home/kwall/data && cp datafile datafile. Chú ý: Các kho ng tr ng trư c d u m ngo c và sau d u óng ngo c trong [condition] là c n ph i có.bak then # more code here fi fi Tuy nhiên. give number" fi S lư ng các phép toán i u ki n c a bi n hi n t i kho ng 35. Có m t cách th c hi n i u này là s d ng các toán t if l ng nhau.Ví d : $ rm myf && echo "File is removed successfully" || echo "File is not removed" N u file myf ư c xóa thành công (giá tr tr v c a l nh là 0) thì l nh "echo File is removed successfully" s ư c th c hi n. M t ví d khác v cách s d ng c u trúc if: #!/bin/sh # Script to test if. ta ph i thay i m t thư m c và copy m t file. g n nh và ơn gi n. so sánh các xâu và các bi u th c s h c. 1 3 . ta có th s d ng c u trúc […] l nh test ki m tra các i u ki n ph c t p hơn. test cũng có tác d ng tương t . [condition] tr v giá tr bi u th condition là true hay false..

Toán t -d file -e file -f file -r file -s file -w file -x file -O file -G file file1 -nt file2 file1 -ot file2 i u ki n true file t n t i và là m t thư m c file t n t i file t n t i và là m t file bình thư ng(không là m t thư m c hay m t file c bi t) file cho phép c file t n t i và khác r ng file cho phép ghi file kh thi ho c n u file là m t thư m c thì cho phép tìm ki m trên file file c a ngư i dùng hi n t i file thu c m t trong các nhóm ngư i dùng hi n t i là thành viên file1 m i hơn file2 file1 cũ hơn file2 Các toán t test file c a bash Ví d chng trình shell cho các toán t test file trên các thư m c trong bi n $PATH.sh 1 3 . Mã cho chương trình descpath. do echo $dir if [ -w $dir ]. then echo -e "\tYou own $dir" else echo –e “\tYou don’t own $dir” fi if [ -G $dir ]. then echo -e "\tYou have write permission in $dir" else echo –e “\tYou don’t have write permission in $dir” fi if [ -0 $dir ].sh như sau: #!/bin/bash ################################ IFS=: for dir in $PATH. then echo -e "\tYou are a member of $dir's group" else echo -e "\tYou aren't a member of $dir's group" fi done Chương trình descpath.

2. Tuy nhiên vòng l p for là công c l p thư ng xuyên ư c s d ng b i vì nó i u khi n g n gàng trên các danh sách. Toán t ! expression expression1 -a expression2 expression1 -o expression2 Ý nghĩa Logical NOT Logical AND Logical OR 7. Pascal. for cho phép ta ch y m t o n mã m t s l n nh t nh. như là các tham s dòng l nh và các danh sách các file trong thư m c. Cú pháp y c a for là: for value in list 1 3 . Tuy nhiên c u trúc for c a bash ch cho phép ta l p i l p l i trong danh sách các giá tr nh t nh b i vì nó không t ng tăng hay gi m con m vòng l p như là C.Vòng l p for (gi i thi u trong ph n dư i) s duy t toàn b các ư ng d n thư m c trong bi n PATH sau ó ki m tra các thu c tính c a thư m c ó. Dư i ây là m t b ng các bi u th c logic trong shell.2 Các vòng l p ã quy t nh: for Như ã th y chương trình trên.2. K t qu như sau (k t qu có th khác nhau trên các máy khác nhau do giá tr c a bi n PATH khác nhau): /usr/local/bin You don’t have write permission in /usr/local/bin You don’t own /usr/local/bin You aren’t a member of /usr/local/bin’s group /bin You don’t have write permission in /bin You don’t own /bin You aren’t a member of /bin’s group /usr/bin You don’t have write permission in /usr/bin You don’t own /usr/bin You aren’t a member of /usr/bin’s group /usr/X11R6/bin You don’t have write permission in /usr/X11R6/bin You don’t own /usr/X11R6/bin You aren’t a member of /usr/X11R6/bin’s group /home/kwall/bin You have write permission in /home/kwall/bin You own /home/kwall/bin You are a member of /home/kwall/bin’s group /home/kwall/wp/wpbin You have write permission in /home/kwall/wp/wpbin You own /home/kwall/wp/wpbin You are a member of /home/kwall/wp/wpbin’s group Các bi u th c trong ph n i u ki n cũng có th k t h p v i nhau t o thành các bi u th c ph c t p hơn b ng các phép toán logic. hay Basic.

M t ví d khác v vòng for ơn gi n như sau: #!/bin/bash for i in 1 2 3 4 5 do echo "Welcome $i times" done Ta cũng có m t c u trúc v for như sau.. M t cú pháp khác c a l nh for có d ng như sau: for (( expr1.doc thành file *.txt.doc}.doc doc\*.doc b ng cách thay th .txt s d ng vòng l p for c a bash bù p nh ng thi u sót này. ví d như là tên file..do statements using $value done list là m t danh sách các giá tr . expr2. . repeat all statements between do and done until expr2 is TRUE done Linux không có ti n ích i tên hay copy các nhóm c a file. o n mã dư i ây có th ư c chuy n thành chương trình shell th c hi n úng như nh ng gì ta mu n: for docfile in doc/*. ta có th s d ng l nh COPY copy *.doc cu i c a tên file b ng . o n mã này làm vi c copy các file có ph n m r ng là *. Giá tr là m t thành viên danh sách ơn và statements là các l nh s d ng value./for2 Welcome 0 times Welcome 1 times Welcome 2 times Welcome 3 times 1 3 . i <= 5.txt. Trong MS-DOS n u ta có 17 file có ph n m r ng a*.doc do cp $docfile ${docfile%. expr3 )) do . chương trình này cũng có cùng ch c năng như chương trình trên nhưng ta chú ý n s khác bi t v cú pháp c a l nh for.txt done S d ng m t trong các toán t pattern-matching c a bash..doc.... L nh DOS như sau: C:\ cp doc\*. #!/bin/bash for (( i = 0 . i++ do echo "Welcome $i times" done )) $ chmod +x for2 $ .

Number missing form command line argument" echo "Syntax : $0 number" echo "Use to print multiplication table for given number" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do echo "$n * $i = `expr $i \* $n`" done Khi ta ch y chương trình v i tham s : $ chmod 755 mtable $ . i <= 5..Welcome 4 times Welcome 5 times Ti p theo là m t ví d v vòng for l ng nhau: #!/bin/bash for (( i = 1. i++ )) do ### Outer for loop ### for (( j = 1 . j <= 5./mtable 7 Ta thu ư c k t qu như sau: 7*1=7 7 * 2 = 14 .2...3 Các vòng l p không xác nh: while và until 1 3 . . j++ )) ### Inner for loop ### do echo -n "$i " done Ví d khác v cách s d ng c u trúc if và for như sau: #!/bin/sh #Script to test for loop # # if [ $# -eq 0 ] then echo "Error .2. 7 * 10 = 70 7.

Dư i ây là chương trình: #!/bin/sh # declare -i idx idx=1 while [ $idx != 150] do cp somefile somefile. M i l n l p idx tăng lên. ta mu n copy 150 b n c a m t file. Câu l nh declare kh i t o m t bi n. thì th c hi n statements cho n khi condition tr thành false (cho n khi m t chương trình hay m t l nh tr v khác 0): until condition do statements done Cú pháp until có nghĩa là trái ngư c v i while: cho n khi condition tr thành true thì thi hành statements (có nghĩa là cho n khi m t l nh hay chương trình tr v mã thoát khác 0) C u trúc while c a bash kh c ph c thi u sót không th t ng tăng. thì vòng l p while là m t l a ch n gi i quy t bài toán này. nó s ư c ki m tra thoát kh i vòng l p.Number missing form command line argument" echo "Syntax : $0 number" echo " Use to print multiplication table for given number" exit 1 fi n=$1 i=1 while [ $i -le 10 ] 1 3 . nh nghĩa là m t s nguyên. gi m con m cua vòng l p for.$idx idx=$idx+1 done Chương trình này gi i thi u cách s d ng tính toán s nguyên c a bash. Cú pháp c a nó như sau: while condition do statements done Cú pháp này có nghĩa là khi nào condition còn true. các c u trúc while và until c a bash cho phép m t o n mã ư c thi hành liên t c cho n khi m t i u ki n nào ó x y ra.Vòng l p for gi i h n s l n mà m t o n mã ư c thi hành. idx. Vòng l p until tuy cũng có kh năng gi ng while nhưng không ư c dùng nhi u vì r t khó vi t và ch y ch m. M t ví d n a v cách s d ng vòng l p while ư c minh h a trong chương trình in b n nhân c a m t s : #!/bin/sh #Script to test while statement # # if [ $# -eq 0 ] then echo "Error . Ví d . Ch v i chú ý là o n mã này c n vi t sao cho i u ki n cu i ph i x y ra n u không s t o ra m t vòng l p vô t n.

4 Các c u trúc l a ch n: case và select C u trúc i u khi n lu ng ti p theo là case. ho t ng cũng tương t như l nh switch c a C.] esac expr ư c em i so sánh v i t ng pattern. n u nó b ng nhau thì các l nh tương ng s ư c thi hành. Nó cho phép ta th c hi n các kh i l nh ph thu c vào giá tr c a bi n.do echo "$n * $i = `expr $i \* $n`" i=`expr $i + 1` done 7.2.…n u có m t m u nào ó kh p thì kh i l nh tương ng v i m u ó s ư c th c thi. sau ó nó thoát ra kh i l nh case. l nh case c a bash cho phép ta ki m tra giá tr c a expr d a vào pattern.. pattern2 ) statements . t o ra i u khi n nh y t i dòng u tiên c a mã esac.. nó không có s tương t như trong các ngôn ng l p trình quy ư c.. select cho phép ta d dàng trong vi c xây d ng các menu ơn gi n và áp ng các ch n l a c a ngư i dùng. C u trúc i u khi n select (không có trong các phiên b n bash nh hơn 1.sh – Createing simple menus with select ####################################### IFS=: PS3=“choice? ” # clear the screen clear 1 4 . pattern2.. Cách làm vi c c a c u trúc case như sau: nó s kh p (match) bi u th c expr v i các m u pattern1. ta th y ây là m u có th kh p v i b t kỳ giá tr nào (ký t i di n là *). Cú pháp y c a case như sau: case expr in pattern1 ) statements .14) ch riêng có trong Korn và các shell bash. Thêm vào ó. nên các l nh trong nhánh này s ư c th c hi n. D u . là tương ương v i l nh break c a C.2. Cú pháp c a nó như sau: select value [in list] do statements that manipulate $value done Dư i ây là m t ví d v cách s d ng l nh select: #!/bin/bash # menu. nó có th ch a các kí t i di n. Không như t khoá switch c a C. N u t t c các m u u không kh p và ta có s d ng m u * (trong nhánh *)). … [*) statements .

Chú ý: Như ã gi i thi u. Sau khi xoá s ch màn hình. m t thông báo l i s ư c hi n th . các vòng l p script không k t thuc n u ta không nh n Ctrl+C. l nh ls ư c th c hi n k t qu ư c g i cho l nh m t wc m s file trong thư m c và hi n th k t qu có bao nhiêu file trong thư m c ó. nó bư c vào m t vòng l p. then cnt=$(ls –Al $dir | wc -l) echo “$cnt files in $dir” else echo “Dohhh! No such choice!” fi echo –e “\nPress ENTER to continue. script u tiên c n ch c ch n là $dir khác null (n u nó là null. CTRL –C to quit” read clear done Chương trình t o các menu b ng select L nh u tiên t kí t IFS là : (ký t phân cách). Sau ó nó thay i l i nh c default khi select b ng bi n PS3. vì th select có th phân tích hoàn ch nh bi n môi trư ng $PATH. 1 4 . Câu l nh read ( ư c gi i thi u sau) cho phép ngư i dùng ánh vào l a ch n c a mình và nh n Enter l p l i vòng l p hay nh n Ctrl + C thoát. N u ngư i dùng ch n không h p l . Do ls có th s d ng mà không c n i s . ưa ra m t danh sách các thư m c n m trong $PATH và nh c ngư i dùng ch n l a như là minh ho trong hình dư i. ls s ho t ng trên thư m c hi n hành n u ngư i dùng ch n 1 menu không h p l ). N u ngư i dùng ch n h p l .select dir in $PATH do if [ $dir ]. Tuy nhiên ta có th s d ng l nh break thoát ra.

<.5 Các hàm shell Các hàm ch c năng c a bash là m t cách m r ng các ti n ích s n có trong shell. • Cho phép vi c l p trình tr nên d dàng hơn vì ta có th t ch c chương trình thành các module.bash_profile > out 1 4 . ta có th cung c p u vào là m t lênh t m t file ho c là l nh s d ng toán t u vào. Ví d như l nh sau: $ cat $HOME/. > và <.2. các bi n a phương có th khai báo c c b i v i hàm. hàm c a bash không ư c ch t ch .7. Ta có th nh nghĩa các hàm shell s d ng theo hai cách: function fname { commands } ho c là fname() { commands } C hai d ng u ư c ch p nh n và không có gì khác gi a chúng. Tuy nhiên gi ng như C và Pascal.2. nó không ki m tra l i và không có phương th c tr v i s b ng giá tr . Tương t . S d ng các hàm và các chú thích ta s r t nhi u công s c khi ta ph i tr l i nâng c p o n mã mà ta ã vi t t th i gian r t lâu trư c ó.2. b ng cách nh hư ng u ra c a cat t i file ó. N u so sánh v i C hay Pascal. Tacó th vi t l i l nh cat s d ng toán t nh hư ng u vào như sau: $ cat < $HOME/. Các hàm shell giúp mã c a ta d hi u và d b o dư ng. nó có các i m l i sau: • Thi hành nhanh hơn do các hàm shell luôn thư ng tr c trong b nh . 7. th c hi n i u này ta dùng t khoá local như trong o n mã sau: function foo { local myvar local yourvar=1 } Trong ví d v các bi n v trí trên ta cũng th y ư c cách s d ng hàm trong bash. do ó tránh ư c s xung t v i bi n toàn c c.3 Các toán t nh hư ng vào ra Ta ã ư c bi t v các toán t nh hư ng vào ra. Toán t nh hư ng ra cho phép ta g i k t qu ra c a m t l nh vào m t file.bash_profile > out Nó s t o m t file tên là out trong thư m c hi n t i ch a các n i dung c a file bash_profile. g i m t hàm ã nh nghĩa ơn gi n là g i tên hàm cùng v i các i s mà nó c n.

caldera. --help : hi n h tr và thoát. >.com user $USER $PASS cd /pub ls close END 7. Hi n dòng văn b n L nh echo hi n ra dòng văn b n ư c ghi ngay trong dòng l nh có cú pháp: echo [tùy ch n] [xâu ký t ]… v i các tùy ch n như sau: -n : hi n xâu ký t và d u nh c trên cùng m t dòng. 1 4 . i u khi n.K t qu c a l nh này v n như th nhưng nó cho ta hi u thêm v cách s d ng nh hư ng u vào u ra.bashrc M t cách s d ng nh hư ng u vào là u vào chu n (bàn phím). Ví d . M t s b n Linux không h tr tham s này. dùng l nh echo v i tham s -e # echo -e ‘th dùng l nh echo \n’ s th y hi n ra chính dòng văn b n l nh: th dùng l nh echo # ây ký t i u khi n ‘\n’ là ký t xu ng dòng. -e : b t kh năng thông d ch ư c các ký t -E : t t kh năng thông d ch ư c các ký t i u khi n.2. Cú pháp c a l nh này như sau: Command << label Input … Label Cú pháp này nói lên r ng command c các input cho n khi nó g p label. vì th bash cung c p toán t n i thêm d li u. >>. cho phép n i thêm d li u vào cuôi file. s ghi è lên b t c file nào ang t n t i. Toán t nh hư ng u ra. ôi khi i u này là không mong mu n.4. Hay xem l nh thêm bí danh cdlpu vào cu i c a file .com ftp -i -n << END open ftp. Dư i ây là ví d v cách s d ng c u trúc này: #!/bin/bash #################################### USER=anonymous PASS=kwall@xmission.bashrc c a tôi: $echo “alias cdlpu=’cd $HOME/kwall/projects/lpu’ ” >> $HOME/.

Tính toán trên shell có d ng: `expr <bi u th c>` 1 4 . M t cách t ng các t trong k t qu th c hi n l nh s gán tương ng cho các bi n t ng (t $1 tr i). ta dùng l nh set D ng l nh set set `<l nh>` Sau l nh này. mod (%).arg có n i dung như sau: #!/bin/sh # Chuong trinh hoi ten nguoi va hien lai echo "Ten anh la gi?" read name echo "Xin chao. nhân (*). L nh set gán k t qu ư ra t l nh shell ra các bi n t ng. $# = 6 $* = Tue Oct 20 7:20:15 EST 1998 $1 = Tue $2=Oct $3 = 20 $4 = 7:20:15 $5 = EST $6 = 1998 7. chia (/). anh go 6 doi so Hoi ten nguoi va hien lai 7. anh go $# doi so" echo "$*" Sau ó. Bi u th c th c hi n theo các phép toán ã nêu.6.5. Tính toán trên các bi n Các tính toán trong shell ư c th c hi n v i các i s nguyên. Tran Van An.7. tr (-). Xem xét m t ví d sau ây (chương trình thu2. Các phép toán g m có: c ng (+). L nh read c d li u cho bi n ngư i dùng L nh read có d ng read <tên bi n> Ví d chương trình shell có tên thu1. chúng ta nh n ư c: Thoi gian: 7:20:15 EST Thu: Tue Ngay 20 thang Oct nam 1998 Như v y.2. $name .arg Hoi ten nguoi va hien lai s th y xu t hi n Ten anh la gi? Tran Van An Xin chao. k t qu th c hi n l nh không hi ra lê màn hình mà gán k t qu ó tương ng cho các bi n t ng.arg) có n i dung: #!/bin/sh # Hien thoi diem chay chuong trinh nay set `date` echo "Thoi gian: $4 $5" echo "Thu: $1" echo "Ngay $3 thang $2 nam $6" Sau khi i mode c a File chương trình này và ch y.2.7. ta th c hi n $chmod u+x thu1.2.arg và $thu1.

shl sau ây: #!/bin/sh # Tinh va in hai so tong = `expr $1 + $2` echo "Tong = $tong" Sau ó.. khi i mod và ch y $cong.8.shl 5 6 s hi n ra: Tong = 11 7.Ví d . while do done # va cac CT test. while read mode link user group size month day hour name do if [ -d $name ] then echo $name $size \($mode\) 1 4 # Chuyen vao thu muc can list # Neu thu muc khong ton tai thi ra khoi CT .2.' cua lenh ls -lL read x y . Chương trình ví d /* Program 5 */ #!/bin/sh # Chuong trinh liet ke cac thu muc con cua 1 thu muc # Minh hoa cach su dung if then fi. chương trình v i tên cong. expr if test $# -ne 1 then echo Cu phap: $0 \<Ten thu muc\> exit 1 fi cd $1 if test $? -ne 0 then exit 1 fi ls -lL |\ # Liet ke ca cac thong tin cua symbolic link # Su dung sub-shell de tu giai phong bien { sum=0 # Lenh read x y de bo di dong 'total 1234.

Trình biên d ch gcc H i u hành UNIX luôn kèm theo b d ch ngôn ng l p trình C v i tên g i là cc (C compiler). 1 4 . Như ã nói trên. return 0.1.fi done } 7. nó biên d ch mã ngu n ti n x lý sang mã obj .h> int main (void) { fprintf( stdout. Linux programming world!\n”). Ta có th ki m soát lư ng cũng như ki u thông tin c n debug. ta xem m t ví d sau: #include<stdio. L p trình C trên UNIX 7. b d ch có tên là gcc (GNU C Compiler) v i ngôn ng l p trình không khác nhi u v i C chu n.3. t o ra mã nh phân cho chương trình hello. trình liên k t. Trong Linux. N i dung chi ti t v các ngôn ng l p trình trên Linux thu c ph m vi c a các tài li u khác. Linux programming world! Dòng l nh u tiên ch cho gcc ph i biên d ch và liên k t file ngu n hello. gcc thích h p biên d ch C++ hay Objective-C. Trư c khi b t u i sâu vào nghiên c u gcc.c –o hello $ .c. m r ng b t kỳ m t macro nào và chèn thêm vào n i dung c a nh ng file #include. t o ra t p tin th c thi. gcc trư c khi ch y hello. b ng cách ch nh s d ng i s -o hello. } M t chương trình i n hình dùng minh ho vi c s d ng gcc biên d ch và ch y chương trình này hãy gõ: $ gcc hello. gcc cũng có th ch p nh n ngôn ng khác c a C. như ANSI C hay C truy n th ng. gcc cho ngư i l p trình ki m tra trình biên d ch. t t nhiên là có th nhúng trong quá trình nh phân hóa k t qu và gi ng như h u h t các trình biên d ch.c thông qua b ti n x lý c a cpp. gcc cũng th c hi n t i ưu hóa mã. và k t qu cho ra trên dòng th 3. Quá trình biên d ch bao g m b n giai o n: • Ti n x lý • Biên d ch • T ph p • Liên k t Ta có th d ng quá trình sau m t trong nh ng giai o n ki m tra k t qu biên d ch t i giai o n y. Ti p n. Dòng l nh th hai th c hi n chương trình. Cu i cùng./hello Hello.3. “Hello. Có nhi u ch mà ta không nhìn th y ư c.

Gi s có m t ví d . ta không c n ch nh tên c a file output b i vì trình biên d ch t o m t tên file obj b ng cách thay th .o Trong trư ng h p này.c helper. M t s tuỳ ch n dòng l nh c a gcc: -o FILE Ch nh tên file output. Làm th nào gcc bi t chia lo i c bi t c a file? Nó d a vào uôi m r ng c a file trên xác nh rõ ph i x lý file như th nào cho dúng. N u FILE không ư c ch rõ thì tên m c nh s là a. Bư c ti p theo là biên d ch hello.so Mã ngu n ngôn ng C Mã ngu n ngôn ng C++ Mã ngu n C ti n x lý Mã ngu n C++ ti n x lý Mã ngu n Hơp ng Mã i tư ng biên d ch (obj) Mã thư vi n biên d ch Các ph n m r ng c a tên file i v i gcc Liên k t file i tư ng.c ta ph i dùng dòng l nh sau: $ gcc killerapp.biên d ch – liên k t. lúc này t o ra các file obj cho m i file ngu n trư c khi t o ra mã nh phân cho killerapp. Ph n m r ng . S d ng tuỳ ch n –c c a gcc hoàn thành: $ gcc –x cpp-output -c hello. . H u h t các chương trình C ch a nhi u file ngu n thì m i file ngu n ó u ph i ư c biên d ch sang mã obj trư c khi t i bư c liên k t cu i cùng.c .cpp . ta s d ng tuỳ ch n –E c a gcc: $ gcc –E hello.c –o hello. H u h t nh ng uôi m r ng thông thư ng và chú thích c a chúng ư c li t kê trong b ng dư i.Ta có th t o l i t ng bư c này b ng tay. cùng v i nh ng mã thông báo ti n x lý khác.c.c là chương trình s d ng ph n mã c a helper. như v y biên d ch killerapp. .s . Tuỳ ch n –x ch cho gcc bi t b t u biên d ch bư c ư c ch báo trong trư ng h p này v i mã ngu n ti n x lý.o –o hello Trong trư ng h p .cpp Xem xét hello.cpp –o hello. ta ch mu n t o ra các file obj. -c Biên d ch không liên k t. .o.ii Ki u .S.i .c –o killerapp gcc qua l n lư t các bư c ti n x lý .h ư c chèn vào file. không c n thi t khi biên d ch sang mã obj. và như v y thì bư c liên k t là không c n thi t.cpp và ta có th th y n i dung c a stdio.c.out.c b i . và cu i cùng t o ra mã nh phân: $ gcc hello. ch cho gcc bi t ph i d ng vi c biên d ch sau khi ti n x lý. chia thành t ng bư c qua ti n trình biên d ch. 1 4 .a. ta ang làm vi c trên killerapp.cpp sang mã obj.o .

2. Thông báo ra t t c nh ng c nh báo h u ích thông thư ng mà gcc có th cung c p. vi c biên d ch s r t ph c t p vì ph i vi t các dòng l nh gcc r t là dài. 0<=N<=3. còn file nào không b thay i thì nó s không làm gì c .gdb m i có th hi u ư c T i ưu hoá mã biên d ch Ch nh m t m c t i ưu hoá mã N.-DF00=BAR -IDIRNAME -LDIRNAME -static -lF00 -g -ggdb -O -ON -ANSI -pedantic -pedantic-erors -traditional -w -Wall -werror -MM -v 7.3. Công c GNU make nh nghĩa macro ti n x lý t tên F00 v i m t giá tr c a BAR trên dòng l nh. 1 4 . Nó cũng làm t i ưu hóa quá trình d ch b ng cách phát hi n ra nh ng file nào có thay i thì nó m i d ch l i. Ch n t t c thông i p c nh báo. Chuy n i t t c nh ng c nh báo sang l i mà s làm ngưng ti n trình biên d ch. công c GNU make ã ư c ưa ra. V i m c nh gcc liên k t d a trên nh ng thư vi n dùng chung Liên k t d a trên nh ng thư vi n tĩnh Liên k t d a trên libF00 Bao g m chu n g r i thông tin mã nh phân Bao g m t t c thông tin mã nh phân mà ch có chương trình g r i GNU. H tr chu n ANSI/ISO c a C. Hi n ra t t c các l nh ã s d ng trong m i bư c c a ti n trình biên d ch. Cho ra t t c nh ng c nh báo quy nh b i chu n Thông báo ra t t c các l i quy nh b i chu n ANSI/ISO c a C. Cho ra m t danh sách s ph thu c tương thích ư c t o. vì v y th i gian d ch s ư c rút ng n. GNU make ư c gi i quy t b ng cách ch a t t c các dòng l nh ph c t p ó trong m t file g i là makefile. Trư c khi chưa quy t nh ư c DIRNAME hãy tìm ki m nh ng file include trong danh sách các thư m c( tìm trong danh sách các ư ng d n thư m c) Trư c khi chưa quy t nh ư c DIRNAME hãy tìm ki m nh ng file thư vi n trong danh sách các thư m c. lo i b nh ng m r ng c a GNU mà xung t v i chu n( tuỳ ch n này không b o m mã theo ANSI). H tr cho cú pháp ngôn ng C c a Kernighan và Ritchie (gi ng như cú pháp nh nghĩa hàm ki u cũ). kh c ph c tình tr ng này. Trong trư ng h p ta vi t m t chương trình r t l n ư c c u thành b i t nhi u file.

o 2. c ng song song. Làm vi c v i file Trong Linux.c.o screen. Dependency là m t danh sách các file c n thi t như là u vào t o ra target. keyboard. GNU make s tìm các file có tên là GNUmakefile. gcc -c screen. editor có 3 dependencies editor. keyboard. editor : editor.c. gcc -o editor. clean: 10.h 6.h.o keyboard. làm vi c v i file ta s d ng mô t file (file descriptor).o : editor. keyboard.h screen.c editor. gcc -c keyboard. Trong makefile này ch a t t c 5 lu t. editor.o : keyboard. ây chính là file mà make s ph i t o ra. gi 1 4 . screen.c 5.h 8.o.3. M t trong nh ng thu n l i trong Linux và các h th ng UNIX khác là giao di n file làm như nhau i v i nhi u lo i thi t b .o.3. các lu t này s báo cho chương trình make bi t ph i làm gì và làm như th nào.o biên d ch chương trình này ta ch c n ra l nh make trong thư m c ch a file này.o screen.o keyboard. 1. gcc -c editor.o : screen. Dòng th 2 là l nh mà make s g i th c hi n t o ra ích trên. Các lu t s có cú pháp như sau: target: dependency1. Dư i ây là m t ví d v m t makefile v t o ra m t chương trình kh thi có tên là editor (s hi u dòng ch ưa vào ti n theo dõi.c screen. lu t u tiên có ích là editor ư c g i là ích ng m nh. screen.h keyboard. ….c keyboard.h 4.o 3.h.c 9. screen. keyboard.h. makefile hay Makefile. screen. Chương trình này ư c t o ra b i m t s các file ngu n: editor.o.M t makefile là m t cơ s d li u văn b n ch a cách lu t. Command là các bư c c n thi t (ch ng h n như g i chương trình d ch) t o ra target.c 7. các thi t b vào/ra. dependency2. ĩa t .c. 7. command command …… Target thư ng là m t file như file kh thi hay file object ta mu n t o ra. còn n i dung c a makefile không ch a s hi u dòng). T t c các file này ph i t n t i thì m i t o ra ư c ích trên. editor. M t lu t bao g m các thành ph n như sau: • ích (target) – cái mà make ph i làm • M t danh sách các thành ph n ph thu c (dependencies) c n t o ra ích • M t danh sách các câu l nh th c thi trên các thành ph n ph thu c Khi ư c g i. rm *. Các dòng ti p theo là các ích và các l nh tương ng t o ra các file i tư ng (object).

và chu t ư c qu n lý như các thi t b c bi t gi ng như các t p thông thư ng l p trình ng d ng. i s pathname là m t xâu ch ra ư ng d n n file s ư c m . 1 và 2 liên quan n các dòng (streams) vào ra chu n: stdin. mode_t mode). Mã l i ư c ghi trong trang chính tuỳ theo t ng l i g i h th ng. Khuôn m u c a hàm và gi i thích tham s và c c a nó ư c cho dư i ây: #include <sys/types. stderr và stdout. s d ng mô t file như th chúng là các file chu n. int open(const char *pathname. Các ng (pipe) cũng tương t các file chu n. c ng máy in. Tham s flags nh n m t trong các giá tr O_RDONLY. Các giá tr 0. H u h t các l i g i ó tr v giá tr -1 khi có l i x y ra và bi n errno ghi mã l i. khi k t n i ư c thi t l p. b ng m ch âm thanh.h> #include <fcntl. ba dòng ó thư ng k t n i v i máy c a ngư i s d ng và có th ư c chuy n ti p (redirect).máy tr m (pseudoterminal). O_WRONLY ho c O_RDWR C O_RDONLY O_WRONLY O_RDWR O_CREAT O_EXCL O_NOCTTY O_TRUNC O_APPEND O_NONBLOCK O_NODELAY O_SYNC Chú gi i M file c M file ghi M file c và ghi T o file n u chưa t n t i file ó Th t b i n u file ã có Không i u khi n tty n u tty ã m và ti n trình không i u khi n tty C t file n u nó t n t i N i thêm và con tr t cu i file N u m t quá trình không th hoàn thành mà không có tr . Thông s th ba xác nh ch c a file Unix (các bit ư c phép) ư c s d ng khi t o m t file và nên ư c s d ng khi t o m t file . M t mô t file ơn gi n ch là m t s nguyên ư c s d ng như ch m c (index) vào m t b ng các file m liên k t v i t ng ti n trình.h> #include <sys/stat. Hàm open() L i g i open() s d ng m m t file. tr v tr ng thái trư c ó Tương t O_NONBLOCK Thao tác s không tr v cho n khi d li u ư c ghi vào ĩa ho c thi t b khác Các giá tr c c a hàm open() 1 5 . Hàm perror() ư c s d ng hi n th n i dung thông báo l i d a trên mã l i. Các socket TCP/IP và mi n.h> int open(const char *pathname. int flags). M t s l i g i h th ng s d ng mô t file. int flags.

i s th hai là con tr t i b m ( sao chép d li u.h> int close(int fd). N u quá trình óng file làm cho b m liên k t b ng 0 thì file s b xoá. Hàm create() cũng tương t như open() v i các c O_CREATE | O_WRONLY | O_TRUNC Hàm close() Chúng ta nên óng mô t file khi ã thao tác xong v i nó. void *buf. size_t count).h> ssize_t write(int fd.open() tr v m t mô t file n u không có l i x y ra. Hàm write() L i g i h th ng write() s d ng ghi d li u vào file tương ng v i m t mô t file. i s th hai là m t con tr t i b m sao chép d li u và i s th ba là s byte s ư c c. is u tiên là s mô t file ư c tr v t l i g i open() trư c ó. Tr v giá tr 0 n u thành công và -1 n u có l i x y ra. is u tiên là mô t file mà ư c tr v t l i g i open() trư c ó. size_t count). read() tr v s byte ư c c ho c -1 n u có l i x y ra. is ó là s T t c các khoá (lock) do ti n trình x lý trên file ư c gi i phóng. nó tr v giá tr -1 và t giá tr cho bi n errno. Ch có m t mô t file mà l i g i open() tr v . Hàm read() L i g i h th ng read() s d ng c d li u t file tương ng v i m t mô t file. N u ây là mô t file cu i cùng liên k t n m t file ư c m thì b n ghi b ng file m ư c gi i phóng. #include <unistd. N u không ph i là m t file bình thư ng thì các hi u ng không mong mu n có th x y ra. D ng c a l i g i close() là: #include <unistd. cho dù chúng ư c t mô t file khác. size_t length). có dung lư ng l n ch a d li u) và i s th ba xác nh s byte s ư c ghi. Khi có l i . Hàm lseek() Hàm lseek() t i v trí offset t v trí c và ghi hi n t i trong file ư c tham chi u b i mô t file files dài ư c xác 1 5 .h> int ftruncate(int fd. #include <unistd.h> ssize_t read(int fd. write() tr v s byte c ho c -1 n u có l i x y ra Hàm ftruncate() L i g i h th ng ftruncate() c t file tham chi u b i mô t file fd v i nh b i tham s length #include <unistd. const void *buf.

/* s hi u nhóm c a ngư i ch */ st_rdev. ho c cu i file (SEEK_END).h> int fchown(int fd. ho c m t giá tr c a off_t .#include <sys/types. /* ch b o v */ st_nlink. Ph thu c vào giá tr c a whence. i ngư i ch và nhóm ngư i ch k t h p #include <sys/types. uid_t owner. off_t offset. /* ki u thi t b */ st_size.K t qu tr v giá tr 0 n u thành công và nh n giá tr -1 n u sai ( ki m tra l i). Sau ây là nh nghĩa c a struct stat: struct stat { dev_t int_t mode_t nlink_t uid_t gid_t dev_t off_t unsigned long unsigned long time_t time_t time_t }. /* th i gian c p nh t cu i cùng */ st_ctime. và tham s th ba là s nh danh c a nhóm ngư i ch . /* th i gian truy c p cu i cùng*/ st_mtime. giá tr -1 n u có l i. giá tr c a offset là v trí b t u (SEEK_SET). nơi k t qu c a struct stat ư c ch ra con tr ch n buf(). /* th i gian thay i cu i cùng */ L i g i h th ng fchown() cho phép tathay v i vi c m file. gid_t group).h> #include <unistd. #include <sys/stat. /* kích thư c kh i*/ st_blocks. Ngư i dùng ho c nhóm ngư i dùng s ư c 1 5 . Hàm fstat() Hàm fstat () ưa ra thông tin v file thông qua vi c mô t các file. / * thi t b */ st_ino ./* kích thư c bytes */ st_blksize. tham s th hai là s nh danh c a ngư i ch . /* S lư ng các kh i ã s d ng*/ st_atime.h> int fstat(int filedes. Hàm fchown() st_dev. v trí hi n t i (SEEK_CUR). /* s hi u c a ngư i ch */ st_gid. /* s lư ng các liên k t c ng */ st_uid.h> #include <unistd. /* inode */ st_mode. Giá tr tr v là k t qu c a offset: b t u file. int whence).h> off_t lseek(int fildes. struct stat *buf).h> #include <unistd. Tham s u tiên là mô t file.

Giá tr tr v là 0 n u thành công và –1 n u g p l i (ki m tra bi n errno). rc = write(fd.h> #include <errno.phép s d ng khi giá tr -1 thay i. sample1. 0_WRONLY | 0_CREAT| 0_TRUNG.h> #include <string. Hàm fchdir( ) L i g i hàm fchdir( ) thay i thư m c b ng cách m file ư c mô t b i bi n fd.c */ #include <sys/types. char data[16]. 1 5 . fd = open(“junk. int rc. strlen(sample 1) ).h> /*for print */ char sample1[] = “This is sample data 1\n”. M t ví d v cách s d ng các hàm thao tác v i file: /* filedes_io. Ch root m i có quy n thay i ngư i ch s h u c a nhi u nhóm. 0666). assert(fd>=0).h> #include <stdio. main ( ) { int fd.h> #include <fcntl. rc = write(fd.h> #include <sys/file. close(fd).h> #include <sys/stat.h> #include <unistd. assert(fd>=0).h> int fchdir(int fd).out”.h> #include < assert. char sample2[] = “This is sample data 2\n”. Giá tr tr v là 0 n u thành công và –1 n u có l i (ki m tra bi n errno). assert(rc == strlen(sample1)). #include <unistd. Thông thư ng ngư i dùng có th thay i nhóm các file thu c v h . strlen(sample1)). printf( “Creating file\n”). sample1. struct stat statbuf.

out”. sample2.out”. printf(“unlocking file\n”). assert(fd>=0). printf(“sleeping for 10 seconds\n”). /* k t thúc xâu */ printf (“ Data read (rc = %d): <%s>\n”. close(fd). LOCK_UN). 1 5 . assert(rc == 0). 0_RDONLY). rc = write(fd. printf(“writing data\n”). printf (“ Fiddling with inode\n”). assert(rc == strlen(sample2)). rc = flock(fd. break. } } close (fd). sleep(10). sizeof (data) ). assert (fd >=0). rc = flock(fd. LOCK_EX). rc. 0_RDONLY). fd = open (“ junk. printf( “ locking file\n”). printf(“Reading file \n”). data). } else if (rc == 0) { printf (“ End of file read \ n”). data. assert(rc == 0). } else { perror ( “ read error ” ).printf(“ Appending to file\n”). strlen(sample2)). fd = open(“junk. if( rc > 0 ) { data[rc] =0. break.out”. while (1) { rc = read (fd. 0_WRONLY| 0_APPEND). fd = open(“junk.

1 5 . statbuf. close(fd). printf (“ changing file mode\n”).st_uid). 0600). } 7. Thư vi n g c c a C/C++ trên Linux chính là glibc. Thư vi n dùng chung ư c n p vào b nh trong khi chương trình b t u th c hi n và cho phép các ng d ng cùng chia s lo i thư vi n này. statbuf. printf (“ file mode = 0% ( octal ) \ n”. Thư vi n tĩnh ư c liên k t c nh vào trong chương trình trong quá trình liên k t. } else { printf ( “ not changing file owner\n”). ph n th nh t là mã ngu n cho thư vi n và ph n th 2 cho chương trình s d ng thư vi n. rc = fchmod ( fd. 99).gi ng như DLL trên MS Windows).4. Dư i ây là m t ví d v cách t o và s d ng m t thư viên liên k t tĩnh. thư vi n này cung c p cho ngư i dùng r t nhi u l i g i h th ng. &statbuf).st_uid). assert (rc == 0). Các thư vi n trên Linux thư ng ư c t ch c dư i d ng tĩnh (static library). if ( getuid ( ) == 0 ) { printf ( “ changing file owner \n ” ). Chúng ư c lưu tr dư i m t nh d ng c bi t cùng v i m t b ng (ho c m t b n ) ph c v cho quá trình liên k t và biên d ch. 7. printf(“ Owner gid = %d \n”. } fstat (fd.assert (fd >= 0). Các thư vi n liên k t tĩnh có ph n m r ng là . statbuf.st_mode).4. Thư vi n liên k t ng ư c n p vào b nh ch khi nào chương trình g i t i. Thư vi n liên k t Ph n này s gi i thi u cách t o ra và s d ng thư vi n (các module chương trình ã ư c vi t và ư c tái s d ng nhi u l n).3. s d ng các module trong thư vi n ta c n thêm ph n #include file tiêu (header) vào trong chương trình ngu n và khi liên k t (sau quá trình biên d ch) thì liên k t v i thư vi n ó.3. 99. printf(“Owner uid = %d \ n”.1 Thư vi n liên k t tĩnh Thư vi n tĩnh và các thư vi n dùng chung (shared library) là các file ch a các file ư c g i là các module ã ư c biên d ch và có th s d ng l i ư c. Có 2 ph n trong ví d này. rc = fchown (fd. assert (rc == 0).a. thư vi n chia s (shared library) và ng (dynamic library .

h> #include <stdarg. NULL). exit(1).. const char *fmt .) { va_list ap.) { va_list ap. /* in ra m t thông i p l i cho logfile và tr v hàm g i */ void log_ret(char *logfile. return.. va_end(ap).. ap. } void log_ret(char *logfile. logfile). va_list ap. /* in ra m t thông i p l i cho logfile và thoát */ void log_quit( char *logfile. ap.) { va_list ap.h> #include <stdlib. fmt).h> #include "liberr. va_start(ap. ./* * liberr. fmt). err_prn(fmt. … ). NULL). } 1 5 .h */ #ifndef _LIBERR_H #define _LIBERR_H #include <stdarg. /* in ra m t thông báo l i và tr l i hàm g i */ void err_prn(const char *fmt.h> /* in ra m t thông báo l i t i vi cg i stderr và return hàm g i */ void err_quit(const char *fmt. …).. . va_end(ap). char *logfile). err_prn(fmt. const char *fmt. #endif //_LIBERR_H Mã ngu n cho file liberr. . va_start(ap.h> #include <stdio..ap. return. } void err_quit(const char *fmt. va_start(ap.. va_end(ap).h" #define MAXLINELEN 500 void err_ret(const char *fmt.h #include <errno. …). err_prn(fmt. const char *fmt. fmt).

logfile). }else fputs(buf. va_start(ap. va_end(ap). va_list ap.h> #include <stdlib.c */ #include <stdio. ap. FILE *plf. save_err = errno. const char *fmt. ) { va_list ap. vsprintf(buf. } extern void err_prn( const char *fmt. fclose(plf). return. bư c u tiên là d ch o n mã c a form $gcc –H –c liberr. fmt). fflush(stdout).void log_quit(char *logfile. exit(1). char buf[MAXLINELEN].o /* * errtest. char *logfile) { int save_err. ": %s". strerror(save_err)).a liberr..h> #include "liberr. fflush(NULL)..fmt.o ti p theo: $ar rcs liberr. stderr). if(logfile !=NULL){ if((plf=fopen(logfile. err_prn(fmt. sprintf( buf+strlen(buf). plf). stderr).c t o m t thư vi n tĩnh. strcat(buf. "a") ) != NULL){ fputs(buf. "\n"). }else fputs("failed to open log file \n". } Mã ngu n file liberr.h" #define ERR_QUIT_SKIP 1 #define LOG_QUIT_SKIP 1 int main(void) { 1 5 i tư ng: . ap)..c –o liberr.

tên phiên b n chính là 5..46.. #endif /* LOG_QUIT_SKIP */ return EXIT_SUCCESS. ta s d ng dòng l nh: $ gcc -g errtest.4. stdout).4.c Biên d ch chương trình ki m tra. Lí do cu i cùng là mã ngu n trong thư vi n dùng chung d b o trì. if((pf = fopen("foo".FILE *pf. "%s %s". tên phiên b n ph là 4..so liên k t tên bi u tư ng t i thư vi n dùng chung m i l n ch y. Sau khi d ch ta có th ki m tra b ng cách ch y chương trình. thư vi n dùng chung t n ít tài nguyên h th ng. "log_quit()".. #endif /* ERR_QUIT_SKIP */ #ifndef LOG_QUIT_SKIP fputs("Testing log_quit().2 Thư vi n dùng chung Thư vi n dùng chung có nhi u thu n l i hơn thư vi n tĩnh. "log_ret()". m i chương trình khi s d ng thư vi n ph i biên d ch l i. ngư i dùng c n s d ng thư vi n nâng c p. stdout). if((pf = fopen("foo". log_ret("errtest. } Mã ngu n file testerr. Chúng s d ng ít b nh h th ng vì nhân chia s b nh cho thư vi n dùng chung này và t t c các chương trình u s d ng chung mi n b nh này. #ifndef ERR_QUIT_SKIP fputs("Testing err_quit().. "failed to open foo"). "failed to open foo").3. "r")) == NULL) err_ret("%s %s". Ví d : tên y c a thư vi n C trong h th ng là libc. fputs("Testing log_ret(). "r")) == NULL) log_ret("errtest..so.c -o errtest -L.5.\n".so. fputs("Testing err_ret().\n". Trình liên k t (linker)/module t i (loader) ld. "err_quit()". stdout). i v i thư vi n tĩnh. "failed to open foo"). "r")) == NULL) err_ret("%s %s".\n".Th nh t. bao g m tên thư vi n và phiên b n chính. tham s –lerr ch rõ thư vi n thích h p mà chúng ta mu n liên k t. "r")) == NULL). tên thư vi n là libc. "failed to open foo"). ch ra ư ng d n t i thư m c ch a file thư vi n là thư m c hi n th i.\n".log". stdout). -lerr Tham s -L.. thư vi n dùng chung nhanh hơn vi chúng ch c n n p vào m t b nh . Thư vi n dùng chung có tên c bi t (g i là soname).. 7. "%s %s". Khi các l i ư c s a hay thêm vào các c tính. if((pf = fopen("foo".log". if((pf = fopen("foo". Th 2. chúng s d ng ít không gian ĩa vì mã ngu n thư vi n dùng chung không biên d ch sang mã nh phân nhưng ư c liên k t và ư c dùng t ng m i l n dùng. "err_ret()". 46 là m c vá (patch 1 5 .

s d ng tùy ch n -fpic c a gcc nó s t o ra mã c l p v trí (position independence code) t ó có th liên k t hay s d ng b t c ch nào Không lo i b file i tư ng và không s d ng các tùy ch n –fomit –frame -pointer c a gcc.so. c n m b o các yêu c u: Không thêm vào nh ng tên hàm ã có ho c thay i ho t ng c a nó Ch thêm vào cu i c u trúc d li u ã có ho c làm cho chúng có tính tuỳ ch n hay ư c kh i t o trong thư vi n Không m r ng c u trúc d li u s d ng trong các m ng Xây d ng thư vi n dùng chung hơi khác so v i thư vi n tĩnh.-soname. s thay i phiên b n chính là s thay i áng k thư vi n.5 và lưu tr thông tin này trong /etc/ld. m t cho soname: Và cho trình liên k t khi k t n i d a vào liberr.so nơi tìm thư vi n dùng chung : $ LD_LIBRARY_PATH=$(pwd) . Như v y. ld. vì n u không s nh hư ng n quá trình g r i (debug) S d ng tuỳ ch n -shared and –soname c a gcc S d ng tuỳ ch n –Wl c a gcc truy n tham s t i trình liên k t ld.6.o -lc Vì không th cài t thư vi n này như thư vi n h th ng trong /usr hay /usr/lib chúng ta c n t o 2 kiên k t.level). Các chương trình ng d ng liên k t d a vào soname.3.liberr. s d ng –lerr: $ ln -s liberr.0 liberr. Trong lúc ch y. Phiên b n ph và patch level thay i khi l i ư c s a nhưng soname không thay i và b n m i có s thay khác bi t áng k so v i b n cũ.so Bây gi .c -o errtest -L.4. quá trình xây d ng thư vi n dùng chung ư c minh ho dư i ây: Khi biên d ch file i tư ng.so. t o thư vi n dùng chung trư c h t xây d ng file i tư ng: $ gcc -fPiC -g -c liberr.1.so.1. -lerr Cu i cùng ch y chưong trình.c -o liberr.5.so c ph n lưu tr . chúng ta c n hư ng trình liên k t t i thư vi n nào s d ng và tìm nó âu.3 S d ng i tư ng dùng chung theo cách ng 1 5 .4. vì v y chúng ta s s d ng tuỳ ch n –l và –L: $ gcc -g errtest. d d ng thư vi n dùng chung m i chúng ta quay l i chương trình ki m tra.o Ti p theo liên k t thư vi n: $ gcc -g -shared -Wl.so -o liberr. s d ng tuỳ ch n –l c a gcc Tr l i thư vi n x li l i . Các giao di n hàm m i ư c thêm.0.0 liberr. Th c hi n quá trình liên k t d a vào thư vi n C. Các phiên b n thư vi n khác nhau n u: Các giao di n hàm u ra thay i./errtest 7. Ti n ích idconfig t o m t bi u tư ng liên k t t thư vi n chu n libc. k t n i hàm ng d ng g i t i i tư ng thích h p trong thư vi n.cache.5. tìm soname thích h p và n p thư vi n hi n tai vào b nh .so.46 t i soname libc. Thư vi n libc6 có soname là libc. Ch c năng ho t ng thay i so v i c t ban u C u trúc d li u u ra thay i C u trúc d li u u ra ư c thêm duy trì tính tương thích c a thư vi n. chúng ta c n ch cho ld.so.0. soname thư vi n C là libc.

Filename có th là ư ng d n y . thêm ho c s a các nh d ng c a file nh ta ch c n vi t thêm m t module m nh n ch c năng ó và báo cho chương trình ng d ng bi t là có thêm m t module m i b ng cách ch c n thay i m t file c u hình trong m t thư m c xác nh nào ó. Ta có th s d ng giao di n dl (dynamic loading) vì nó t o s linh ho t cho l p trình viên hay ngư i dùng.cache. Giao di n dl (cũng ơn thu n ư c xây d ng như m t thư vi n . dlopen() tr i u khi n t i i tư ng truy nhâp n u nó tìm th y t filename hay tr v giá tr NULL n u không tìm th y. ây l i là m t i u không thích h p l m.M t cách s d ng thư vi n dùng chung là n p chúng t ng m i khi ch y không gi ng như nhũng thư vi n liên k t và n p m t cách t ng. dlerror() tr v thông báo chi ti t l i và gán giá tr NULL cho ph n b l i. s d ng các hàm này ta thêm file <dlfcn. Kh năng s d ng thư vi n ng s giúp ta gi i quy t v n v a g p ph i. char *symbol). int flag).thư vi n libdl) ch a các hàm t i (load). và /lib. /etc/ld. n u là tên rút g n dlopen() s tìm trong v trí sau tìm file: $LD_ELF_LiBRARY_PATH. Trong ng d ng. N u là NULL dlopen() m chương trình ang ch y. s d ng và gi i phóng i tư ng dùng chung. Giao di n dl cho phép t o ra giao di n (các hàm) c và vi t chung không ph thu c vào nh d ng c a file nh. dlopen() truy c p i tư ng chia s b ng filename và b ng c . và khi d ch thì liên k t nó v i thư vi n libdl b ng cách s d ng tham s và tên –ldl trong dòng l nh d ch. Ki m tra l i Hàm dlerror() s giúp ta ki m tra l i khi s d ng i tư ng truy c p ng: const char *dlerror(void). Truy c p i tư ng chia s truy c p m t i tư ng chia s . và ta c n có nhu c u chuy n d li u ó ra các nh d ng thông d ng ã có (s lư ng các nh d ng này có th có hàng trăm lo i) ho c c d li u t các nh d ng m i này vào x lý. dùng hàm dlopen() có c t như sau: void *dlopen(const char *filename. n u filename là ư ng d n dlopen() m file ó. tìm ki m và gi i phóng (unload) các i tư ng chia s . có nghĩa là các kí hi u (symbol) hay tên hàm t i tư ng truy c p s ư c tìm m i khi chúng ư c g i. có nghĩa t t c kí hi u t i tư ng truy c p s ư c tìm trư c khi hàm dlopen() tr v . tên file rút g n hay NULL.so. ó là chương trình c a b n. S d ng i tư ng chia s Trư c khi có th s d ng mã ngu n trong thư vi n ta ph i bi t ang tìm cái gì và tìm âu. Gi i phóng i tư ng chia s 1 6 . /usr/lib. N u m t trong các hàm l i.h> vào ph n #include vào trong mã ngu n. ta bi u di n d li u m t d ng không theo chu n nhưng l i thu n ti n cho ta x lý. Gi s ta ang t o m t ng d ng s lý ho . Hàm dlsym() s giúp i u ó: void *dlsym(void *handle. Nhưng khi có thêm m t nh d ng m i thì ta l i ph i biên d ch l i chương trình. dl cung c p 4 hàm x lí các công vi c c n thi t t i. $LD_LIBRARY_PATH. ho c c có th là RTLD_NOW. C có th là RTLD_LAZY. dlsym() tìm kí hi u hay tên hàm trong truy c p và tr l i con tr ki u void t i i tư ng hay NULL n u không thành công. gi i quy t v n này ta có th s d ng gi i pháp là thư vi n.

S d ng giao di n dl minh ho cách s d ng dl. khi ta s d ng xong module trong m t i tư ng chia s . T t c truy c p t i liberr.c -o dltest -ldl Như tacó th th y.h> int main(void) { void *handle.chúng ta quay l i thư vi n x lí l i. errmsg). errfcn = dlsym(handle. FILE *pf. "r")) == NULL) errfcn("couldn't open foobar").h> #include <stdlib. "Failed to load liberr.b o v tài nguyên h th ng c bi t b nh .so and call err_ret() */ #include <stdio. dlclose(handle).c * Dynamically load liberr. const char *errmsg.so: %s\n".so". dlerror())./dltest N u thành công thì ta nh n ư c k t qu như sau: couldn’t open foobar: No such file or directory 1 6 .h> #include <dlfcn. "err_ret").h trong mã ngu n. return EXIT_SUCCESS. if((errmsg = dlerror()) != NULL) { fprintf(stderr. } if((pf = fopen("foobar".so thông qua dl. } dlerror(). RTLD_NOW). if(handle == NULL) { fprintf(stderr. Ch y chương trình b ng cách sau: $ LD_LIBRARY_PATH=$(pwd) . } Mã ngu n chương trình dltest. void (*errfcn)(). chúng ta không liên k t d a vào liberr hay liberr. s d ng m t chương trình khác như sau: /* * dltest. handle = dlopen("liberr. exit(EXIT_FAILURE). thì gi i phóng chúng. exit(EXIT_FAILURE). Hàm dlclose() s óng i tư ng chia s : int dlclose(void *handle).c Biên d ch ví d trên b ng l nh: $ gcc -g -Wall dltest. "Didn't find err_ret(): %s\n".

so. in ra các ch s c a module ch a hàm ó. Công c idd L nh nm li t kê các hàm ư c nh nghĩa trong m t file i tư ng.so. L nh idd h u ích hơn nhi u.6 => /lib/libm/so.so.so. Ch ưa ra các hàm không ư c nh nghĩa trong file này. Nó thư ng ư c s d ng t o các thư vi n tĩnh.1 => /lib/libns1. nhưng tr khi ta bi t nh ng gì thư vi n nh nghĩa nh ng hàm nào.3.6 => /lib/libc.nh ng file mà ch a m t ho c nhi u file i tư ng ch a các chương trình con thư ng ư c s d ng (subrountine) nh d ng ti n biên d ch (precompiled format).2 (0x4000000) Tìm hi u l nh idconfig L nh idconfig s d ng cú pháp sau: ldconfig [tuỳ ch n] [libs] 1 6 .6 (0x40072000) libc. như ư c minh ho sau ây: $ idd /usr/bin/mutt libnsl. Ví d : chương trình thư “client mutt” c n 5 thư vi n chia s .2 => /lib/id-Linux. L nh nm s d ng cú pháp sau: nm [options] file Lênh nm li t kê nh ng tên hàm ch a trong file.1 => /usr/lib/libslang.so. Chi ti t c a l nh này ã ư c trình bày trong chương trư c. Khi s d ng các file lưu tr (ph n m r ng là “.l | -line-numbers Miêu t Chuy n tên ký t vào tên m c ngư i dùng cho d c.5 Các công c cho thư vi n Công c nm L nh nm li t kê toàn b các tên hàm (symbol) ư c mã hoá trong file i tư ng (object) và nh phân (binary). Cú pháp c a nó là: idd [options] file L nh idd in ra tên c a thư vi n chia s mà file này s d ng. S d ng thông tin g r i in ra s dòng nơi hàm ư c nh nghĩa.a”). idd li t kê các thư vi n ư c chia s mà m t chương trình yêu c u mà ch y. l nh ar cũng t o và duy trì m t b ng mà tham chi u qua tên ký t t i các thành viên mà trong ó chúng ư c nh nghĩa.7.so. t c là các hàm ư c nh nghĩa m t file khác.so.so.so. ch nh s a và trích các file lưu tr .1 (0x40019000) libslang.1 (0x4002e000) libm. Các tuỳ ch n c a l nh nm Công c ar L nh ar s d ng cú pháp sau: ar {dmpqrtx} [thành viên] file L nh ar t o.6 (0x4008f000) /lib/id-linux. B ng dư i li t kê các tuỳ ch n c a l nh nm: Tuỳ ch n -C| -demangle -s|-print-armap -u| -undefined-only .

1 6 . File /etc/ld. ld. Bi n th nh t là $LD_LIBRARY.preload ch a danh sách các file thư vi n ư c phân cách b ng m t kho ng tr ng các thư vi n này là thư vi n ngư i dùng t o ra.so bi t.so.so. Các tuỳ ch n c a hàm idconfig Bi n môi trư ng và file c u hình. /etc/ld.so cũng cho phép s d ng 2 file c u hình mà có cùng m c ích v i bi n môi trư ng ư c c p trên.conf ch a m t danh sách các thư m c mà chương trình t i và trình liên k t (loader/linker) nên tìm ki m các thư vi n chia s bên c nh /usr/lib và /lib. m t danh sách hi n th i các thư vi n ư c chia s mà ld.cache . m t danh sách các thư vi n ư c ngư i dùng thêm vào ư c phân cách nhau b i kho ng tr ng (space). quét các thư m c và b t kỳ liên k t mà ư c t o ra ho c c p nh t.cache. ch a danh sách các thư m c ch a các file thư vi n ư c phân cách b i d u hai ch m tìm ra các thư vi n c n thi t khi ch y.so s d ng 2 bi n môi trư ng. Chương trình t i (loader) và trình liên k t (linker) ld. Dư i ây là các tùy ch n c a l nh này: Các tuỳ ch n -p -v Các miêu t ơn thu n ch in ra n i dung c a /etc/ld. C p nh t /etc/ld. Nó gi ng như bi n môi trư ng $PATH. li t kê s phiên b n c a m i thư vi n.so.so.L nh ldconfig xác nh rõ các liên k t ng (liên k t khi ch y) ư c yêu c u b i thư vi n ư c chia s n m trong các thư m c /usr/lib và /lib. Bi n môi trư ng th hai là $LD_PRELOAD.

TÀI LI U THAM KH O …… 1 6 .

Ngư i s d ng Linux cho công vi c c a mình.. Trong b ng chú thích. K t thúc dòng l nh là d u xu ng dòng. m t t p h p d li u .) thì ch ư c phép s d ng. b t ngư i dùng . m t chương trình ngu n. Nơi ch a m t danh sách các file trong h th ng File. Login là l nh cho phép ăng nh p.. nhi u thu t ng ti ng Vi t ã ư c s d ng m t cách ph bi n nhưng tài li u cũng li t kê vào b ng chú thích dư i ây v i m c ích giúp b n c thu n ti n trong tra c u và liên h . Còn ư c g i là t p hay g i theo cách gi nguyên g c ti ng Anh là File... B ng chú thích là m t c g ng nh nh m h tr s d ng tài li u này hi u qu hơn và ph m vi s d ng c a nó gi i h n trong tài li u. nó là v trí so n th o hi n th i trong văn b n B chương trình bao g m các file trên ĩa (băng) t có ch c năng qu n lý tài nguyên máy tính và óng vai trò là "máy tính o" i v i ngư i dùng. file c bi t . H th ng toàn b các file có trong h i u hành Linux (và UNIX nói chung). Tên g i c a file (file thư ng. Ti ng Vi t File Ti ng Anh File Gi i thích ng n T p h p d li u có t ch c theo m t m c ích s d ng: o n văn b n. Dù cho trong tài li u này. thư m c. Linux quy nh có m t siêu ngư có quy n h n t i cao trong h th l nh qu n tr h th ng.) ư c dùng xác nh file. Th t c logout k t thúc phiên làm vi c. ư c Linux coi như m t d ng file c bi t.. Dòng l nh bao g m m t ho c m t s l nh trong m t l n yêu c u c a ngư i dùng. Linux cho phép ngư i s d ng dùng l nh trình bày m t "thao tác" yêu c u h th ng th c hi n. Th t c b t u m t phiên làm vi c c a m t ngư i s d ng. m i thu t ng ti ng Vi t dùng trong tài li u s ư c kèm theo thu t ng ti ng Anh g c và sau ó có th là m t l i chú thích ng n. Trong trình so n th o văn b n.CHÚ THÍCH M T S THU T NG V n ch n thu t ng ti ng Vi t cho các thu t ng g c ti ng Anh luôn là v n c n ư c th o lu n vi c ch n l a như v y là thích h p.. V i m (thêm. L nh có s n trong Linux (trong shell ho c ư c t t i nh ng thư m c theo quy nh c a Linux). 1 6 . i dùng th c hi n ng bao g m các t s l nh Linux siêu ngư i dùng Tên file Thư m c H th ng file L nh Ti n ích (còn g i là l nh thư ng tr c) Dòng l nh ăng nh p Ngư i dùng Siêu ngư i dùng (ngư i dùng t i cao/ngư i qu n tr ) Con tr H i u hành Filename Directory File system Command Utility Command line Login User Superuser cursor Operating System (OS) i m ánh d u trên màn hình ánh d u v trí hi n th i hi n thông tin.

Multi-users OS M i ngư i dùng s d ng m t tr m cu i ư c k t n i máy tính tr c ti p th c hi n công vi c trên máy tính (có a chương trình). B ph n c t lõi nh t c a Linux. Th t c mà m t ngư i dùng c n ph i th c hi n khi k t thúc phiên làm vi c v i Linux. sau khi ăng xu t s kéo theo m t ăng nh p m i. ?. Còn ư c g i là kí hi u thay th . phân tích dòng l nh ngư i dùng l nh Comment ư c th c hi n. (CCP) Login Th t c mà m t ngư i dùng c n ph i th c hi n khi b t u phiên làm vi c v i Linux. b nh ).COM. Quá trình t o ra h s d ng i u hành Linux lên máy tính ăng nh p ăng xu t Logout D u nh c shell Kí hi u mô t nhóm Cài t Linux Installation Linux 1 6 . Còn g i là d u nh c dòng l nh wildcards Kí hi u ư c dùng xác nh m t nhóm file (ví d *. M t s h i u hành g i là bài toán (task). trong MSProgram DOS là COMMAND. M t chương trình thu c h i u hành có ch c năng Command ti p nh n. thư ng tr c Kernel th c hi n các ch c năng cơ b n c a h i u hành (còn ư c g i là lõi) M t l n th c hi n c a m t chương trình (Còn ư c Process g i là ti n trình). Th t c này yêu c u ngư i dùng ưa vào tên kí hi u và m t kh u ã ư c ăng kí trong h th ng. [] và [] v i -). Trên máy tính cá nhân. Trong Linux là shell.H i u hành a chương trình H i u hành a ngư i dùng Nhân Quá trình Chương trình gi i thích l nh Multiprogramming OS H i u hành ho t ng theo cách th c trong b nh ng th i có nhi u chương trình ư c "bình ng" trong phân ph i tài nguyên (CPU.

ta ph i t t o ĩa kh i ng và cách t o là như sau: Trong Windows..2 AA. hãy c g ng tìm càng nhi u càng t t các tài li u v ph n c ng máy PC mà mình nh cài. card âm thanh ho c băng t có th g p ph i v n này.1. nh n vào CD. t tên Bootdisk r i m folder này. CD-ROM. Ti p theo. óng c a s Dosutils. M My Computer. card ho . ưa ĩa CD Red Hat vào CD. m folder có tên Dosutils.. N u th làm i u ó. có th s d ng l nh t c u hình l i t i d u nh c kh i ng. Còn n u mua b n copy t công ty th 3. N u trư ng h p này x y ra. như mainboard. Quá trình cài t có th kéo dài m t ti ng ho c hơn v i nh ng h th ng ch cài Linux. N u mua Red Hat Linux tr c ti p t Red Hat Linux s nh n kèm ĩa kh i ng. Trong khi Linux không gi i quy t ư c v n này. Ch n Copy here t menu xu t hi n.2 và 7. QUÁ TRÌNH CÀI T REDHAT-LINUX Linux s d ng ph n c ng c a máy PC hi u qu hơn MS-DOS. màn hình. T o ĩa m m kh i ng Bư c này ch c n thi t khi không th kh i ng t CD-ROM. b i chúng có th làm quá trình cài t Linux b treo. màn hình. Sau ây là m t s v n thư ng g p. ưa ĩa m m vào . ki m tra ph n c ng máy tính c a tìm ra các v n n u có.. và do ó kh năng ch u các l i do c u hình sai ph n c ng s kém hơn. Chép file Boot. Trư c tiên. Vì v y n u có nghi ng hãy xem l i các jumper này ã ư c t úng chưa. Chúng ta c n làm m t s vi c trư c khi b t u cài t gi m thi u các kh năng không th cài t ti p khi g p ph i v n này.PH L C A. Sau ó. s giúp r t nhi u trong quá trình c u hình X sau này. Nh ng thông tin chính xác v bàn phím. AA.. và chúng nơi có th tìm th y và tra c u d dàng.1 nh m cung c p tính a d ng khi cài t. nh n vào file Rawrite. Ph l c này gi i thi u cách cài t hai phiên b n RedHat là 6. tìm hi u thông tin v ph n c ng máy tính c a và t p h p chúng l i. M t h th ng DOS hay Windows có th qu n lý ĩa IDE và CDROM c khi jumper master/slave không ư c t úng. chu t. C n ti n hành công vi c chu n b th i gian cho vi c cài t. M folder Images trong CD-ROM. ho c System Information trong Windows. gi ng như ã làm v i Rawrite. trong khi Linux không h tr i u này. t o i u ki n cho ngư i s d ng. modem. M t s thi t b ngo i vi c n có nh ng ti n ích t c u hình cho chúng khi máy kh i ng.img vào folder Bootdisk. B m phím ph i chu t vào desktop t o folder m i. Nên liên h v i ngư i dùng Linux có kinh nghi m ư c gi i áp nh ng vư ng m c. b m phím ph i chu t và kéo nó vào Bootdisk. ho c lên t i ba ti ng v i h th ng c n ch y nhi u h i u hành khác nhau (thư ng v i nh ng h th ng này kh năng b treo máy ho c có l i khi cài t s cao hơn). Các thi t b như card m ng. Cài t phiên b n RedHat 6. M t s h i u hành khác cho phép chu t d ng bus chia s m t IRQ v i các thi t b khác. 1 6 . h th ng có th b treo. Chúng ta có th làm i u này khi s d ng ch c năng in c u hình máy c a m t s ti n ích như MSD trong DOS. Window hay WinNT.

Microsoft. ví d như Czech. AA.2.. u tiên ph i backup t t c các d li u trong phân vùng... H th ng ưa ra r t nhi u ngôn ng cho phép l a ch n. Gõ “linux ks” + Enter ch n ch cài t t m ng ho c t ĩa m m. nh n Enter. L a ch n ch cài t H th ng ưa ra các ch cho chúng ta l a ch n : Gõ Enter ch n ch cài t h a. M t c a s xu t hi n v i d u nh c DOS “C:\Windows\Desktop”.. Nh p boot. ch ng h n như ph n m m PQMagic c a Power Quest.. có th di chuy n / thay i kích thư c / thêm / xoá / format các phân vùng trong c ng m t cách d dàng v i giao di n ho .....img là tên file mu n copy.. nh n OK. Sau ây là chi ti t quá trình m t ĩa kh i ng cài t ti n hành. Phân vùng l i ĩa DOS/Windows hi n th i Trong h u h t các h th ng ư c s d ng. . mu n di chuy n / thay i kích thư c c a m t phân vùng nào ó. 1 6 .3. s p x p l i các phân vùng này t o ch tr ng cho vi c cài t Linux. Khi kh i ng l i máy... Khi ã hoàn t t vi c t o ĩa m m kh i ng: gõ rawrite t i d u nh c DOS.. C n thay i kích thư c. English. và nh n Enter khi ư c h i ích.. L a ch n c u hình bàn phím Linux òi h i l a ch n c u hình bàn phím t các mô hình sau: Model : Brazilian ABNT 2 Dell Generic..Run gõ vào Command trong h p h i tho i. c ng thư ng ư c phân vùng cho MSDOS. ti p theo là t o m t phân vùng m i v i kích thư c mong mu n. French. OS/2. xoá phân vùng ó (vi c này s làm m t các thông tin v d li u trong phân vùng). Dùng ph n m m này.. Ch n ch này có nghĩa ta t ch n c u hình ph n c ng còn hai ch trên s t ng detect. Thư ng ch n English. L a ch n ngôn ng hi n th ...2 và kh i ng t CD-ROM) ưa ĩa CDROM Redhat 6. Cách t t nh t làm vi c này là dùng m t ph n m m chuyên d ng. AA. quá trình s ư c boot t CDROM. Gõ a:\ (tên ĩa m m). sau ó trong BIOS SETUP ta t ch kh i ng t CD. German.Ch n Start.. Gõ vào cd bootdisk. Gõ “text” + Enter ch n ch Text.. Còn vi c dùng FDisk c a MS-DOS thì c c kỳ v t v . Các bư c cài t (b n RedHat 6. cu i cùng là restore l i toàn b d li u ã backup vào phân vùng m i t o này! T t nh t dùng m t ph n m m mi n phí c c m nh như PQMagic.. nh n Enter. Gõ “expert” + Enter ch n ch Expert..2 vào CD.

C hai l a ch n WorkStation này s chu n b các vi c sau: N u ĩa c ng c a chưa h ư c phân vùng trư c ó. Linux s xoá h t t t c các phân vùng trên các ĩa c ng và cài t các phân vùng sau: + M t phân vùng swap kích thư c 64MB + M t phân vùng root ( ư c mount là / ) ch a ng m i file ư c cài t. Tuỳ ch n cài t Server : t. s t • N u h th ng ã ư c cài s n Windows (Windows 3. Install (cài m i) g m có các ch GNome Workstation. N u chưa th o l m v Linux thì hãy s d ng tuỳ ch n này.1/95/98). Và khi cài t theo ki u này. KDE Workstation. Test: chúng ta s gõ các phím ki m tra th . Server Custom Upgrade (Nâng c p) • Tuỳ ch n cài t WorkStation N u l a ch n ki u cài m i là GNome Workstation ho c KDE Workstation thì h th ng s cài t X Window System và chương trình qu n lý Desktop theo d ng GNome ho c KDE. Ch n c u hình chu t H th ng ưa ra 10 lo i chu t l a ch n lo i tương thích v i chu t c a mình. n u không rõ bàn phím thu c lo i nào thì nên ch n ki u Generic. N u l a ch n ki u cài t m i là Server thì h th ng s cài t theo ki u máy ch Linux và cũng như ki u WorkStation. Eliminate Dead Keys (khi chúng ta s d ng các kí t c bi t). ki u cài t WorkStation ng c u hình h th ng kh i ng ch song song s d ng LILO. nên c n th n vì h th ng s xoá t t c các partition trên 1 6 . nó s b qua nhi u bư c. tuỳ ch n này s tránh ph i c u hình nhi u thành ph n ph n c ng. Và ph i ch n úng ki u chu t là PS/2 hay Serial n u không thì s không s d ng ư c chu t. Layout: Ngôn ng s d ng gõ (kho ng 24 ngôn ng ) Variant: Có 2 ch là. None (ki u m c nh).Ta s l a ch n bàn phím tương thích theo các d ng trên. n u không bi t rõ chu t thu c lo i nào thì nên ch n ki u Generic. L a ch n Custom là ch phù h p v i ngư i ã quen v i Linux. H th ng ưa ra l i gi i thi u v b n Red Hat ang cài L a ch n ki u cài t. Chú ý là chúng ta s ph i c n t i thi u 600MB c ng ti n hành cài t theo ki u WorkStattion.

M t boot partition (t i a 16Mb) . M t root partition (t 500Mb . + T o m t phân vùng kích thư c t i thi u 512MB ư c mount là “/usr”. Trong b ng partition có các thông tin sau: Mount Point: Xác nh partition nào s ư c kích ho t khi Linux ư c cài t và ch y.1Gb) là nơi ch a thư m c g c và t t c các file (tr các file trong boot partition). Và h th ng khuyên chúng ta nên t o các partition theo cách sau: M t swap partition (ít nh t 16MB) . + T o m t phân vùng kích thư c 256MB ư c mount là “/var”. ch gi i thi u v tuỳ ch n cài t này. N u partition t n t i và có nhãn là not set thì ta xác nh mount point b ng cách kích chu t vào nút Edit ho c double . T bư c 7 tr i.6BG • Tuỳ ch n cài t Custom c ng ti n hành cài t theo ki u Server. + T o m t phân vùng kích thư c 256MB v i mount point là “/”. t các gói ph n m m i kèm: Th c hi n sau khi ã phân vùng ĩa Thi t t c u hình LILO: có th l a ch n cài t LILO vào Master Boot Record ho c Sector u tiên c a phân vùng Root ho c không l a ch n cài LILO. V i 500Mb cho phép cài theo ki u Workstation và v i 1Gb cho phép cài m i th . Vì v y. Như v y chúng ta ph i c n t i thi u 1. 1 7 . Tuy nhiên cũng có th l a ch n phân vùng nào c n ph i format. i v i ki u Custom h th ng s cho phép t ch n các thành ph n và c u hình ph n c ng cài t m t cách y nh t. ch ch n ki u cài t Server n u ch c ch n trong c ng không có m t d li u gì c . Format các phân vùng: Nh ng phân vùng m i ư c thêm vào s ph i ư c format l i theo nh d ng Linux filesystem.ch a nhân c a H H cùng v i các file trong quá trình kh i ng. Sau ây s gi i thi u t ng quát m t s bư c mà quá trình này thi t t: T o các phân vùng: c n ph i ch rõ Redhat s ư c cài t vào phân vùng nào. N u máy chúng ta có 16Mb Ram ho c ít hơn thì b t bu c chúng ta ph i t o swap partition. Kích thư c t i thi u c a swap partition = max |b nh Ram và 16Mb|. Xác nh các Partition u tiên c n xác nh các i m kích ho t (mount point) cho m t ho c nhi u partition. Th m chí n u có nhi u b nh hơn. chúng ta cũng nên t o swap partition.t t c các ĩa.click trên partition.dùng h tr b nh o. L a ch n và cài c ng. + T o m t phân vùng t i thi u 215MB ư c mount là “/home”. Sau ây là các bư c mà ki u này ti n hành phân vùng ĩa: + T o m t phân vùng Swap kích thư c 64MB. tuy nhiên cũng r i r m và ph c t p nh t.

Type: Cho bi t ki u c a partition. và delete các partition b ng cách kích chu t vào các nút ó. Drive Summaries: hi n th thông tin v c u hình ĩa. Ch c năng c a t ng nút là: Add: Dùng t o m t partition m i.Device: Hi n tên các device partition (Ví d : hda2 i di n cho partition th 2 trên c ng primary). Request: Cho bi t không gian mà partition hi n có. edit. N u mu n thay i kích thư c thì chúng ta ph i xoá partition ó và t o l i b ng cách dùng nút “Add”. Partition type: g m có các ki u Linux Swap: ch n ki u này n u chúng ta mu n t o partition swap. Actual: Cho bi t không gian mà partition ang s d ng. g m có các thông tin sau: Mount Point: g m có các ki u /: /boot : /usr : /home : /var : /opt : /tmp : /usr/local : Size (Megs): ch n kích thư c c a partition. Grow to fill disk: n u ch n thì partition này s s d ng toàn b vùng ĩa tr ng còn l i. Reset: Khôi ph c l i nh ng thay Make RAID Device: S d ng Make Raid device ch khi ã có kinh nghi m v RAID. Linux RAID : DOS 16-bit < 32 : DOS 16-bit > 32 : Edit: Dùng Delete: Dùng thay i mount point c a partition. Linux Native : ch n ki u này n u chúng ta mu n t o partition root. xoá partition. Ch n Partition Format G m có các thông tin: 1 7 . Và chúng ta có th add. i.

B ng dư i s cho bi t thông tin v các phân vùng: tên phân vùng. chính là phân vùng trư c khi cài t thì sau này m i khi kh i ng máy tính. ph i không t d u ki m “Do not install LILO”. Cho phép thay i tên c a phân vùng tương ng trong ph n “Boot Label”.Partition mu n Format. c n ch n phân vùng kh i ng là phân vùng có tên Linux (thư ng là phân vùng mà Redhat s t m c nh và chúng ta không ph i thay i gì). có ph i là phân vùng kh i ng không ?. Có th Có th ch n múi gi theo ki u UTC Offset (Universal Time Coordinated). Ch n múi gi N u cài trong ch h a. L a ch n “Check for bad blocks while formating” Ch n “Check for bad blocks while formating” tìm ra nh ng bad bocks trên ĩa sau ó s ánh d u l i nh m không ghi d li u lên chúng n a. lo i phân vùng. t LinuxVN thì m c nh s hi n ra m t b n th gi i. N u có các ĩa SCSI ho c ĩa c ng c a h tr LBA thì c n ph i ánh d u ki m vào m c “Use Linear Mode”. Ch n c u hình LILO (Linux Loader) ch n c u hình LILO. Nói chung là nên ch n Master Boot Record có th kh i ng t nhi u . màn hình m c thay i b n theo các ki u sau: World (b n th gi i) North American (B c M ) South American (Nam M ) Pacific Rim (Châu úc) Europe (Châu Âu) Africa (Châu Phi) Asia (Châu á) i v i Vi t Nam ta thì ch n Asia/Saigon (trong ĩa CD cài ch n là Asia/Hanoi). t c là ki u GMT +/l ch. chúng ta có th ch n phân vùng này kh i ng m t cách bình thư ng b ng cách gõ tên phân vùng ó t i d u nh c “LILO Boot” trong quá trình kh i ng. Tuỳ ch n “Create boot disk”: ch c n ch n m c này n u không cài LILO ho c cài LILO nhưng không cài vào MBR. Kernel Parameters: Các tham s s dùng b t c khi nào nhân ư c kh i ng. N u ã có phân vùng tên là ‘dos’. Chú ý là n u không cài LILO thì b t bu c ph i ch n m c này kh i ng t ĩa m m. 1 7 . N u Linux Native có tên là /dev/hda5 thì màn hình s hi n ra cho phép cài t chương trình n p Linux vào Master Boot Record (MBR) ho c First Sector of boot partition (sector u tiên c a phân vùng kh i ng). N u h th ng gi s t i s d ng UTC thì ch n “System clock uses UTC”.

do ó c n ph i l a ch n các gói ph n m m phù h p n u Linux Native / không . Chú ý là m c nh t t c các m t kh u u ph i t i thi u 6 ký t . hơn là m t thông i p r ng rãi trong m ng LAN. 1 7 ... GNOME cũng cung c p m t giao di n l p trình m c cao hơn t o ra các ng d ng v i giao di n ki u GNOME. do ó nó cũng h tr ch a ngư i dùng như Unix. GNome. h th ng X Window. Shadow Password: ây là cách b o m t t i a cho m t kh u. tên y c a ngư i dùng trong m c “Full Name”. Ch n c 2 m c này s tăng tính b o m t c a h th ng. X không ph i là m t giao di n h a ngư i dùng th c s mà ch là m t h c a s cùng v i các công c m t giao di n h a ngư i dùng có th ư c xây d ng t ó. phím “Delete” xoá ngư i dùng hi n th i. Thi t t c u hình quy n h n (Authentication Configuration) Th c hi n các m c sau: Enable MD5 Password: cách mã hoá này cho phép m t kh u dài t i 256 ký t . u tiên chúng ta c n t m t kh u cho ngư i dùng Root trong ph n “Root Password” và xác nh n l i m t kh u này trong m c “Confirm”. Sau ó gõ phím “Add” th thêm ngư i dùng m i vào danh sách các ngư i dùng. Các packages có th ư c ch n cài t bao g m: Printer Support: N u ư c cài Linux s c g ng nh n máy in ho c cho phép ngư i dùng thi t l p các thông s v máy in c a h th ng. NIS server: cho phép máy tính dùng m t NIS server rêng. Sau ó ta có th thêm ngay m t s ngư i dùng u tiên: Tên t trong “Account Name”. gõ password trong m c “Password” và xác nh n m t kh u trong m c Password (confirm) ngay bên c nh.. L a ch n các gói ph n m m cài t (Pakage Selection) Có r t nhi u m c ch n s nói chi ti t ph n sau như: Printer Support. DOS / Window Connectivity. X Window System: Môi trư ng h a nguyên thu trong Linux. ti n l i và thân thi n hơn X. KDE. B n cài t Redhat cho phép t luôn c u hình ngư i dùng ngay trong quá trình cài t. ư c g i t t là X.. file ch a m t kh u /etc/passwd s ư c thay b ng etc/shadow và file này ch ư c phép hi n th b i ngư i dùng Root. Enable NIS: ch n m c này n u máy tính k t n i vào m ng NIS (Network Information System) cho phép m t nhóm máy tính trong vùng Network Information Service v i cùng m t password.Thi t t c u hình Account (ngư i s d ng) Như ã bi t Linux k th a t Unix. GNOME: Là m t giao di n h a ngư i dùng p hơn. L a ch n “Everything” s cài y t t c m i th . NIS domain: tên c a domain ho c nhóm máy tính ch a h th ng. Phím “Edit” cho phép hi n th ngư i dùng hi n hành trong b ng danh sách ngư i dùng.

Graphic Manupulation: Các ti n ích và x lý các file hình nh. có th cung c p d ch v truy v n d li u cho các máy khác trong m ng. C. Development: Các b biên d ch. Windows và c Mac. Imgedit. DNS Name Server: Cài t package này giúp máy tính tr thành m t máy ch DNS. Do ư c phát tri n trư c GNOME nên KDE có nhi u i m t t hơn.. Network Management Workstation: Giúp máy tính tr m làm vi c i u hành tr thành m t máy ch SQL. có th cung c p d ch v truy n file cho các máy khác trong m ng. Postgres (SQL) Server: Cài t package này giúp máy tính tr thành m t máy ch SQL. Anonymous FTP Server: Cài t package này giúp máy tính tr thành m t máy ch FTP (File Transfer Protocol). Mã ngu n c a các chương trình trong Linux. như nghe midi.KDE: KDE là m t giao di n h a ngư i dùng ư c phát tri n d a trên thư vi n giao di n h a C++ Qt. Games: M t s chương trình trò chơi gi i trí trong ch Multimedia Support: Các chương trình h tr mp3. NFS Server: Máy ch h th ng file m ng NFS (Network File System). có th cung c p d ch v t tên vùng cho các máy khác trong m ng. g r i.. có th cung c p d ch v truy v n d li u cho các máy khác trong m ng.. C++. wave. công c phát tri n ph n m m .. Web Server: Cài t package này giúp máy tính tr thành m t máy ch Web.. thu âm . Kernel Development: Mã ngu n nhân Linux và b công c phát tri n dành cho phát tri n nhân Linux.. s d ng Dialup WorkStation: Cho phép ngư i dùng s d ng modem và quay s các d ch v qua ư ng i n tho i như g i nh n mail. nh n thư tín i n t . SMB Server: Máy ch h th ng file m ng Samba. 1 7 . News Server: Cung c p d ch v máy ch news. có th cung c p d ch v web cho các máy khác trong m ng... g i. TeX Document Formatting: H so n th o và Emacs: H so n th o văn b n ơn gi n. IPX/ Netware Connectivity: Giúp h th ng ch y Linux giao ti p v i các máy tính khác qua m ng Netware s d ng giao th c IPX. cho phép trình di n text ho c X Window. h a như Gview. web.. Thư vi n giao di n này h tr UNIX. duy t Web và Dos/ Windows Connectivity: B gi l p DOS và Windows cho phép ngư i dùng ch y các ng d ng DOS và Windows ngay trong Linux. nh d ng văn b n dư i d ng Tex.. i u khi n joystick. Mail/ WWW/ News tools: B công c dùng c các b n tin. cho phép máy tính tr thành m t server b n tin. a phương ti n. dư i các ngôn ng như Perl.

1 7 . n u card màn hình c a không ph i là d ng chu n thì s ph i cài b ng tay. K t thúc quá trình này. 586 s d ng các ph n c ng h vi x lý 80386. 4MB RAM và m t m m. m t công vi c khá m t m i. Quá trình này m t kho ng 10 phút n 20 phút tuỳ theo s lư ng các gói ch n. . Vi c cài t trên các ph n c ng khác thì v n ang trong giai o n thi t k . Italia. 16 bits. n u màn hình c a qua kh i cu c ki m tra này thì có th coi là ã thành công t i 90% quá trình cài t Redhat. nh tháo ĩa CD Redhat ra kh i i v i Linux Các b vi x lý mà Linux h tr Linux ch y u ch y trên các máy PC th h 386. Utilities: Các ti n ích cho Linux. Pháp. Customize X Configuration: N u ch n m c này thì ghi gõ Next. Dĩ nhiên là càng nhi u RAM thì càng t t. Redhat s cho m t b ng cho thi t l p b ng tay các ch h a 8 bits. Test this Configuration: n vào ây ki m tra tính năng ho có ho t ng t t không. 486. Thi t t c u hình X (X Configuration) Ph n này s t c u hình card màn hình th hi n khi chúng ta s d ng các h th ng X Window. format Linux Swap. Có th ch y th Linux b ng m t máy v i ph n c ng t i thi u là: b vi x lý Intel 386. Chú ý là khi ch n phân gi i nào thì luôn luôn gõ phím “Test this Configuration” m b o màn hình c a luôn hi n th úng.. Linux h tr VESA Local Bus và PCI. B t u quá trình copy t ĩa CD vào c ng Bư c cu i cùng này s th c hi n các bư c format Linux Native / (n u ã ch n ph n trư c).Extra Documentation: M i tài li u v Linux có trong ĩa CD. Các h n ch v ph n c ng ng l i máy. gõ “Exit”.. 1024x786. 586. kh i b t u kh i ng t c ng. 486. 32 bits.. dư i nh ng ngôn ng như Anh. Tây Ban Nha.54 Khz quét d c: 50 .120 Hz ây là ph n khá quan tr ng. các ch phân gi i 640x480. Ví d sau ây là m t s thông s hi n th khi chúng ta cài t: Video Card: ATI Mach64 Video Ram: 4096KB X server: Mach64 Monitor: 14” COLOR quét ngang: 30 . và sau ó là gi i nén t t c các gói ph n m m mà ã l a ch n trong bư c th 13 vào c ng.4. AA. 800x600..

c ng chu n ESDI và MCA (bus c quy n c a Linux cũng có th ch y trên các laptop h 386. Dư i ây là danh sách các b VXL mà Linux h tr : Dòng 68000 c a Amigas và Ataris hi n ang ư c tri n khai nghiên c u. m t ý tư ng là ưa v 0 a ch b t u c a m t phân vùng 1 7 . ang nghiên c u v Linux cho MIPS. Các phiên b n GNU/Linux cũng ư c th cài t cho các n n Alpha. Linux nói chung là ch y tương i “tho i mái” v i 4MB Ram nhưng các ng d ng X Windows s ch y ch m b i vì chúng c n ph i th c vi c swap vào ra trên ĩa. ch y u là khác. M t d án v Linux trên PPC cũng ã ư c ti n hành. PowerPC. ây là m t nhân Linux 16 bit ư c ch y u s d ng trong các h th ng nhúng. S tương thích v i các h i u hành khác: DOS. Hi n có 2 b n Linux cho dòng máy dùng h vi x lý ARM. Win95 Linux s d ng s p x p phân d ng gi ng như MS-DOS do ó nó có th chia s ĩa v i các h i u hành khác. Linux cho SPARC ang ư c ti n hành. M t là c a vi x lý ARM3 trên các máy Acorn A5000 và nó còn bao g m c các thi t b I/O cho 82710. Các trình Fdisk và Format c a DOS th nh tho ng l i có th vi t è lên d li u trong phân vùng c a Linux b i vì chúng có th s d ng các thông tin phân vùng sai l nh t boot sector c a phân vùng ch không ph i là t b ng phân vùng. Còn l i là cho h vi x lý ARM610 c a máy Acorn RISC PC. Có b n Hardhat cho các máy SGI/Indy. 386BSD. Apple ã h tr MkLinux trên các Power Macs d a trên OSF c a Mach vi nhân. M t vài ng d ng hi n t i l i ch ch y bình thư ng v i 128MB b nh v t lý ch ng h n như Netscape. tránh hi n tư ng này.Linux cũng h tr ph n l n cho các IBM). Có m t cách cài t Linux trên 8086 ư c bi t n dư i tên g i ELKS (Embeddable Linux Kernel Subset). Sparc. Th c ra phiên b n Linux hi n nay không th ch y ư c y trên 8086 hay 286 b i vì nh ng b vi x lý này không h tr cho vi c chuy n i tác v cũng như qu n lý b nh . Các yêu c u v b nh T i thi u là 4MB. Tuy v y. Linux h tr a quá trình cho các ki n trúc Intel MP. N u cài t c b GNU/Linux s c n kho ng 500MB-1GB bao g m c mã ngu n và nhi u th khác n a. b t u i v i R4 trên các máy Deskstation Type. Ta có th s d ng swapping ch y thêm các cài t khác. OS/2. Các yêu c u v không gian c ng i vi c cài t t i thi u là 10 MB. i u này cũng có nghĩa là các h i u hành khác cũng có th không h n là hoàn toàn tương thích. th ch không có nhi u các tính năng Ta có th cài t thêm X v i kho ng 80 MB. ARM. Linux cho máy 64 bit DEC Alpha/AXP.

còn có m t chương trình tên LOADLIN là m t chương trình DOS cho phép n p Linux (cũng như b t kỳ h i u hành khác) khi n cho Linux cùng t n t i v i DOS. System V. Linux cũng h tr cho vi c thao tác trên các nh d ng AFFS (Amiga Fast File System) t b n 1. Do ó ta s ph i t o m t thư m c ch ng h n C: LINUX. 4 c a h th ng (ho c khi ta thêm m t SCSI vào m t h th ng có ch a IDE). Ngoài ra. NeXTStep.. t LOADLIN vào trong ó cùng v i m t b n copy c a nhân và r i s d ng nó. LILO boot b t bu c ta ph i l a ch n h i u hành vào lúc kh i ng.v a m i t o l p trong Linux trư c khi s d ng các l nh format c a MS-DOS. c p ngư i dùng Câu h i t ra là có th ch y m t chương trình Windows trong Linux hay không ? Chương trình tên WINE ang ư c phát tri n mô ph ng môi trư ng Windows trong Linux. i v i các máy Macintosh thì có m t t p h p các chương trình có th c. Xenix. Có m t chương trình tên là Samba cho phép truy c p và h th ng file m ng WfW (mi n là dùng giao th c TCP/IP) . ghi trên HFS (Macintosh Hierarchical File System). Chú ý: C n t o ít nh t m t phân vùng Linux dư i gi i h n 1024 cylinder logic. Linux cho phép c/vi t trên các ĩa SMB c a các nhóm Windows và WinNT. LOADLIN c bi t h u d ng khi ta mu n cài Linux trên các ĩa th 3. i u này cũng ch d ng m c ch c. Các truy c p ĩa m m thì chưa có h tr b i vì s khác bi t gi a các i u khi n ĩa c a PC và Amiga. u tiên trên ĩa Linux có th c và ghi các file trên các phân vùng FAT c a DOS và OS/2 và các ĩa m m b ng cách s d ng h th ng file DOS ư c tích h p vào nhân ho c các công c mtool.. Trong trư ng h p này thì LILO boot s không có kh năng tìm ki m và n p nhân. Nhân cũng cung c p h tr cho h th ng file VFAT c a Windows 9x và Windows NT. thì các nhân hi n t i cũng m i ch có th c h th ng file UFS trên System V. Linux cũng có th truy c p ư c t i h th ng file HPFS c a OS/2 nhưng ch ch read-only. NetBSD. i v i các máy ch y các h i u hành c a Unix như BSD. 1 7 . S d ng l nh sau: $ dd if=/dev/zero of=/dev/hdXY bs=512 count=1 V i hdXY là phân vùng liên quan. FreeBSD. Ngư i ta có th th c hi n i u này như m t l a ch n khi biên d ch nhân. H tr UFS cũng ư c coi như m t l a ch n lúc biên d ch nhân hay như m t mô un. Hi n t i các ĩa phân vùng theo NTFS cũng ang ư c nghiên c u h tr cùng v i vi c h tr nén ĩa như là m t tính năng chu n. Tuy v y. ch ng h n /dev/hda1 là phân vùng IDE u tiên. Hi n t i khi mu n dùng hai h i u hành cùng lúc v i Linux thì ta ã có chương trình LILO boot. BSD. m t s s n ph m th a k khác như SunOS.3 tr v sau b ng cách như m t l a ch n lúc biên d ch hay như m t mô un riêng.

Ch này cũng gi ng như ch thư ng. nhưng sau khi g i m t l nh. Ngư i dùng có th nh p m t ký t thu c lo i in n ư c xoá m t s l a ch n và ch y ch chèn. ch khác ch : m i ký t nh p s thay th cho m t ký t ã t n t i (có th g i là ch è . các l nh tìm ki m (/ hay ?). m t dòng l nh ư c nh p t i áy c a s so n th o. N u không thi t l p tuỳ ch n insertmode.overwrite). nhưng sau khi th c hi n m t l nh. TRÌNH SO N TH O VIM UNIX có hai b so n th o là ed và vi trong ó vi ư c ưa chu ng hơn do vi ư c phát tri n t b so n th o dòng l nh ed. c bi t là t o ra các văn b n chương trình ngu n. Văn b n ó s ư c chèn vào trong b m. và các l nh l c (!). M t khác. Ch o (Visual mode): ch này cũng g n gi ng như ch thư ng. Linux cho phép ngư i dùng s d ng trình so n th o vim mà vim chính là b so n th o tương thích v i vi. vim s ch cho n khi o n văn b n ch u tác ng c a l nh ư c ưa ra. Ch thư ng còn ư c g i là ch l nh. Ch dòng l nh (Command-line mode hay cmdline mode): Trong ch này. ng m nh vào ngay ch thư ng khi kh i ng vim. Ch chèn (Insert mode): Trong ch này. nhưng sau khi nh p m t l nh. vim ư c ph n l n ngư i dùng s d ng so n th o các file văn b n ASCII. các l nh khác (không là l nh di chuy n) th c s tác d ng trong ph m vi nh ng o n văn b n ã ư c ánh d u. Ngư i dùng có th nh p m i ký t như trong ch chèn.o (Insert Visual mode): ch này ư c sinh ra khi trong ch chèn th c hi n m t s l a ch n o. Ngoài ra còn có năm ch ph sau: Ch ch th c hi n (Operator-pending mode): ch này gi ng ch thư ng. Ch thay th (Replace mode): ch thay th là m t trư ng h p c bi t c a ch chèn. Ch chèn-l nh (Insert Normal mode): gõ CTRL-O trong ch chèn chuy n sang ch chèn-l nh. Tuy nhiên còn r t nhi u h n ch i v i các l nh ch này. ch khác ch là l nh di chuy n có tác d ng ánh d u văn b n. Ch Ex (Ex mode): gi ng như ch dòng l nh. Ch chèn.PH L C B. 1 7 . vim s tr l i ch chèn. vim có sáu ch cơ b n: Ch thư ng (Normal mode): trong ch thư ng ngư i dùng ư c phép nh p t t c các l nh so n th o thông thư ng. Ch ch n l a (Select mode): ch này tương t như ch l a ch n c a MS-Windows. có th so n th o văn b n bình thư ng như các b so n th o quen bi t khác. ó có th là các l nh Ex (:). v n trong ch Ex. Trong ch văn b n. vim s tr v ch chèn sau khi s l a ch n o ó k t thúc.

CTRL-V có th gõ m t phím l nh thông thư ng (ngo i tr phím l nh di chuy n con tr ). *6 chuy n sang ch chèn t ch l a ch n: nh p m t ký t có th in ư c. v. ?. ! : : ---Ex Q ------ Thư ng o L a ch n Chèn Thay th Dòng l nh Ex Gi i thích các l nh vi t t t: *1 chuy n sang ch chèn t ch thư ng. *3. I. Dư i ây trình bày n i dung m t s các l nh cơ b n trong vim. S. *6 là cách vi t t t danh sách l nh ư c gi i thích sau): Ch Ch hi n th i Thư ng o v. s. A. *2.Ch chèn-l a ch n (Insert Select mode): ch này ư c kh i t o khi ch y ch l a ch n trong ch chèn. Khi ch l a ch n k t thúc. O. ô giao gi a hàng và c t ch a các phím l nh chuy n ch (ký hi u *1. *4. a. *2 chuy n sang ch thư ng t ch o: ngoài <Esc>. *5. V. /. 1 7 . c t u tiên là ch ngu n. Trong b ng này. Vi c chuy n i gi a các ch trong vim ư c th c hi n nh các l nh (phím l nh ho c xâu l nh) c a vim và ư c t p h p trong b ng dư i ây. ^V *2 *5 <Esc> <Esc> *3 :vi ^O. *3 chuy n sang ch thư ng t ch dòng l nh: Th c hi n l nh <Enter> Gõ CTRL-C ho c <Esc> *4 chuy n sang ch l a ch n t ch thư ng: S d ng chu t l a ch n văn b n S d ng các phím không in ư c di chuy n d u nh c tr trong khi n gi phím SHIFT *5 chuy n sang ch thư ng t ch l a ch n: s d ng các phím không in ư c di chuy n d u nh c tr mà không nh n phím SHIFT. c. s d ng m t trong các phím: i. C *6 <Insert> :start -Thay th R --<Insert> --Dòng l nh :. vim s tr v ch chèn. o. hàng u tiên là ch ích. C. V. ^G ----L a ch n *4 ^G ----c n chuy n t i Chèn *1 c.

so n th o m t file có tên b t u b ng "-" thì ph i i n vào tên file d u "--". hư ng n file k ti p. Ví d l nh sau s m hai file vd1 và vd2 trên hai c a s so n th o: # vim -o2 vd1 vd2 ~ ~ ~ 1 8 . Tính năng m nhi u c a s Trong vim.1 Kh i ng vim so n th o m t file văn b n.B. ta ánh l nh ":next" ch l nh. là gõ m t trong ba b t u so n th o hay hi u ch nh m t file b t u so n th o m t ho c nhi u file so n th o m t file t thi t b vào chu n B. file u tiên trong danh sách tr thành file hi n hành và ư c c vào trong vùng so n th o.1. Con tr s xu t hi n u dòng u tiên c a vùng này. có th chia c a s so n th o hi n th i thành nhi u ph n hay m nhi u c a s cùng lúc so n th o các file khác nhau.1.2.1 M chương trình so n th o vim Cách ơn gi n nh t b t u dùng vim l nh sau: vim [tuỳ-ch n] vim [tuỳ-ch n] <danh sách các file> vim [tuỳ ch n] - N u tham s danh sách các file không có thì vim s thao tác v i m t file m i (vùng m so n th o r ng).0-1 All L nh trên m m t c a s cho ngư i dùng so n th o m t file m i có tên là "vdvim" M t s các tuỳ ch n cơ b n: + [n] + <l nh> +/<m u> <file> -o[n] --help t d u nh c tr t i dòng th n (ng m nh là dòng cu i) th c hi n l nh sau khi n p file t d u nh c tr t i dòng u tiên có ch a m u trong file m n c a s (ng m nh có m t c a s cho m t file: n=1) hi n th danh sách các tham s và thoát B. Ngư c l i. Ví d : # vim vdvim` ~ ~ ~ ~ ~ ~ ~ "vdvim"[New File] 0.

ghi n i dung ra <file>. Ghi và thoát trong vim B ng dư i ây gi i thi u các l nh ghi n i dung file lên h th ng file và thoát kh i vim sau khi ã so n th o xong n i dung c a file (tham s n. n u file ã t n t i thì ghi è lên n i dung cũ chèn thêm vào <file>.0-1 All ~ ~ ~ vd2 0.m] w <file> :[n.m] w [!] :[n.m] w! <file> :[n.m] w !<l nh> :[n.vd1 0.m] w[!] >> [<file>] :[n. n u không có file. :[n. m c nh là file hi n th i th c hi n <l nh> trên các dòng t dòng th n n dòng th m như thi t b vào chu n ghi file hi n th i n u nó ư c s a i thoát kh i vim ghi n i dung <file> (m c nh là file hi n th i) và thoát kh i vim gi ng :wq nhưng ch ghi khi th c s có s thay i trong n i dung file (gi ng ZZ) 1 8 . tìm file trên ư ng d n và so n th o nó chia c a s và edit alternate file t o m t c a s tr ng m i (gi ng :new) d ng vi c so n th o và óng c a s (gi ng :q) phóng to c a s hi n hành trên toàn màn hình di chuy n tr so n th o xu ng c a s dư i di chuy n tr so n th o lên c a s trên di chuy n tr so n th o lên nh c a s di chuy n tr so n th o xu ng áy c a s di chuy n tr so n th o n c a s ư c kích ho t lúc trư c di chuy n tr so n th o n c a s ti p theo t o t t c các c a s có chi u cao như nhau gi m chi u cao c a c a s hi n th i tăng chi u cao c a c a s hi n th i thi t t chi u cao c a c a s hi n th i B. m n u có mang ý nghĩa "t dòng n t i dòng m").1. tr khi file ó ã th c s t n t i ghi n i dung ra <file>.0-1 All "vd2" [New File] Sau ây là m t s các l nh hay dùng: CTRL-W :split <file> :sf <file> CTRL-W CTRL-^ CTRL-W n CTRL-W q CTRL-W o CTRL-W j CTRL-W k CTRL-W t CTRL-W b CTRL-W p CTRL-W x CTRL-W = CTRL-W CTRL-W + CTRL-W chia c a s hi n t i thành hai ph n chia c a s và so n th o <file> trên m t ph n chia c a c a s chia c a s .3.m] up [th i gian] [!] :q [!] :wq [!] [<file>] :x [!] <file> ghi file hi n th i.

:st [!] d ng vim và kh i t o m t shell (gi ng CTRL-Z) B. Di chuy n trong văn b n Di chuy n tr so n th o trong văn b n là m t tính năng r t quan tr ng trong m t trình so n th o văn b n vim. Di chuy n theo các i tư ng văn b n vim cung c p các l nh dư i ây cho phép di chuy n tr so n th o nhanh theo các i tư ng văn b n và i u ó t o nhi u thu n ti n khi biên t p.. Dư i ây là m t s các l nh th c hi n vi c trên (c t u tiên có n ch m t s là s lư ng): N N n n l h k j 0 ^ $ <Enter> + _ G G H M gg gk gj di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy tiên) di chuy di chuy n tr n tr n tr n tr nv n n n n n n n n n n n so n th o v bên ph i n ký t so n th o v bên trái n ký t so n th o lên n dòng so n th o xu ng n dòng u dòng nt u tiên c a dòng hi n t i n cu i dòng n u dòng ti p theo n u dòng trư c dòng hi n t i n dòng n u dòng sau dòng hi n t i n dòng n u dòng sau dòng hi n t i n-1 dòng n dòng cu i cùng trong file n dòng th n trong file (gi ng :n) n dòng u tiên trên màn hình n dòng gi a màn hình n u dòng th n (m c nh là dòng u n n n n n n n n lên n dòng màn hình n xu ng n dòng màn hình B. ch ng h n.2..1.2. Di chuy n tr so n th o trong Vim B. m t câu .2. N N N N N N N N N N n n W E B ge > < | | ]] [[ ][ [] di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy di chuy n n t ti p theo n n cu i c a t th n n ngư c l i n t n ngư c l i n t và t d u nh c tr t i ch cái cu i t n n n câu ti p theo n ngư c l i n câu n n n o n ti p theo n ngư c l i n o n n n n ph n ti p theo và t d u nh c tr t i u ph n n ngư c l i n ph n và t d u nh c tr t i u ph n n n n ph n ti p theo và t d u nh c tr t i cu i ph n n ngư c l i n ph n và t d u nh c tr t i cu i ph n 1 8 . trong các trư ng h p ngư i dùng c n xoá b hay thay i m t t .2.

Các l nh chèn văn b n trong vim A A i I gI o O :r file :r! l nh chèn văn b n vào v trí d u nh c tr hi n th i (n l n) chèn văn b n vào cu i m t dòng (n l n) chèn văn b n vào bên trái d u nh c tr (n l n) chèn văn b n vào bên trái ký t u tiên khác tr ng trên dòng hi n t i (n l n) chèn văn b n vào c t u tiên (n l n) chèn n dòng tr ng vào dư i dòng hi n t i chèn n dòng tr ng vào trên dòng hi n t i chèn vào v trí con tr n i dung c a file chèn vào v trí con tr k t qu c a l nh l nh N n n n n n B. Ph n dư i ây gi i thi u chi ti t v các cách thêm văn b n. Các l nh xoá văn b n trong vim Bên c nh các l nh t o hay chèn văn b n.2. z- nh màn hình.3.2. Khi so n th o văn b n. nhi u dòng có th ư c nh p b ng cách s d ng phím Enter. N u có m t l i c n ph i s a. hi u ch nh văn b n hay xoá m t văn b n. dòng hi n t i s là dòng trên cùng c a c a s (gi ng zt) v l i c a s so n th o.B. Dư i ây là b ng li t kê m t s l nh cơ b n: N N N x X dd D ho c d$ xoá n ký t bên ph i d u nh c tr xoá n ký t bên trái d u nh c tr xoá n dòng k t dòng hi n th i xoá t v trí hi n th i n h t dòng 1 8 . có th s d ng các phím mũi tên di chuy n tr so n th o trong văn b n và s d ng các phím Backspace ho c Delete hi u ch nh. B. dòng hi n t i s là dòng áy c a c a s (gi ng zb) B.3. Tuy cu n lên n màn hình (m c nh là 1 màn hình) cu n xu ng n màn hình (m c nh là 1 màn hình) cu n xu ng n dòng (m c nh là 1/2 màn hình) cu n lên n dòng (m c nh là 1/2 màn hình) cu n xu ng n dòng (m c nh là 1 dòng) cu n lên n dòng (m c nh là 1 dòng) v l i c a s so n th o.1. dòng hi n t i s là dòng gi a c a c a s (gi ng zz) v l i c a s so n th o.3. Các thao tác trong văn b n vim có r t nhi u các l nh h tr thao tác so n th o hay hi u ch nh m t file. Cu n màn hình Màn hình s t ng cu n khi di tr so n th o n áy ho c lên nhiên các l nh sau ây giúp ngư i dùng cu n màn hình theo ý mu n: N N N N N N <CTRL-f> <CTRL-b> <CTRL-d> <CTRL-u> <CTRL-e> <CTRL-y> z<Enter> z. vim cũng có m t s l nh cho phép ngư i dùng có th xoá văn b n.3.

n u không có n m c nh là dòng hi n t i.3.3. n u không có n m c nh là dòng hi n t i.] thay th n ký t bên ph i d u tr b i <ký t > ghi è văn b n b i m t văn b n m i (hay chuy n sang ch thay th . Lưu tr tr ng thái c a l n ghi trư c làm l i (redo) n l n khôi ph c (undo) trư c ó ! N 6. Các l nh khôi ph c văn b n trong vim Các l nh sau cho phép khôi ph c l i văn b n sau m t thao tác hi u ch nh nào ó: N u U : e! CTRL-R khôi ph c l i văn b n như trư c khi th c hi n n l n thay i khôi ph c l i hoàn toàn dòng văn b n hi n th i như trư c khi th c hi n b t kỳ s hi u ch nh nào trên dòng ó hi u ch nh l i.4.. k c dòng hi n th i r i kh i t o ch chèn (Insert) xoá n dòng k t v trí hi n th i r i kh i t o ch chèn (Insert) xoá t dòng hi n th i n h t dòng th n r i kh i t o ch chèn (Insert) xoá n ký t và ch y ch chèn (Insert) xoá n dòng và ch y ch chèn (Insert) B. k t dòng hi n t i.N N. t ch thư ng thành ch hoa chuy n các ký t trên n dòng.] .3. x là s d u ' > ' (ví d : >>> thì x b ng 3) chuy n dòng th n sang bên trái x kho ng tr ng (gi ng như phím SHIFT+TAB trong Win).. Các l nh thay th văn b n trong vim vim còn có các l nh cho phép thay i văn b n mà không c n ph i xoá văn b n r i sau ó ánh m i. n r <ký t > R n n n n n n ~ gUU guu CTRL-A CTRL-X > [> ..Replace trong Vim) chuy n n ch hoa thành ch thư ng và ngư c l i chuy n các ký t trên n dòng.m N N N N dw dG d1G dn$ d cc C cn$ s S xoá n t k t v trí hi n th i xoá t v trí hi n th i n cu i file xoá ngư c t v trí hi n th i n u file xoá t dòng hi n th i n h t dòng th n xoá t dòng th n n dòng th m xoá n dòng. t ch hoa thành ch thư ng c ng thêm n ơn v vào s hi n có b t i n ơn v t s hi n có chuy n dòng th n sang bên ph i x kho ng tr ng (gi ng như phím TAB trong Win).. x là s d u ' < ' 1 8 n < [< . k t dòng hi n t i.

n u không có width.m] ce [width] :[n.3. m c nh r ng là 80 căn ph i t dòng th n n dòng th m v i r ng là width.m] le [width] :[n. n u không có width. Sao chép và di chuy n văn b n trong vim Ph n này gi i thi u v i các các l nh cơ b n c t và dán văn b n trong vim. yêu c u xác nh n i v i m i m u tìm ư c l p l i l nh tìm và thay th trư c (:s) v i ph m Vim m i t dòng n n dòng m kèm theo là các tuỳ ch n l p l i vi c tìm ki m và thay th trên dòng hi n th i mà không có các tuỳ ch n B. m c nh r ng là 80 căn trái t dòng th n n dòng th m v i r ng là width.m]s/<m u1>/<m u2>/[g][c] :[n. m c nh r ng là 80 tìm t dòng th n n dòng th m và thay th m u1 b i m u2. thành m t dòng gi ng như J nhưng không chèn các kho ng tr ng căn gi a t dòng th n n dòng th m v i r ng là width.5.m] ri [width] :[n.n n J gJ :[n. nhưng ưa d u nh c tr v sau o n văn b n m i dán gi ng như P. nhưng ưa d u nh c tr v sau o n văn b n m i dán dán m dòng văn b n vào sau dòng th n (n u không có n ng m nh 1 8 m sao chép n ký t sao chép n dòng văn b n. V i [g].m]s[g][c] & k t h p n dòng. thay th cho m i m u tìm ư c. n u không có width. k t dòng hi n t i. vào b nh yy) sao chép dòng th n vào dư i dòng th m m (gi ng . k t dòng hi n t i. V i [c]. sao chép văn b n ph i th c hi n ba bư c sau: Sao chép văn b n vào m t b nh m (Yanking) Di chuy n d u nh c tr n v trí c n sao chép (Moving) Dán văn b n (Pasting) Sau ây là các l nh c th c a t ng bư c: * Sao chép văn b n vào b nh n n yw Y : [n] co [m] * Dán văn b n: n n n n P P Gp gP : [n] put m dán o n văn b n ư c sao chép vào bên ph i v trí hi n th i (n l n) dán n o n văn b n ư c sao chép vào bên trái v trí hi n th i (n l n) gi ng như p.

: [n] put! m là dòng hi n t i) dán m dòng văn b n vào trư c dòng th n (n u không có n ng m nh là dòng hi n t i) Ngoài các l nh trên. khi ó có th s d ng các l nh dán dán văn b n vào v trí m i. Nh n phím trái chu t và kéo t i m b t u n i m k t thúc c a o n văn b n c n sao chép. M t bi u th c thông thư ng là m t t p các ký t . T p ký t này ư c xây d ng b ng cách k t h p gi a các ký t thông thư ng và các ký t c bi t. văn b n s ư c dán vào v trí mu n.6. hãy s d ng các l nh xoá trong vim c t o n văn b n. Các ký t c bi t trong bi u th c thư ng là: . o n văn b n ó s ư c t ng sao vào b nh m.3. khi s d ng vim trong xterm. thay th cho m t ký t ơn ngo i tr ký t xu ng dòng \ hi n th các ký t c bi t * thay th cho 0 ho c nhi u ký t \+ thay th cho 1 ho c nhi u ký t \= thay th cho 0 ho c m t ký t ^ thay th cho ký t u dòng $ thay th cho ký t cu i dòng \< thay th cho ch b t u c a t \> thay th cho ch cu i c a t 1 8 . ngư i dùng có th s d ng chu t th c hi n các thao tác cho vi c sao chép văn b n. Ví d . Ngoài ra còn có th s d ng m t s l nh sau: : [n] m [x] '' '" di chuy n dòng th n vào dư i dòng th x d ch chuy n d ch chuy n n v trí lúc trư c n v trí lúc trư c th c hi n vi c hi u ch nh file B. dòng b xoá s ư c lưu vào trong b m. cũng ph i th c hi n qua ba bư c sau: C t o n văn b n và dán vào b m Di chuy n d u nh c tr t i v trí m i c a o n văn b n Dán o n văn b n vào v trí m i Di chuy n văn b n ch khác sao chép bư c u tiên là bư c c t o n văn b n. Vi c này ch th c hi n ư c khi ang trong ch so n th o c a vim. Tìm ki m và thay th văn b n trong vim vim có m t s các l nh tìm ki m như sau: / <xâu> ? <xâu> N N tìm xâu t dòng hi tìm xâu t dòng hi tìm ti p xâu ư c tìm ti p xâu ư c n t i n dòng cu i trong file n t i ngư c lên dòng u trong file ưa ra trong l nh / ho c ? (t trên xu ng dư i) ưa ra trong l nh / ho c ? (t dư i lên trên) Xâu ư c tìm ki m trong l nh / hay ? có th là m t bi u th c. di chuy n văn b n trong vim. Sau ó di tr so n th o n v trí c n dán và nháy nút chu t gi a. khi dùng l nh dd.

7.$s/the/The/g tìm trong file ang so n th o các t the và thay chúng b i các t The.3. Các phím s d ng trong ch Chuy n i ch chuy n vào ch chèn ho c ch thay th thoát kh i ch chèn. B. nhưng ??? th c hi n <l nh> và tr v ch chèn Di chuy n Các phím mũi tên di chuy n tr so n th o sang trái/ph i/lên/xu ng m t ký t SHIFT-left/right di chuy n tr so n th o sang trái/ph i m t t <Home> di chuy n tr so n th o v u dòng <End> di chuy n tr so n th o v cu i dòng Các phím c bi t <Enter>. tr l i ch thông thư ng gi ng như <Esc>. l nh sau ây: :1. có th k t h p l nh tìm ki m và thay thay th ưa ra ư c các l nh ph c t p theo d ng t ng quát sau: :< i m b t u>. ánh d u trong vim m |a-zA-Z| '|a-z| '|A-Z| :marks ánh d u văn b n t i v trí hi n th i v i d u là các ch cái |a-zA-Z| d ch chuy n con tr t i v trí ã ư c ánh d u b i các ch cái |a-z| trong ph m Vim file hi n th i d ch chuy n con tr t i v trí ã ư c ánh d u b i các ch cái |A-Z| trong m t file b t kỳ hi n th các ánh d u hi n th i chèn B.< i m k t thúc> s/<m u c n thay th >/<m u ư c thay th >/[g][c] Ví d . T t c các l nh trong ch này ư c b t u b ng d u ':'. CTRL-M.8.[] [^] [-] \p \s \e \t thay th thay th thay th thay th thay th thay th thay th cho m t ký t n m trong c p d u [] cho ký t không thu c trong c p d u [] và cho m t t p có th t các ký t cho m t ký t có th in ư c cho m t ký t tr ng cho phím Esc cho phím Tab ng sau d u ^ vim s d ng ch l nh Ex th c hi n các vi c tìm ki m và thay th . CTRL-J b t u m t dòng m i CTRL-E chèn ký t vào bên ph i d u nh c tr CTRL-Y chèn m t ký t vào bên trái d u nh c tr CTRL-A chèn vào trư c o n văn b n ư c chèn CTRLchèn vào trư c o n văn b n ư c chèn và d ng ch chèn CTRL-R <thanh ghi> chèn n i dung c a m t thanh ghi <Insert> <Esc> CTRL-C CTRL-O <l nh> 1 8 .3.

10. M t s l nh trong ch v chèn t ti p theo vào trư c d u nh c tr chèn t trư c ó vào trư c d u nh c tr hoàn thành t trư c d u nh c tr theo nhi u cách khác nhau xoá m t ký t trư c d u nh c tr xoá m t ký t sau d u nh c tr xoá t trư c d u nh c tr xoá t t c các ký t trên dòng hi n t i chèn m t kho ng tr ng trư c dòng hi n th i xoá m t kho ng tr ng trư c dòng hi n th i o n n n n khi nh n phím này. Cách th c hi n các l nh bên trong Vim :sh :! <l nh> kh i t o m t shell th c hi n m t l nh shell trong Vim 1 8 . m t dòng văn b n s ư c ánh d u và có th s d ng các phím di chuy n ánh d u o n văn b n ho c b ánh d u CTRL-V nh n phím này s ánh d u m t kh i văn b n và có th s d ng các phím di chuy n ánh d u o n văn b n ho c b ánh d u o di chuy n v trí d u nh c tr trên kh i ư c ánh d u ho c b ánh d u gv ánh d u l i o n văn b n ư c ánh d u lúc trư c aw ch n ánh d u n t as ch n ánh d u n câu ap ch n ánh d u n o n ab ch n ánh d u n kh i B.1. CTRL-H <Del> CTRL-W CTRL-U CTRL-T CTRL-D B.4.m]g!/<m u>/[l nh] th c hi n l nh (m c nh là :p) trên các dòng không ch a m u n m trong kho ng t dòng th n n dòng th m :sl [n] t m d ng trong n giây gs ti p t c d ng trong n giây n B.9.. <Backspace>.4. Các l nh l p n n n .CTRL-N CTRL-P CTRL-X . q |a-z| @|a-z| @@ :@|a-z| :@@ :[n. Các l nh khác B.3.m]g/m u/[l nh] l p l i n l n thay i cu i ghi các ký t ư c nh p vào trong thanh ghi |a-z| th c hi n n i dung có trong thanh ghi |a-z| n l n l p l i n l n s th c hi n c a l nh @|a-z| trư c th c hi n n i dung c a thanh ghi |a-z| như m t l nh Ex l p l i s th c hi n c a l nh :@|a-z| trư c th c hi n l nh (m c nh là :p) trên các dòng có ch a m u n m trong kho ng t dòng th n n dòng th m :[n.. có th s d ng các phím di chuy n ánh d u o n văn b n ho c b ánh d u (văn b n ư c ánh d u có màu tr ng) V khi nh n phím này.3.

t dòng th n ho c t dòng có ch a m u. trong vim còn có m t s l nh cho phép có th có ư c nh ng thông tin c n thi t v file. CTRL-G n g CTRL-G CTRL-G :f <tên m i> :ls :cd :w <tên file> :e[n.:!! K q l p l i l nh ':! <l nh>' lúc trư c m trang man c a l nh trùng v i n i dung t t i d u nh c tr thoát kh i l nh ang th c hi n tr l i Vim B. l i khi c. b qua m i s thay i trong file n p l i file hi n th i. file m i) (gi ng :f) hi n th thông tin như CTRL -G và có thêm ư ng d n y c a file (n u n>1. tr khi có s thay i th c s trong file luôn so n th o file. /m u] <file> :e[n. t dòng th n ho c t dòng có ch a m u.4. dòng/t ng s dòng và ký t /t ng s ký t i tên file hi n th i thành tên m i li t kê t t c các file hi n th i ang ư c s d ng trong Vim (gi ng :buffer và :files) ưa thêm ư ng d n vào tên file t o m t b n sao c a file hi n th i v i tên m i là tên file (gi ng như save as trong Win) Xác nh file c n so n th o so n th o file. tên buffer hi n th i s ư c ưa ra) ưa ra v trí d u nh c tr theo d ng: c t/t ng s c t. /m u]! <file> :e :e! :fin [!] <file> :e #n :pw :conf <l nh trong vim > hi n th tên file hi n th i kèm theo tr ng thái file và v trí d u nh c tr (tr ng thái có th là: ch c. ư c s a.2. Các l nh liên quan n file Ngoài các l nh cơ b n như sao chép hay c t dán. tr khi có s thay i th c s trong file luôn n p l i file hi n th i. b qua m i s thay i th c s trong file tìm file trên ư ng d n và so n th o so n th o file th n (gi ng n CTRL-^) Các l nh khác ưa ra tên thư m c hi n th i th c hi n l nh trong vim và ưa ra h p tho i yêu c u xác nh n khi có thao tác òi h i s xác nh n 1 8 .

Panel là m t khung c a s hi n th các file thư m c cùng các thu c tính c a nó ho c m t s n i dung khác. Dù trong h i u hành Windows sau này ã có s h tr c a ti n ích Explorer nhưng không vì th mà vai trò c a NC gi m i: Nhi u ngư i dùng v n thích dùng NC trong các thao tác v i file và thư m c. MIDNIGHT COMMANDER C. Thanh sáng ch n n m trên panel hi n hành. Theo m c nh. N u ch ra ư ng d n (path). Kh i ng trong ch màn hình màu. Tuy nhiên ta v n có th s a ư c thư m c này trư c khi thao tác vì các thao tác này u tiên bao gi cũng yêu c u nh p ư ng d n. S d ng ch c năng View c a MC xem n i dung c a file ư c ch ra. thư m c hi n hành s là thư m c cu i cùng thao tác. Dòng u tiên trên nh màn hình là th c ơn ngang (menu bar) c a MC. M t trong hai panel là panel hi n hành (panel ch n). C. ư ng d n u tiên là thư m c ư c hi n th trong panel ch n (selected panel). Trên panel s hi n th h u h t các file và thư m c con c a thư m c hi n hành.PH L C C. Gi i thi u v Midnight Commander (MC) Ngư i s d ng h i u hành MS-DOS u bi t tính năng ti n ích Norton Commander (NC) r t m nh trong qu n lý. Ph n l n màn hình là không gian hi n th c a hai panel. ư ng d n th hai ư c hi n th panel còn l i. Midnight Commander có cơ ch hi n th các ki u file khác nhau b ng các ký hi u và màu 1 9 .3. dòng th hai t dư i lên s là dòng l nh còn dòng dư i cùng hi n th các phím ch c năng. Thanh th c ơn này có th không xu t hi n nhưng n u kích ho t b ng c hai chu t t i dòng u tiên ho c nh n phím <F9> thì nó s hi n ra và ư c kích ho t. Kh i ng MC L nh kh i ng MC: # mc [Tùy-ch n] Có m t s tuỳ ch n khi dùng ti n ích này theo m t s d ng thông d ng sau: -a -b -c -d -P -v file -V Không s d ng các ký t ho v các ư ng th ng khung. Midnight Commander cho phép hi n th cùng m t lúc c hai panel. C. ĩa cũng như là môi trư ng tr c quan trong ch văn b n (text). M t s các thao tác khác v file như Rename hay Copy s m c nh s d ng thư m c Panel còn l i làm thư m c ích. H u h t các thao tác u di n ra trên Panel này. Cho bi t phiên b n chương trình ang s d ng. sau khi k t thúc. Kh i ng trong ch màn hình en tr ng.1. Không h tr chu t V i tham s này. Như v y. Linux cũng có m t ti n ích mang tên Midnight Commander (vi t t t là MC) có ch c năng và giao di n g n gi ng v i NC c a MS-DOS và s d ng MC trong Linux tương t như s d ng NC trong MS-DOS. Midnight Commander s t ng chuy n thư m c hi n hành t i thư m c ang làm vi c.2. i u khi n các thao tác v file. Giao di n c a MC Giao di n c a MC ư c chia ra làm b n ph n. thư m c.

N u kích ôi chu t t i m t file. tương thích v i m t s h th ng khác. vi t t t phím CTRL là “C”. toàn b panel s b kéo xu ng. Khi kích chu t vào m t file trên Panel. trong các b ng dư i ây v Midnight Commander. C p nh t l i các thông tin trên Panel.4.. phím SHIFT là “S”. Ngư i dùng cũng có th th c hi n các l nh c a các phím ch c năng b ng cách nháy chu t lên phím ch c năng ó. có nghĩa là thanh sáng ch n s n m t i v trí file ó và panel ch a file ó s tr thành panel hi n hành. Tương t kích chu t t i dòng cu i cùng trên khung panel. Còn n u không thì s tuỳ vào v trí c a thanh sáng trên panel hi n hành là file hay thư m c mà ho c vi c chuy n i thư m c ho c thi hành file hay thi hành m t chương trình tương ng s di n ra. N u không có hi u l c thì có th th c hi n b ng cách gõ phím <Esc> nh ra r i gõ phím <char>. Còn n u kích chu t ph i vào m t file. phím ALT là “M” (Meta).s c khác nhau. Sau ây là ch c năng m t s phím thông d ng. Có nghĩa là gi phím ALT trong khi gõ phím <char>. l nh ó s ư c thi hành. toàn b panel s b kéo lên. T t c nh ng gì có gõ vào u ư c hi n th dòng l nh phía dư i tr m t s ký t i u khi n và khi nh n Enter. các file ư ng ng có màu en. Các thao tác bàn phím M t s thao tác c a Midnight Commander cho phép s d ng nhanh b ng cách gõ các phím t t (hot key).5. Dùng chu t trong MC Midnight Commander s h tr chu t trong trư ng h p không g i v i tham s -d. Midnight Commander s thi hành l nh gõ vào. các thư m c liên k t có ký hi u ‘~’. N u kích chu t t i dòng u tiên trên khung panel. Có nghĩa là gi phím SHIFT trong khi gõ phím <char>. ví d như các file bi u tư ng liên k t s có ký hi u ‘@’ u. Có nghĩa là gi phím CTRL trong khi gõ phím <char1> sau ó nh t t c ra và gõ phím <char2>. file ó s ư c ch n. các file thi t b s có màu tím. file ó s ư c ánh d u ho c xoá d u tuỳ thu c vào tr ng thái kích trư c ó. file ó s ư c thi hành n u ó là file thi hành ư c (executable program) ho c n u có m t chương trình c trưng cho riêng ph n m r ng ó thì chương trình c trưng này s ư c th c hi n. Các ký hi u t h p phím có d ng như sau: C-<chr> C-<chr1><char2> M-<chr> S-<chr> Có nghĩa là gi phím CTRL trong khi gõ phím <char>. 1 9 C-l . C. Các phím th c hi n l nh: Enter N u có dòng l nh. Có th b qua các thao tác chu t c a MC và s d ng các thao tác chu t chu n b ng cách gi phím <Shift> C. các thư m c có ký hi u ‘/’ u.. Cho phép thi hành m t l nh h th ng t MC b ng cách gõ chúng lên màn hình. Ví d C -f có nghĩa là gi CTRL và nh n <f>.

C-x C-p M-p.Các phím thao tác trên dòng l nh: M-Enter hay CEnter M-Tab C-x t. M-h. l nh. d g. C-x C-t C-x p. M-j s d ng các phím này di chuy n trong m t panel di chuy n ngư c l i m t trang màn hình di chuy n ti p m t trang màn hình di chuy n lên/ xu ng 1/2 trang màn hình di chuy n n i m u ho c cu i c a m t màn hình hoán i panel hi n hành. PgUp. Delete Space u. Backspace. Thanh sáng ch n s chuy n t panel cũ sang panel hi n hành ch n ánh d u m t file ho c thư m c l n lư t ch n file u tiên. C-b. Space C-d. G Tab. C-i Insert. file gi a và file cu i trên panel hi n th 1 9 . bi n. tên ngư i dùng ho c tên máy giúp sao các file ư c ánh d u (m c nh là file hi n th i) trên panel ch n (C-x t) ho c trên panel kia (C-x C-t) xu ng dòng l nh ưa tên ư ng d n hi n th i trên panel ch n (C-x p) ho c trên panel kia (C-x C-p) xu ng dòng l nh s d ng hi n l i trên dòng l nh các l nh ã ư c g i trư c ó.Down. M-n C-a C-e C-b. C-h. Left C-f. M-n hi n l i l nh ư c g i trư c l nh ó ưa d u nh c tr v u dòng ưa d u nh c tr v cu i dòng ưa d u nh c tr di chuy n sang trái m t ký t ưa d u nh c tr di chuy n sang ph i m t ký t ưa d u nh c tr n t ti p theo ưa d u nh c tr ngư c l i m t t xoá ký t trư c ó xoá ký t t i v trí d u nh c tr ánh d u c t xoá các ký t t v trí d u nh c tr n cu i dòng xoá ngư c l i m t t Các phím thao tác trên panel: Up. C-t M-g. End b. Delete C-@ C-k M-C-h. M-p s hi n l i dòng l nh ư c thi hành g n nh t. Home. MBackspace chép tên file v trí thanh sáng ch n xu ng dòng l nh hoàn thành tên file. PgDown. Right M-f M-b C-h.

N u tuỳ ch n Show mini-status trong option ư c t thì xâu tìm ki m s ư c hi n th dòng tr ng thái. thanh sáng ch n s di chuy n n file u tiên có nh ng ký t u gi ng nh ng ký t gõ vào. N u nh n C-s l n n a.ch hi n th tên c a file..6. Có th s d ng các ký t d i di n như ‘*’. S d ng phím Backspace ho c Del hi u ch nh sai sót. M i khi nh n <F9> ho c kích chu t t i dòng d u tiên trên màn hình th c ơn ngang s ư c kích ho t... th i gian thay i. * Long . Th c ơn thanh ngang (menu bar) Th c ơn thanh ngang trong Midnight Commander ư c hi n th dòng u tiên trên màn hình. “File”. C-x q C-x i . M-s M-t C-\ + tìm ki m file trong thư m c. Quick view Info Tree Sort order. Có th s d ng các ký t i di n như ‘*’. ‘?’ bi u di n các file s xoá s d ng d u * ánh d u ho c xoá ánh d u t t c các file trong panel m t panel s hi n th n i dung thư m c hi n th i ho c thư m c cha c a thư m c hi n th i c a panel kia di chuy n n thư m c lúc trư c ã ư c s d ng di chuy n n thư m c ti p theo ã ư c s d ng * M-o M-y M-u C..hi n th các thông tin do t ch n v file. Khi kích ho t ch này.. kích thư c. theo tên m r ng. vi c tìm ki m s ư c ti p t c chuy n i ki u hi n th thông tin v file ho c thư m c thay i thư m c hi n th i s d ng d u c ng l a ch n ánh d u m t nhóm file..hi n th thông tin y v file (tương t l nh ls -l).hi n th thông tin v tên . ‘?’. Khi gõ các kí t . FTP link . nh ng ký t gõ vào s ư c thêm vào xâu tìm ki m thay vì hi n th trên dòng l nh. inode th c hi n vi c l c file theo tên th c hi n liên k t n m t máy tính th c hi n vi c l y các file trên các máy t xa 1 9 Listing Mode . kích thư c. * Brief . Th c ơn ngang c a MC có năm m c “Left”..C-s. * User .. xem nhanh n i dung c a m t file xem các thông tin v m t thư m c ho c file hi n th dư i d ng cây thư m c th c hi n s p x p n i dung hi n th theo tên. “Option” và “Right”... bi u di n các file s ch n s d ng d u tr xoá ánh d u m t nhóm file. th i gian truy nh p.. Các th c ơn m c con c a chúng g m: th c ơn này ư c dùng khi mu n thi t l p ki u hi n th c a các file. Có b n ki u hi n th : * Full . Filter . th i gian s a ch a. Th c ơn Left và Right giúp ta thi t l p cũng như thay i ki u hi n th c a hai panel left và right. và th i gian s i c a file.. “Command”. Network link .

. Filtered view Edit Copy cHmod Link Symlink edit sYimlink chOwn Advanced chown Rename/Move Mkdir Delete Quick cd select Group Unselect group reverse selecTion Exit F6 F7 F8 M-c M-+ MM-* F10 F2 F3 M-! F4 F5 C-x c C-x l C-x s C-x C-s C-x o th c ơn dành cho ngư i dùng xem n i dung c a file hi n th i m và xem n i dung c a m t file b t kì th c hi n m t l nh l c v i tham s là tên file và hi n th n i dung c a file ó so n th o file hi n th i v i trình so n th o m c nh trên h th ng th c hi n copy thay i quy n truy nh p i v i m t thư m c hay m t file t o m t liên k t c ng n file hi n th i t o m t liên k t tư ng trưng n file hi n th i hi u ch nh l i m t liên k t tư ng trưng thay i quy n s h u i v i thư m c hay file thay i quy n s h u cũng như quy n truy nh p c a file hay thư m c th c hi n vi c i tên hay di chuy n i v i m t file t o m t thư m c xoá m t ho c nhi u file chuy n nhanh n m t thư m c th c hi n vi c ch n m t nhóm các file ngư c v i l nh trên ch n các file trong thư m c hi n th i thoát kh i MC Th c ơn Command cũng ch a m t danh sách các l nh. Các th c ơn m c con: User menu View View file . hãy ch n m c th c ơn này và nh p l nh find . trên console SCO và Linux) th c hi n so sánh thư m c hi n t i trên panel ch n v i các thư m c khác ưa ra danh sách các l nh ã th c hi n thay i thư m c hi n th i th c hi n m t l nh trong MC và hi n th k t qu trên panel ch n (ví d : n u mu n trên panel ch n hi n th t t c các file liên k t trong thư m c hi n th i.Rescan C-r quét l i Th c ơn File ch a m t danh sách các l nh mà có th thi hành trên các file ã ư c ánh d u ho c file t i v trí thanh ch n. -type l -print 1 9 . Directory tree Find file Swap panels Switch panels on/of Compare directories Command history Directory hotlist External panelize M-? C-u C-o C-x d C-\ C-x ! hi n th thư m c dư i d ng cây thư m c tìm m t file th c hi n tráo i n i dung gi a hai panel hi n th ưa ra l nh shell ư c th c hi n l n cu i (ch s d ng trên xterm..

.. hãy di chuy n thanh sáng ch n n v trí file ó r i nh n F4.. Sau khi hi u ch nh xong. Virtual FS . Các phím ch c năng Các phím ch c năng c a Midnight Commander ư c hi n th t i dòng cu i cùng c a màn hình.. Configuration .7. nh n F2 ghi l i. F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 hi n th trang tr giúp ưa ra th c ơn ngư i dùng xem n i dung m t file so n th o n i dung m t file th c hi n sao chép file th c hi n di chuy n ho c i tên file t o thư m c m i xoá thư m c ho c file ưa tr so n th o lên thanh th c ơn n m ngang thoát kh i MC C. hi u ch nh m t s file văn b n. N u ã t ng là ngư i dùng DOS và m i dùng Linux thì nên dùng b so n th o này hi u ch nh và so n th o văn b n thay vì b so n th o Vim.8.. so n th o hay làm b t c i u gì trên các file có tên m r ng n ho t Th c ơn Options cho phép thi t l p. B so n th o c a Midnight Commander Midnight Commander cung c p m t b so n th o khá ti n d ng trong vi c so n th o các văn b n ASCII. B so n th o này có giao di n và thao tác khá gi ng v i ti n ích Edit c a DOS hay NcEdit c a Norton Commander. Save setup thi t l p các tuỳ ch n c u hình cho MC xác l p cách hi n th c a MC trên màn hình thi t l p các h p tho i xác nh n khi th c hi n m t thao tác nào ó thi t l p cách hi n th c a các ký t xác nh các phím không ư c kích ho t thi t l p h th ng file o ghi m i s thi t l p ư c thay i C.. Display bits .. hu b m t s tuỳ ch n có liên quan ng c a chương trình MC.. Lay-out .. Learn keys .. B so n th o này có m t th c ơn ngang cung c p các ch c năng y như m t b so n th o thông thư ng.mc/ext xác nh chương trình s th c hi n khi xem.. Confirmation . Sau ây là b ng li t kê các phím ch c năng cũng như các m c th c ơn trong b so n th o này: 1 9 . n i dung c a file ó s hi n ra trong vùng so n th o. Có th th c hi n các ch c năng ó b ng cách kích chu t lên nhãn c a các ch c năng tương ng ho c nh n trên bàn phím ch c năng ó.Show directory size Command history Directory hotlist Background Extension file edit C-\ C-x j s th y k t qu th t tuy t v i) hi n th kích thư c c a thư m c hi n th danh sách các l nh ã th c hi n chuy n nhanh n m t thư m c th c hi n m t s l nh liên quan n các quá trình n n cho phép hi u ch nh file ~/..

* Thanh th c ơn Th c ơn File: các thao tác liên quan Open/load New Save Save as .. Quit n file m ho c n p m t file t o m t file m i ghi n i dung file ã ư c so n th o t o m t file khác tên nhưng có n i dung trùng v i n i dung file hi n th i chèn n i dung m t file vào file hi n th i sao o n văn b n ư c ánh d u n m t file khác thông tin v b so n th o thoát kh i b so n th o C-o C-n F2 F12 F15 C-f F10 Th c ơn Edit: các thao tác liên quan Toggle Mark Mark Columns Toggle Ins/overw Copy Move Delete Undo Beginning End n vi c so n th o n i dung file F3 S-F3 Ins F5 F6 F8 C-u C-PgUp C-PgDn th c hi n ánh d u m t o n văn b n ánh d u theo c t chuy n i gi a hai ch chèn/ è th c hi n sao chép file th c hi n di chuy n file xoá file tr v tr ng thái trư c khi th c hi n m t s thay di chuy n n u màn hình di chuy n n cu i màn hình i Th c ơn Sear/Repl: các thao tác liên quan n vi c tìm ki m và thay th Search ... About ... Insert file ... Insert Literal .. Copy to file .. Refresh screen Insert Date/time Format paragraph Sort M-l C-q C-l M-p M-t di chuy n tr so n th o n m t dòng chèn vào trư c d u nh c tr m t ký t làm tươi l i màn hình chèn ngày gi hi n t i vào v trí d u n hc tr nh d ng l i o n văn b n th c hi n s p x p 1 9 .. Search again Replace . F7 F17 F4 th c hi n tìm ki m m t xâu văn b n tìm ki m ti p tìm và thay th xâu văn b n Th c ơn Command: Các l nh có th ư c th c hi n trong khi so n th o Goto line .....

Th c ơn Options: Các tuỳ ch n có th thi t l p cho b so n th o General ... Save mode ... * Các phím ch c năng F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 hi n th trang tr giúp ghi n i dung file th c hi n vi c ánh d u o n văn b n tìm và thay th xâu văn b n th c hi n vi c sao chép di chuy n file tìm ki m xâu văn b n xoá o n văn b n ư c ánh d u hi n th thanh th c ơn ngang thoát kh i b so n th o thi t l p các tuỳ ch n cho b so n th o ghi l i m i s thi t l p ư c thay i

1 9

PH
D.1 Cài t Samba

L C D. SAMBA

N u các d ch v chia s file gi a các máy Windows v i nhau và gi a các máy Linux v i nhau ã ư c gi i quy t thì còn l i là v n chia s file gi a các máy Linux và Windows l i là m t nhu c u quan tr ng. Samba hi n ã tr thành cây c u n i gi a Linux và Windows. Samba cho phép các máy tính ch y Linux có th ho t ng và giao ti p trên cùng m t giao th c m ng v i máy Windows. Samba server th c hi n các d ch v sau: • Chia s m t hay nhi u h th ng file. • Chia s các máy in ã ư c cài t c hai phía server và client c a nó. • H tr các client duy t Network Neighborhood trong các máy windows. • Ki m tra xác nh n các client ăng nh p vào vùng c a Windows. • Cung c p ho c h tr vi c phân gi i a ch c a server b ng WINS (Windows Internet Name Server). d hình dung hơn, ta l y ví d m ng ơn gi n có dùng Samba. Gi s ta có m t c u hình m ng cơ b n sau: m t máy ch Linux có s d ng Samba v i tên ư c t là Toltec, và hai client trên MS Windows, v i tên là Maya và Aztec, ư c n i v i nhau trong m t m ng Lan và tham gia vào nhóm làm vi c có tên METRAN. Ta còn gi s máy ch Toltec còn có m t máy in phun tên là lp ư c n i t i ch , ng th i vi c chia s ĩa c ng cho phép các máy “nhìn” th y nhau. Mô t m ng trên b ng hình v D.1 ư c bi u di n dư i ây:

Hình D.1 M t m ng có nhi u h

i u hành

Các vai trò c a Samba
Vai Trò

i v i m ng Windows NT (phiên b n Samba 2.0.4b.)
Có th th c hi n ư c Có Có Có (Samba 2.1 hay mu n hơn) Không Có Có Không Có Có Không 1 9

File Server Printer Server Primary Domain Controller Backup Domain Controller Window 95/98 Authentication Local Master Browser Local Backup Browser Domain Master Browser Primary WINS Server Secondary WINS Server

D.2 Các thành ph n c a Samba
Samba th c ch t ch a m t s chương trình ph c v cho nh ng m c ích khác nhau nhng có liên quan v i nhau. H t nhân c a Samba là hai deamon có nh ng nhi m v sau: smbd Daemon: smbd ch u trách nhi m i u khi n các tài nguyên ư c chia s gi a máy ch Samba và các máy tr m c a nó. Nó cung c p các d ch v v file, in, và trình duy t cho các máy tr m SMB thông qua m t hay nhi u m ng. smdb x lý t t c các trao i gi a máy ch Samba và các client m ng c a nó. Ngoài ra, deamon này còn ch u trách nhi m ki m tra xác nh n ngư i dùng, khoá tài nguyên, và chia s d li u thông qua giao th c SMB. nmbd Deamon: nmbd là m t máy ch d ch v tên ơn gi n b t chư c các ch c năng máy ch d ch v tên, ch y v i các giao th c WINS và NetBIOS. Daemon này l ng ngheÕ các yêu c u c a máy ch d ch v tên và cung c p các thông tin thích h p khi ư c g i t i. Nó còn cung c p danh sách duy t Network Neighborhood và tham gia vào l a ch n các i tư ng m ng trong ó. B cài t Samba còn có m t t p h p nh các công c dòng l nh Linux: smbclient: M t client Linux theo kiêu ftp có th dùng ti n ích này k t n i v i tài nguyên ư c Samba chia s . Smbtar: Chương trình lưu tr các tài nguyên ư c chia s , tương t như l nh tar c a Linux. nmblookup: Chương trình cung c p NetBIOS thông qua vi c tìm tên b ng TCP/IP. smbpasswd: Chương trình cho phép ngưư i qu n tr thay i m t kh u ã mã hóa c a Samba. testparm: Chương trình ơn gi n làm cho file c u hình Samba có hi u l c. testprns: Chương trình ki m tra li u các máy in khác nhau có ư c deamon smbd nh n ra hay không. N u mu n xem t ng deamon th c hi n nh ng gì, Samba có chương trình v i tên smbstatus s a t t c các thông tin ó lên màn hình như sau:

Samba version 2.2.7-security-rollup-fix Service uid gid pid machine ---------------------------------------------IPC$ root root 21608 httt-09 (10.10.16.5) Fri Nov 28 09:42:52 2003 No locked files
Vi c cài t samba cũng khá ơn gi n, ta c n chu n b các package sau: samba-client-xxx.rpm samba-xxx.rpm samba-common-xxx.rpm Trong ó xxx là s hi u phiên b n c a samba. ăng nh p v i quy n root và sau ó ra l nh: #rpm –ivh samba-client-xxx.rpm samba-xxx.rpm sambacommon-xxx.rpm N u ta không nh n l i thông báo l i nào c thì quá trình cài t ã hoàn t t.

1 9

D.3 File c u hình Samba Nh ng tên ư c bao trong các ngo c vuông dùng ký hi u cho các ph n c a file c u hình smb.conf, mô t các chia s hay d ch v mà Samba cung c p. Ví d , các ph n “test” và “homes” là các chia s riêng r i v i ĩa c ng; chúng ch a các tuỳ ch n ư c ánh x t i các thư m c c th trên server Samba. Ph n chia s “printers” ch a các tuỳ ch n ánh x t i các máy in khác nhau c a servers. T t c các ph n ư c xác nh trong file smb.conf, tr ph n [global, s ư c coi như các chia s ĩa c ng ho c máy in cho nh ng dùng k t n i v i server Samba.
Các dòng vào còn l i là các tuỳ ch n riêng ư c quy nh c th cho s chia s ã ư c c p t i. Các tuỳ ch n ó có tác d ng cho t i khi b t u m t ph n m i ư c ký hi u trong c p ngo c vuông, ho c cho t i i m cu i c a file smb.conf ư c thi t l p b ng cách gán giá tr cho chúng. M i m t tuỳ ch n c u hình u có cú pháp ơn gi n: option = value Cu i cùng, ta có th dùng kho ng tr ng d ngăn cách chu i các giá tr trong danh sách, ho c có th dùng các d u ph y, Hai cách trên là tơng ơng nhau nhng ta ch nên dùng m t cách ho c d u ph y ho c kho ng tr ng. Ch vi t hoa không có ý nghĩa gì i v i file c u hính Samba, ngo i tr trong các v trí mà h i u hành ư c ch t i không cho phép vi t, b i vì h i u hành Linux phân bi t ch vi t thư ng và vi t hoa. Trong trư ng h p dòng vào quá dài không th gói g n trong không gian mà c a s dòng l nh cho phép, ta có th vi t ti p dòng trong file c u hình Samba b ng cách dùng ký hi u d u g ch ngư c “\”, ví d :

comment = Su chia se dau tien la ban sao chinh cua s\ an pham phan mem Teamworks moi
Có th thay i file smb.conf và b t kỳ tuỳ ch n nào c a nó vào th i i m b t kỳ trong khi các daemon Samba ang ch y. Theo m c nh, Samba ki m tra file c u hình c a mình c 60 giây m t l n ti p nh n cá thay i m i. N u không mu n ch i lâu như v y, b n có th b t các daemon ó n p l i b ng cách g i tín hi u SIGHUP t i chúng, ho c ch ơn gi n là kh i ng l i. Ví d , n u ti n trình smbd có PID là 893, ta có th b t nó c l i file c u hình b ng l nh sau ây: # kill –SIGHUP 893 Không ph i t t c các thay i u ư c cá máy client ch p nh n ngay. Ví d , các tài nhuyên chia s hi n th i ang ư c s d ng s không ư c ăng ký cho n khi các máy client c t các n i k t r i k t n i l i t i các tài nguyên ó. Thêm n a, cũng s không ư c ăng ký ngay l p t c. i u ó giúp cho các máy client tích c c không b ng t n i k t m t cách b t ng ho c g p ph i các v n không ư c ch i v truy c p tài nguyên khi phiên làm vi c v n ang ư c m . Các bi n: Samba có m t t p h p y cá bi n xác nh các c trưng c a server Samba và c a cá máy client n i v i nó. M i m t bi n ư c b t u b ng d u ph n trăm “%”, ti p theo là m t ký t ơn vi t hoa ho c vi t thư ng và ch có th ư c dùng bên v ph i c a dòng li nh tuỳ ch n c u hình theo cú pháp potion = variable nh trong câu li l nh ví d sau:

[pub] path = /home/ftp/pub/%a
2 0

4 Các ph n c bi t c a file c u hình Samba Ph n [global]: Ph n [global] xu t hi n h u như trong m i file c u hình Samba. Bi n %a %I %m %M %g %G %u %U %p %P %S %d %h %L %N %v %R %T nh nghĩa Các bi n c a máy client Ki n trúc c a các máy client(ví d .Ký hi u bi n %a có nghĩa i di n cho ki n trúc c a máy tính client.11). gán ư ng d n khác cho các máy Windows 9x. Nói cách khác. wfwg. n u thư m c ó khác v i %P Th m c g c hi n th i c a tài nguyên ư c chia s . Samba s gán ư ng d n chung ch t i tài nguyên ư c chia s trong ph n [pub] cho các máy client ch y trên Windows NT. Phiên b n Samba. vì n i dung c a ph n này s ư c sao chép vào các ph n khác.220. hay như WfWg – cho Windows for Worrgroups (Windows 3.100). Các bi n khác M c c a giao th c SMB ư c tho thu n thi t l p. như WinNT ch các máy tính ch y trên Windows NT. Tên ngư i dùng ư c yêu c u trên máy client Các bi n v tài nguyên ư c chia s ư ng d n cho automounter t i thư m c g c c a tài nguyên ư c chia s . l y t file ánh x (map) c a automount. win95. Danh sách các bi n c a Samba D. Ta có th c u hình server 2 0 . M i tuỳ ch n ư c thi t l p trong ph n này u ư c áp d ng i v i t t c các tài nguyên chia s khác. thì trong các ph n ó. Tên host DNS c a server Samba. th m chí khi trong ó không có dòng l nh b t bu c nào. Các bi n v ngư i dùng Nhóm chính c a %u Nhóm chính c a %U Thư m c home hi n th i c a %u. a ch IP c a client(ví d . Nhưng các ph n khác. tuỳ thu c vào ki n trúc c a client. Theo cách vi t trên. n u cũng có các tuỳ ch n gi ng như trong ph n [global]. các tuỳ ch n s ư c xác nh v i các giá tr m i ư c ghi è lên các lên các giá tr cũ c a [global]. các ư ng d n mà theo ó m i máy client nh n th y tài nhuyên chia s s khác nhau. và m t ư ng d n n a cho các máy v i Windows for Worrkgroups. 192. Tên hi n th i c a tài nguyên ư c chia s .168. Các bi n c a server nh danh ti n trình (PID) server hi n th i. winNT. Samba. Ngày gi hi n t i. Tên host NetBIOS c a server Samba Th m c home c a server Samba. ho c UNKNOWN). Tên NetBIOS c a client. Tên DNS c a client. Win95 – cho máy Windows 95 ho c 98.

ví d trên ta ã s d ng hai bi n là %v và %L. Ví d : netbios name = DHQGHN Giá tr m c nh cho tuỳ ch n này là tên máy c a server (ph n bên trái cùng c a tên DNS y ). ta t giá tr yes cho tuỳ ch n guest ok.vn b chia thành hai vùng v i các server là hut. ngư i ta t tên NetBIOS khác v i tên DNS hi n th i. cũng như gán cho b n thân tài nguyên ó m t cái tên SampleDataDrive. khi m ng hut.vn thì tên NetBIOS cũ là HUT bây gi có th thành các tên HUTLYTHUYET và HUTTHUCHANH.lythuyet. Thông thư ng. Ta ã cho thêm m t dòng vào có chú thích mô t tài nguyên ư c chia s ó là Data Drive. Vi c thay i tên NetBIOS c a server không ư c khuy n khích n u không có lý do chính áng. Tùy ch n server string: Thông s c a server string xác nh n i dung dòng chú thích s xu t hi n c nh tên c a server Samba trong c c a s Network Neighborhood (khi ch Details) l n c a s qu n lý in c a Microsoft Windows. Giá tr m c nh c a tuỳ ch n này là ch c.vn và hut.conf: [global] Server configuration parameters netbios name = HYDRA server string = Samba %v on (%L) workgroup = SIMPLE Tuỳ ch n netbios name: cho phép t tên NetBIOS cho server.vn s là HUT.edu. cho b t kỳ ai cũng có th k t n i ư c 2 0 .edu.edu.Samba. tên NetBIOS m c nh c a máy hut.thuchanh. Bây gi ta ti p t c làm vi c c i file c u hình Samba và t o ra m t ĩa c ng ư c chia s còn r ng có tên là [data]. Tài nguyên ư c chia s ư c thi t l p có quy n ghi cho các ngư i dùng. n u như tên ó không ph i là duy nh t vì m ng LAN ư c chia ra thành hai hay nhi u vùng DNS. Ví d . tuân theo quy t c t tên NetBIOS. B n có th dùng các bi n chu n cung c p thông tin cho dòng mô t ó. nơi mà server Samba t thông báo cho các thành biên c a m ng v mình. u tiên ta ph i chú ý n ba tuỳ ch n c u hình cơ b n xu t hi n trong ph n global c a file c u hình smb. C u hình chia s ĩa c ng Trong ví d ph n trư c ta ã nh c n r ng do chưa có tài nguyên ư c chia s nên c a s chi ti t c a server hydra ang còn tr ng. ây là các ng tác c n thêm vào t ư c k t qu v a nêu: SampleDataDrive] comment=Data Drive path = /export/samba/data writable = yes guest ok = yes Tài nguyên ư c chia s SampleDataDrive thư ng là ĩa c ng ư c Samba chia s và ánh x t i thư m c /export/samba/data trên server Samba. Nên nh r ng các nhóm làm vi c ph i có các tên nhóm NetBIOS th c th . Các clients mu n truy c p ư c tài nguyên ư c chia s trên server Samba ph i cùng thu c v m t nhóm làm vi c NetBIOS. Ví d . Trong phương án không c n n c b o m t ch t ch như ây.edu. Tùy ch n workgroup: Thông s c a tuỳ ch n workgroup thi t l p nhóm làm bi c hi n th i.

t tên cho ĩa. N u t là yes. m t thư m c ư c chia s v i tên data ã xu t hi n. Tuỳ ch n Path (directory) Thông s String ( ư ng d n n thư m c) Nh phân (yes/no) String (xâu ký t ) Ch c năng t thư m c UNIX dùng cho chia s ĩa c ng ho c cho vi c x p hàng ch b i máy in ư c chia s . cho phép truy c p ch c t i tài nguyên ư c chia s . N u là no. ĩa c ng M c nh Ph m vi Share /tmp Guest ok (public) no Share Comment Không có Tên c a tài nguyên ư c chia s yes Share volume String Nh phân (yes/no) nh phân (yes/no) Share Read only Writeable (write ok) Share no Share Các tuỳ ch n cơ b n chia s Các tuỳ ch n v m ng c a Samba Tuỳ ch n hosts allow (allow hosts) Hosts deny (deny hosts) Bind interfaces only Thông s String (danh sách tên máy) String (danh sách tên máy) Nh phân (yes/no) Ch c năng Xác nh các máy có th k t n i v i Samba. cho phép truy c p ch c t i tài nguyên ư c chia s . N u là yes. N u t là yes. theo d ng c a DOS. Xác nh các máy không th k t n i v i Samba. Samba s ch liên k t t i các giao di n xác nh b i tuỳ ch n M c nh Ph m vi Share Không có Không có no Share Global 2 0 . n u ta l i k t n i v i server hydra (b ng cách kích phím chu t vào bi u tư ng c a server trong c a s Network Neighborhood c a Windows). Trên máy UNIX có cài t Samba ta t o thư m c /export/samba/data v i quy n root b ng các l nh sau: # mkdir /export/samba/data #chmod 777 /export/samba/data Bây gi . s không d n ki m tra xác nh n ngư i dùng truy c p tài nguyên ư c chia s này. t chú thích s xu t hi n cùng tài nguyên ư c chia s .t i tài nguyên v a ư c chia s .

168. chúng s ư c áp d ng cho t t c các tài nguyên ư c chia s .com. th m chí khi m t tài nguyên nào ó có tuỳ ch n ghi è lên ư c xác nh.com 2 0 .0. cách nhau b ng d u ph y hay kho ng tr ng v i cú pháp gi ng như i v i tuỳ ch n hosts allow trên.socket address String ( a ch IP) interfaces. . M t trong s các l i thư ng th y khi dùng tuỳ ch n hosts allow là c m luôn servers Samba liên h v i chính nó. dùng cho tr ng h p có nhi u giao th c o trên servers. N u không máy ó s b c m truy c p vào tài nguyên ư c chia s . .conf. Chý ý: C n th n tránh tr ng h p ta cho phép m t máy nào ó. nhưng sau y l i c m c m ng con mà máy y tham gia.conf Samba s cho phép các k t n i t b t kỳ máy nào mà h th ng Unix ch p nh n . Chương trình smbpasswd s c n ư c k t n i v i servers Samba như là m t client thay i m t kh u mã hóa c a ngư i dùng. ư c vi t như danh sách các tên máy ho c a ch IP c a chúng. vi c duy t t i ch cũng òi h i có ư c ăng nh p t i ch . Ta có th t ư c m t chút ít m c b o m t.0.N u có các tuỳ ch n allow hoăc deny ư c xác trong ph n global c a file c u hình smb.N u ch có tuỳ ch n allow ư c xác nh cho m t tài nguyên ư c chia s . m i máy không có trong danh sách u có quy n s d ng tài nguyên ó. m t máy ã xu t hi n trong danh sách ư c phép thì không có m t trong danh sách b c m. ch ơn gi n b ng cách t a ch m ng con LAN c a mình vào ch giá tr c a tuỳ ch n này. t a ch IP ngheÕ. localhost Chú ý r ng ta t localhost (ho c a ch 127. . Không có Global Các tuỳ ch n c u hình m ng Tùy ch n hosts allow: Tuỳ ch n này xác nh các máy có quy n truy c p các tài nguyên ư c chia s trên servers Samba. Thêm n a. Ví d : hosts allow = 192.200. cách nhau b ng d u ph y ho c kho ng tr ng. ư c vi t như danh sách các máy hay a ch IP c a chúng. Ví d . Sau ây là các quy t c c a Samba quy nh cho vi c dùng các tuỳ ch n hosts allow và hosts deny: .N u không có tuỳ ch n allow ho c deny nào ư c xác nh trong file c u hình smb. Các máy khác u b c m.example.N u c hai tuỳ ch n allow và deny ư c xác nh.N u ch có tuỳ ch n deny ư c xác nh cho m t tài nguyên ư c chia s . ta có th vi t: hosts deny = ALL EXCEPT. hosts deny: Tuỳ ch n hosts deny xác nh các máy không có quy n truy nh p tài nguyên ư c chia s .1) v trí sau a ch c a m ng con. tr t vùng example. h n ch truy c p t i servers t m t máy. ch có các máy ư c li t kê m i có quy n truy c p tài nguyên ó.

n u không smbpasswd s không th ho t ng ư c. Tương t nh v y.210.0.168. như d ng SLIP ho c ppp.210.100/24 192.30/255.Gi ng như hosts allow.220. Giá tr c a tuỳ ch n là m t hay nhi u b g m các ôi a ch IP/ m t n m ng. ta không ư c d ng tuỳ ch n này.168.1) vào danh sách c a interfaces. và 8v i 255.255.30/24 Socket address = 192. n u ta ghi è lên giá tr ó b ng: bind interfaces only = yes Thì ch các gói i t các a ch ngu n xác thông qua tuỳ ch n interfaces m i ư c ch p nh n.255.255. interfaces: Tuỳ ch n interfaces li t kê các a ch m ng mà ta mu n servers Samba nh n bi t và áp ng. tuỳ ch n này không ư c khuyên dùng. cho phép chúng nh n các thông báo phân ph i công c ng t kh p m i nơi. N u mu n cho phép có các n i k t m ng t m th i.255.30/24 S c a m t n bít ch s u tiên ư c b t trong m t n m ng.0.conf và t nó vào úng v trí c n thi t.conf. gi ng như trong ví d sau: interfaces = 192. N u t giá tr cho bind intefaces only là yes. Khi ư c dùng trong file smb.168.100/255.210.168. N u như có dùng các m t kh u ã mã hoá. N u mu n cho phép hay c m truy c p t i tài nguyên ư c chia s c th ta ph i qua c hai tuỳ ch n hosts allow và hosts deny trong ph n global hay n u có d ng thì ph i ghi è giá tr m i trong ph n c u hình cho tài nguyên ư c chia s ó.220. Tuy nhiên. Sau khi ã so n th o n i dung như trên c a file smb.0.0 Có th dùng nh d ng m t n bít CIDR nh sau: interfaces = 192.168.168. tuỳ ch n này cũng b t Samba không ph c v các yêu c u v file c a các m ng con ngoài danh sách c a tuỳ ch n interfaces. V i smbd. không có giá tr m c nh cho tuỳ ch n hosts deny. Vi d : Interfaces = 192. socket address: Tuỳ ch n socket address quy nh a ch nào trong s ư c xác nh b i interfaces s “ghe” t c là ch các k t n i. ta ph i thêm a ch c a máy t i ch (127. Nói chung. Bind interfaces only: Tuỳ ch n này có th ư c dùng b t bu c các ti n trình smbd và nmbd ph c v các yêu c u SMB ch cho các a ch ư c xác nh b i tuỳ ch n interfaces mà thôi. Tuỳ ch n này r t ti n l i n u ta mu n máy tính tham gia ng th i nhi u m ng con.30 Bình thư ng.) trên các c ng 137 và 138 t i t t c các a ch . N u không ư c dùng Samba tìm giao di n m ng chính c a servers (thư ng là card Ethernet u tiên) khi kh i ng và t c u hình ho t ng ch trong m ng con có giao di n m ng ó.0 192. tuỳ ch n này h n ch s a ch mà Samba s dùng ch các n i k t. ta ph i thêm vào m t dòng có n i dung encrypt passwords=yes vào file c u hình trên.255.168.0. Ta ph i dùng tuỳ ch n này b t bu c Samba ph i th c hi n m ng con khác n a trong m ng c a ta. Ti n trình nmbd bình thư ng liên k t giao di n (0.0.0.0.220.0. Tuy nhiên.255. tuỳ ch n này có th ho t ng không úng n u ta dùng DHCP (phân ph i a ch IP ng). s 16 tương ương v i m t n 255.100/24 192.0.210. và thư ng ch có nhng ngư i qu n tr y kinh nghi m m i ý t i nó. ta kh i ng l i server Samba và dùng các máy client Windows ki m tra k t qu . tuỳ ch n này ít ư c dùng. hay ông nghĩa v i giá tr m t n m ng 255. ví d s 24 nghĩa là 24 bít u tiên (trong s t t c 32 bit) s ư c kích ho t. Samba theo m c nh ch p nh n t t c các n i k t v i t t c các a ch .0. 2 0 .0.

def ph i ư c t vào ph n [global].conf. Sau ó Samba ki m tra m y kh u ư c client cung c p và so sánh v i m t kh u c a ngưư i dùng Linux dung . ch không ph i là ng d n UNIX trên server. Do ó. không có tài nguyên ư c chia s nào tên là dung ư c xác nh. Giá tri cho printer driver ph i trùng v i xâu ư c hi n ra trong Printer Winzard trên h th ng Windows. và n u tên c a nó không th tìm ư c trong file m t kh u. và printer driver location vào file c u hình smb. tên c a tài nguyên ư c chia s không xác nh kia s ư c coi như tên ngư i dùng c a Linux và ư c yêu c u tìm trong cơ s d li u m t kh u c a server Samba. Samba t o ra tài nguyên ư c chia s v i tên liên quan t i vi c chia s máy in. Samba luôn d a vào 2 0 . Ph n [mes] N u m t client nào ó c g ng k t n i t i tài nguyên ư c chia s không ư c nêu trong file c u hình smb. và c truy c p t i tài nguyên ư c chia s có tên là [dung].conf c a Samba. kèm theo m t kh u. N u có. có th in ư c trong Samba ta ph i thêm các tuỳ ch n printer driver. Trong file smb. t c là bên ngoài ph n [lobal] cũng ư c coi là nh ng tuỳ ch n chung. Tuỳ ch n chung printer driver file ch n file printers. N u m t client c k t n i t i tài nguyên ư c chia s không có m t trong file c u hình smb. nhng l i có ph n [homes].conf file. N u ph n này t n t i. vì th Samba tìm file cơ s d li u m t kh u và tìm xem có tài kho n ngưư i dùng dung trong h th ng hay không.def [hpdeskjet] path = /var/spool/samba/printers printable = yes printer driver = HP DeskJet 560C Printer printer driver location = \\%L\PRINTER$ Gi ng như i v i ph n [home]. Giá tr c a printer driver location là ng d n c a tài nguyên PRINTER$ mà ta thi t l p. Ngư i ta cũng áp d ng phơng pháp ư c th c hi n v i ph n [homes] t o tài kho n ngư i dùng m i. N u như có tên ngưư i dùng ó. Samba th c hi n i u ó thông qua vi c c file d li u máy in (thư ng là /etc/printcap hay /etc/terminfo) xem có tên c a tài nguyên ư c chia s ó hay không.conf.conf. Sau ó Samba s t t o tài nguyên ư c chia s ư c g i là dung cho ngư i dùng dung. Th c v y. Các tuỳ ch n còn l i ư c t vào ph n tài nguyên máy in ư c chia s mà ta mu n c u hình m t cách t ng các trình i u khi n máy in. printer driver file. ta không c n ph i b o trì tài nguyên ư c chia s cho m i m t may in c a h th ng trong file c u hình smb. Ví d . Samba coi máy ư c nói t i trên là m t ngưư i dùng Linux ang c k t n i t i th m c home c a mình trong server.T t nhiên các máy client Windows ó cũng ph i thu c v nhóm SIMPLE – trong ví d ta v n dùng t u chơng – ó là các máy phoenix và chimaera. Samba s tìm tài nguyên ư c chia s homes trong file c u hình. ta có th dùng các dòng mã sau ây trong file c u hình Samba: [global] printer driver file = /usr/local/samba/print/printers. M i tuỳ ch n xu t hi n tr c ph n ư c ánh d u b ng ngo c vuông “[]” u tiên. Ph n [printers]: Ph n c bi t th ba g i là [printers] tương t như ph n [homes]. Samba nh n bi t ch c là ngưư i dùng dung có quy n và ang mu n k t n i t i th m c home c a mình trong máy Linux. N u các m t kh u ó trùng nhau.ho c trong file cơ s d li u m t kh u n u dùng m t kh u mã hoá. gi s m t máy client k t n i v i server Samba hydra l n u tiên. Samba s ki m tra xem nó có ph i s chia s máy in cho client ó.

ta dùng l nh (s d ng l nh này v i quy n root): #smbpasswd –a thanhnt Trong ó ngư i dùng thanhnt ph i là m t ngư i dùng h th ng. và samba cho phép ngư i dùng do nó qu n lý có th có m t kh u khác v i m t kh u h th ng c a ngư i dùng ó. Sau khi ánh l nh này. . N u có m t trong ph n [global]. ây là các tuỳ ch n thư ng ch ps d ng xác nh ho t ng c a chính server Samba. Các chi ti t vè vi c thi t l p tài nguyên ư c chia s printers ư c trình bày trong ph n liên quan t i vi c in và phân gi i tên.vi c ăng ký máy in c a Linux n u ta c n n. Share: Các tuỳ ch n share có th xu t hi n trong các tài nguyên ư c chia s c th . Ch ng h n. chúng s xác nh các giá tr m c nh cho t t c các tài nguyên ư c chia s .d : tuỳ ch n này cho phép ta khoá (disable) m t ngư i dùng trong danh sách ngư i dùng c a samba. - New SMB password: Retype new SMB password: Password changed for user thanhnt. mu n thêm m t ngư i dùng vào trong danh sách ngư i dùng c a samba. Thông thư ng các thông tin v ngư i dùng s ư c lưu trong file smbpasswd. thao tác v i nh ng ngư i dùng c a samba.<tên ngư i dùng>: tên c a ngư i dùng ta mu n x lý. có m t h n ch nh : n u tài kho n ngưư i dùng và máy in u có tên là hai. D. máy s h i ta ánh vào m t kh u cho ngư i dùng m i này. smbpasswd [-a][-x][-d][-e][-h][-s] [ tên ngư i dùng ] Trong ó. b t k là client th c ra là c n k t n i v i máy in. thêm m t ngư i dùng cho samba qu n lý.x : tuỳ ch n này cho phép xoá b m t ngư i dùng trong danh sách ngư i dùng c a samba.5 Qu n lý ngư i dùng trong Samba Samba có kh năng qu n lý ngư i dùng có kh năng truy c p vào máy ch Samba. Sau ó. a : tuỳ ch n này cho phép ta thêm m t ngư i dùng m i vào trong danh sách ngư i dùng c a samba. . Nó có kh năng qu n lý ngư i dùng khá c l p v i h th ng ngư i dùng h th ng. .e : tuỳ ch n này cho phép ta m khoá (enable) m t ngư i dùng trong danh sách ngư i dùng c a samba mà ngư i dùng ó ã b khoá b ng tham s -d. Samba bao gi cũng tìm tài kho n ngưư i dùng tr c tiên. ngư i dùng ó ph i là m t ngư i dùng trong h th ng. . ho c c trong ph n [global]. file này n m trong thư m c /etc/samba. Các tuỳ ch n c u hình: Các tuỳ ch n trong file c u hình Samba ư c chia s làm hai lo i: global (toàn c c) và share (chia s ). Global (toàn c c): Các tuỳ ch n global ph i có m t ch trong ph n [global] mà thôi. M i m t lo i quy nh m t tuỳ ch n s ư c xu t hi n âu trong file c u hình. ch ng nào cha b các tuỳ ch n cùng tên t i các ph n tài nguyên ư c chia s c th ghi è nh ng giá tr m i. và cung c p các máy in ã ăng ký cho các client. Tuy nhiên. 2 0 . ta có công c smbpasswd.

1 Cách s d ng t các máy tr m là Linux Samba có cung c p m t công c nh m s d ng các thư m c chia s theo giao th c SMB trong m ng LAN. có d ng //Maychu/dichvu. còn dichvu là tên c a d ch v mu n s d ng. V i công c này ta có th thao tác v i tài nguyên ư c chia s trên m ng. N u mu n xoá ngư i dùng ra kh i danh sách ngư i dùng thì s d ng l nh (v i quy n root): #smbpasswd –x thanhnt Còn n u mu n m t ngư i dùng trong danh sách v n t n t i nhưng không có hi u l c. ó chính là smbclient. sao chép file t thư m c ó. Trong trư ng h p trên. Ch ng h n như //dulieu/setups.6 Cách s d ng Samba t các máy tr m D. thì ta có th khoá ngư i dùng ó b ng l nh: #smbpasswd –d thanhnt Khi ó ngư i dùng thanhnt tuy v n còn n m trong danh sách nhưng không ư c samba coi là ngư i dùng h p l n a. máy s yêu c u ta nh p m t kh u cũ trư c khi nh p m t kh u m i. thì tên máy ch c n truy nh p là dulieu. ch ng h n như k t n i vào m t thư m c chia s trên m t máy nào ó thao tác. n u có sai sót (m t kh u cũ không úng ho c m t kh u m i không kh p nhau) thì ta s nh n ư c thông báo l i.password unchanged. smbclient <tên d ch v > [-U <tên ngư i dùng> ] [ -W <tên mi n ho c group> ] –L [<tên netbios>] Trong ó: .Lưu ý là m t kh u s ư c h i hai l n m b o tính chính xác và m t kh u s không ư c hi n th ra màn hình.<tên d ch v > : là tên c a d ch v mu n s d ng. N u thành công thì ta s nh n ư c thông báo như trên. Ta cũng có th dùng l nh này thay i m t kh u c a m t ngư i dùng b ng l nh (th c hi n b ng quy n root): #smbpasswd thanhnt Khi ó nó s thông báo cho ta nh p m t kh u hai l n gi ng như trên. Maychu là tên netbios c a máy ch cung c p d ch v . Unable to get new password. smbclient cũng gi ng như m t chương trình client ftp. Còn trong trư ng h p là m t ngư i dùng bình thư ng thì mu n thay i m t kh u samba cho chính ngư i dùng ó ta ch c n ánh: #smbpasswd Old SMB password: New SMB password: Retype new SMB password: Mismatch .6. Khi mu n khôi ph c ngư i dùng này có các quy n như ban u thì ta có th khôi ph c b ng l nh: #smbpasswd –e thanhnt D. còn 2 0 .

255 nmask=255.---.255.5/setup -U thanhnt -W httt Trong trư ng h p này ta s ư c máy h i m t kh u. xem thông tin v các thư m c chia s c a m t máy ng th i cùng v i các thông tin v các máy trong mi n.10.10.23 bcast=10.5 -U thanhnt -W httt Thì máy s h i ta m t kh u ng v i ngư i dùng trên.23 bcast=10. Ví d .16.10.setups là tên thư m c mu n tham chi u n. n u thành công thì nó s cho ta m t phiên làm vi c v i d ch v ó. added interface ip=10. sau khi ánh úng m t kh u ta s thu ư c k t qu : added interface ip=10.10.W <tên mi n ho c group> : là tên mi n ho c group mà máy ch ó thu c vào.12/setups.16.255.0. Ta cũng có th s d ng a ch IP thay cho tên netbios dư i d ng //192. .16. .0.0 Password: Domain=[CHTTTMPI] OS=[Unix] Server=[Samba 2.16.255 nmask=255.10.3a] 2 0 .0.------HTTT-23 Samba Server Workgroup Master --------------BCNK.2. các máy mi n khác ta dùng l nh: # smbclient -L 10.255.0 Password: Domain= CHTTTMPI OS= Unix Server= Samba 2.3a Sharename Type Comment --------.U <tên ngư i dùng> : là tên ngư i dùng mu n s d ng tài nguyên ó. ta có th sao chép file trên thư m c này vào máy hi n t i và ngư c l i.------netlogon Disk Network Logon Service public Disk Public Stuff Source Disk Source and documents for vietseek IPC$ IPC IPC Service (Samba Server) ADMIN$ Disk IPC Service (Samba Server) thanhnt Disk Home Directories Server Comment --------.FOTECH VINHTQ BMVT NGUYENHONG CHTTTMPI HTTT-23 ECC HUNGTN FOTECH ANHNV FOTECH-CTSV MAIPT s d ng m t d ch v (m t thư m c chia s ch ng h n) ta có th dùng l nh như sau: # smbclient //10. .168.2.255.10.L <tên netbios> : là tên netbios c a máy ch ta mu n xem các d ch v mà máy ch ó ang cung c p. c th ta s ư c m t phiên làm vi c v i thư m c.

p [send files from local to remote] smb: \> get interruptq..2.smb: \> smb: \> ls . Sau khi k t thúc phiên làm vi c.2 Cách s d ng t các máy tr m là Windows Ta ch n menu start. .5/setup /mnt/smb –o username=thanhnt Khi ó máy s h i m t kh u. khi thành công thì ta s ánh x ư c thư m c chia s setup trên máy 10. ee120-ta fa01 D D D D 0 0 0 0 Tue Tue Wed Fri Sep Sep Aug Sep 11 11 29 21 12:03:53 12:03:53 09:37:14 09:47:34 2001 2001 2001 2001 60472 blocks of size 2097152.6. ta dùng l nh quit thoát.5/setup /mnt/smb –o username=thanhnt ho c #mount –t smbfs //10.16. Khi ó thư m c ư c k t g n s tr thành m t thư m c bình ng như các thư m c trên máy c c b . Khi nào xong ta có th b k t g n ó b ng l nh: #smbmount /mnt/smb ho c #umount /mnt/smb D. ta ch n run. làm i u ó ta dùng l nh (v i quy n root): #smbmount //10. K t g n m t thư m c chia s vào m t thư m c trong h th ng file hi n t i: Trong trư ng h p ta không mu n dùng các l nh smbclient cho t ng phiên làm vi c khi mà ta s có nhi u thao tác v i thư m c ư c chia s ó.16. gi i pháp t t nh t là k t g n thư m c chia s ó vào thành m t thư m c trên máy c c b . M i vi c thao tác s tr nên thu n ti n hơn r t nhi u. 52606 blocks available smb: \> cd fa01\ee120-kmm smb: \> put hello. 2 1 .doc [receive files to local from remote] smb: \> quit Khi d u nh c hi n ra.5 thành m t thư m c /mnt/smb trên máy c a mình.10.10. ta có th ánh l nh help.16.10. sau ó ánh vào tên máy mà ta mu n s d ng m t d ch v nào ó như trên hình D. xem các l nh thao tác.

4.3 Danh sách các d ch v trên m t samba server Cho phép ánh x m t thư m c trên m t samba server thành m t ĩa trêm máy tr m Windows b ng cách trên c a s hi n danh sách các tài nguyên trên ta nháy ph i chu t vào thư m c ta mu n ánh x .2 S d ng d ch v samba t máy tr m Windows Sau ó máy s h i ta tên ngư i dùng và m t kh u dùng truy c p.Hình D. n u thành công thì ta s ư c m t c a s hi n th danh sách các d ch v c a máy ch samba ó cung c p như hình D. Hình D. 2 1 . Sau khi nh p các thông tin.3. sau ó ch n “Map network drive” như trên hình D.

4 T o m t ánh x Sau ó máy s h i tên ĩa trên máy tr m Windows ĩa mà ta mu n t cho m i này như hình D.Hình D.5: 2 1 .

5 t tên ĩa cho m t ánh x ĩa 2 1 .Hình D.

Sign up to vote on this title
UsefulNot useful