Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

Luy n thi ch ng ch LPI 101 (pht hnh 2).

Ph n I
Gi i thi u b i cc nh pht tri n developerWorks IBM, ngu n c a cc cu n sch h ng d n tuy t v i ibm.com/developerWorks D ch b i: Phan Vnh Th nh

M cl c
1 Tr c khi b t u 1.1 V cu n sch h ng d n ny . . . . . . . . . . . . . . . . . . . 1.2 V tc gi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Gi i thi u v bash 2.1 V (shell) . . . . . . . . . . . . . . . . 2.2 C ph i b n ang ch y bash khng? . 2.3 V bash . . . . . . . . . . . . . . . . . 2.4 S d ng cd . . . . . . . . . . . . . . . 2.5 ng d n . . . . . . . . . . . . . . . . 2.6 ng d n tuy t i . . . . . . . . . . 2.7 ng d n tng i . . . . . . . . . . 2.8 S d ng .. . . . . . . . . . . . . . . . . 2.9 S d ng .., ti p theo . . . . . . . . . . 2.10 V d ng d n tng i . . . . . . . 2.11 Hy hi u . . . . . . . . . . . . . . . . . 2.12 cd v th m c nh . . . . . . . . . . . 2.13 Th m c nh c a nh ng ng i s d ng 3 S 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . khc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 7 7 8 8 8 9 9 9 10 10 11 11 12 13 13 13 14 15 15 15 16 16

d ng cc cu l nh c a Linux Gi i thi u ls . . . . . . . . . . . . . . . . . . . . Danh sch th m c lo i di . . . . . . . . . . . Danh sch th m c lo i di, ti p theo . . . . . . Xem th m c . . . . . . . . . . . . . . . . . . . Danh sch inode v danh sch qui (recursive) Hy hi u inode, Ph n 1 . . . . . . . . . . . . . . Hy hi u inode, ph n 2 . . . . . . . . . . . . . . Hy hi u inode, Ph n 3 . . . . . . . . . . . . . . 2

M CL C 3.9 3.10 3.11 3.12 3.13 3.14 3.15 4 T o 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 mkdir . mkdir -p touch . . echo . . echo v s cat v cp mv . . . . . . . . . . . . . . . . . . . chuy n . . . . . . . . . . . . . . . . . . . . . . h . . . . . . . . . . . . ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 17 17 18 18 18 19 19 21 21 21 22 22 22 23 23 23 24 24 25 26 26 28 28 28 29 29 30 30 30 31 31 32 32

lin k t v xa t p tin Lin k t c ng . . . . . . . . . . Lin k t c ng, ti p theo . . . . Lin k t t ng trng . . . . . . Lin k t t ng trng, ti p theo Su hn v lin k t t ng trng, Su hn v lin k t t ng trng, Su hn v lin k t t ng trng, Su hn v lin k t t ng trng, Su hn v lin k t t ng trng, Su hn v lin k t t ng trng, rm . . . . . . . . . . . . . . . . rmdir . . . . . . . . . . . . . . . rm v th m c . . . . . . . . .

. . . . . . . . ph ph ph ph ph ph . . . . . .

. . . . . . . . . . . . n1 n2 n3 n4 n5 n6 . . . . . . . . . . . . . . . . . . . .

5 S d ng cc k t i di n (wildcard) 5.1 Gi i thi u v k t i di n . . . . . . 5.2 Gi i thi u v k t i di n, ti p theo . 5.3 Hi u v khng tng ng . . . . . . . . 5.4 Hi u v khng tng ng, ti p theo . . 5.5 C php i di n: * . . . . . . . . . . . 5.6 C php i di n: ? . . . . . . . . . . . 5.7 C php i di n: [] . . . . . . . . . . . 5.8 C php i di n: [!] . . . . . . . . . . 5.9 o su v i di n . . . . . . . . . . . 5.10 o su v i di n, ti p theo . . . . . 5.11 Ngo c n "g p" ngo c kp . . . . . .

4 6 T ng k t v cc ngu n b 6.1 T ng k t . . . . . . . . 6.2 Cc ngu n b tr . . . 6.3 ki n t pha b n . . 6.4 L i ghi cu i sch . . . tr . . . . . . . . . . . .

M CL C 33 33 33 34 34

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Chng 1 Tr c khi b t u
1.1 V cu n sch h ng d n ny

Cho m ng n v i "Linux nh ng i u c b n," cu n th nh t trong b n cu n sch h ng d n gip b n chu n b cho bi thi 101 c a LPI (Linux Professional Institute). Trong cu n sch h ng d n ny, chng ti s gi i thi u v i b n bash (v , shell, tiu chu n c a Linux), ch cho b n cch s d ng thnh th o cc cu l nh c b n c a Linux nh ls, cp v mv, gi i thch v inode, lin k t "c ng" v lin k t "t ng trng" (hard link v symbolic links) v nhi u th khc. Khi k t thc cu n sch h ng d n ny b n s c ki n th c v ng vng v nh ng i u c b n khi s d ng Linux, v th m ch cn s n sng b t u h c c b n v nhi m v qu n tr m ng Linux. Khi k t thc chu i sch h ng d n ny (tm cu n t t c ), b n s c ki n th c c n thi t tr thnh Qu n tr vin h th ng Linux v s n sng t t i ch ng ch LPIC b c I c a Linux Professional Institute n u b n d nh nh v y. Cu n sch h ng d n ny (Ph n I) ni ring l l t ng v i nh ng "ng i m i" v i Linux, ho c v i nh ng ng i mu n xem l i ho c c i ti n s hi u bi t c a mnh v nh ng khi ni m c b n c a Linux nh sao chp (copying) v di chuy n (moving) t p tin, t o ng d n "c ng" v "t ng trng", v s d ng cc cu l nh "ch bi n" vn b n c b n song song v i "bng chuy n" (pipeline) v "chuy n h ng" (redirection). D c theo cu n h ng d n ny, chng ti s chia s v i cc b n nh ng l i g i , l i mch n c v mnh l i gi cho cu n h ng d n thm phong ph ("ngon n") v c tnh th c d ng, th m ch cho c nh ng ai c kinh nghi m s d ng Linux ng k . V i nh ng "ng i b t u", nhi u ti li u c a cu n h ng d n ny s m i, nhng v i 5

CHNG 1. TR C KHI B T U

nh ng ng i s d ng Linux kinh nghi m c th tm th y cu n h ng d n ny nh m t cch tuy t v i "lm bo thm" k nng Linux c b n. V i nh ng ai qua pht hnh (release) 1 c a cu n h ng d n ny v i m c ch khc hn l chu n b thi LPI, b n c kh nng khng c n pht hnh 2. Tuy nhin, n u b n c d tnh v t qua k thi LPI, b n nn lu c b n ch nh s a ny.

1.2

V tc gi

C tr t i Albuquerque, New Mexico, Daniel Robbins l ki n trc tr ng c a Gentoo Linux, m t b n phn ph i Linux cao c p. Tc gi cn vi t cc bi bo, sch h ng d n, nh ng l i mch n c cho IBM developerWorks v Intel Developer Services v l tc gi ng gp c a vi cu n sch, g m c Samba Unleashed v SuSE Linux Unleashed. Daniel thch th s d ng th i gian v i v , Mary, v con gi, Hadassah. B n c th lin h v i Daniel qua t i drobbins@gentoo.org. V i nh ng cu h i k thu t v n i dung c a cu n h ng d n ny, lin h v i tc gi , Daniel Robbins, t i drobbins@gentoo.org.

Chng 2 Gi i thi u v bash


2.1 V (shell)

N u b n t ng s d ng h i u hnh Linux, b n bi t khi ng nh p, b n c n cho b i d u nh c trng nh sau: $ D u nh c b n th y ni ring c th trng khc m t cht. N c th ch a tn my, tn c a th m c hi n th i, ho c c hai. Tuy nhin, b t k l gi u nh c c a b n trng nh th no, c k hi u l ch c ch n. Chng trnh in d u nh c g i l "v " (shell), v r t c th v shell c a ring b n l chng trnh c g i bash.

2.2

C ph i b n ang ch y bash khng?

B n c th ki m tra xem n u b n ang ch y bash hay khng b ng cch g: $ echo $SHELL /bin/bash N u dng trn cho ra l i ho c p l i khng gi ng v i v d , th b n c th ang ch y v shell khc bash. Trong tr ng h p , ph n l n c a cu n h ng d n ny v n c p d ng, nhng chuy n qua bash r t c l i cho b n v i m c ch chu n b cho k thi 101. (Cu n h ng d n ti p theo trong chu i ny, v qu n tr c b n, bao hm vi c thay i v shell cho ng i dng b ng cu l nh chsh.) 7

CHNG 2. GI I THI U V BASH

2.3

V bash

Bash, vi t t t c a "Bourne-again shell"1 , l v shell theo m c nh trn h u h t cc h i u hnh Linux. Cng vi c c a v shell l tun theo cc cu l nh c a ng i dng, v th b n c th tc ng qua l i v i h i u hnh Linux c a b n. Khi b n nh p xong cu l nh, b n c th ch th cho v shell exit, thot ra, hay logout, ng xu t, t i th i i m ny b n s c a tr l i d u nh c ng nh p. Nhn ti n, b n c th ng xu t b ng cch g control-D t i d u nh c bash.

2.4

S d ng cd

Nh b n th y, nhn ch m ch m vo d u nh c bash khng ph i l i u thch th nh t trn th gian :). V v y, hy b t u s d ng bash "i d o" vng quanh h th ng t p tin. T i d u nh c, g cu l nh sau (khng g d u $ ): $ cd / Chng ta v a ni v i bash r ng b n mu n lm vi c t i /, c bi t n nh th m c root ; t t c th m c trn h th ng t o thnh m t cy th m c, v / c xem nh th m c cao nh t c a cy ny, hay l g c r (root). cd thi t l p th m c m b n ang lm vi c, c bi t n nh "th m c hi n th i".

2.5

ng d n

th y th m c hi n th i c a bash, b n c th g: $ pwd / Trong v d pha trn, i s / cho cd g i l ng d n (path). i s thng bo cho cd bi t ni chng ta mu n i n. Trong tr ng h p ny ni
Ch thch c a ng i d ch: Bourne-again shell l m t cch chi ch ti ng Anh. "Bourne" c gi ng nh borne (sinh ra, ra).
1

2.6. NG D N TUY T I

ring, i s / l ng d n tuy t i, c ngha l n ch r m t v tr i v i g c (root) c a cy h th ng t p tin.

2.6

ng d n tuy t i

D i y l m t s ng d n tuy t i khc: /dev /usr /usr/bin /usr/local/bin Nh b n c th th y, t t c ng d n tuy t i c m t i m chung l b t u v i /. V i ng d n /usr/local/bin, chng ta thng bo cho cd chuy n vo th m c /, sau th m c usr d i n, v sau local v bin. ng d n tuy t i lun lun nh n ra b i s b t u b ng /.

2.7

ng d n tng i

M t lo i ng d n khc l ng d n tng i. Bash, cd, v cc cu l nh khc lun lun bin d ch nh ng ng d n ny tng i v i th m c hi n th i. ng d n tng i khng bao gi b t u v i m t /. V th , n u chng ta ang trong th m c /usr. $ cd /usr Sau , chng ta c th dng ng d n tng i thay i t i th m c /usr/local/bin: $ cd local/bin $ pwd /usr/local/bin

2.8

S d ng ..

ng d n tng i c th ch a ng m t hay nhi u th m c "..". Th m c .. l th m c c bi t ch t i th m c "b ". V th , ti p t c v d trn:

10 $ pwd /usr/local/bin $ cd .. $ pwd /usr/local

CHNG 2. GI I THI U V BASH

Nh b n c th th y, th m c hi n th i c a chng ta by gi l /usr/local. Chng ta "quay tr l i" m t th m c, tng i v i th m c hi n th i lc u.

2.9

S d ng .., ti p theo

Thm vo , chng ta c th thm .. vo ng d n tng i c, cho php i t i m t th m c n m "k bn" th m c ang , v d : $ pwd /usr/local $ cd ../share $ pwd /usr/share

2.10

V d ng d n tng i

ng d n tng i c th kh ph c t p. Sau y l m t s v d , cc th m c k t qu khng c hi n th . Hy th hnh dung xem b n s i t i u sau khi g nh ng cu l nh sau: $ cd /bin $ cd ../usr/share/zoneinfo $ cd /usr/X11R6/bin $ cd ../lib/X11 $ cd /usr/bin $ cd ../bin/../bin By gi , hy th g chng v xem b n hnh dung ng khng :)

2.11. HY HI U .

11

2.11

Hy hi u .

Tr c khi k t thc bi gi ng c a chng ta v cd, c m t vi i u ti mu n c p n. u tin, c m t th m c c bi t khc g i l ., c ngha "th m c hi n th i". Trong khi th m c ny khng c s d ng v i cu l nh cd, n th ng c s d ng th c thi m t s chng trnh trong th m c hi n th i, gi ng nh sau: $ ./myprog v d trn t p tin c th th c thi myprog n m t i th m c hi n th i s c th c thi.

2.12

cd v th m c nh

N u chng ta mu n thay i t i th m c nh (home directory), c th g: $ cd Khng c i s , cd s thay i t i th m c nh c a b n, s l /root cho ng i dng cao c p (superuser) v i n hnh l /home/username cho ng i dng bnh th ng. Nhng n u chng ta mu n ch r m t t p tin trong th m c nh th sao? C th l chng ta mu n a t p tin nh l i s cho cu l nh myprog. N u t p tin tr ng trong th m c nh, c th g: $ ./myprog /home/teppi82/myfile.txt2 Tuy nhin, s d ng ng d n tuy t i nh v y khng ph i lc no cng ti n l i. R t may, chng ta c th s d ng k t (d u ng) lm vi c tng t : $ ./myprog /myfile.txt
2

ch thch c a ng i d ch: trong v d ny ng i dng c tn, username, l teppi82 ;)

12

CHNG 2. GI I THI U V BASH

2.13

Th m c nh c a nh ng ng i s khc

d ng

Bash s khai tri n k t ng m t mnh ch th m c nh c a b n, nhng b n cng c th s d ng n ch th m c nh c a nh ng ng i s d ng khc. V d , n u chng ta mu n ch n t p tin girls.txt trong th m c nh c a James, c th g: $ ./myprog james/girls.txt

Chng 3 S d ng cc cu l nh c a Linux
3.1 Gi i thi u ls

By gi , chng ta s xem qua cu l nh ls. R t c th l b n lm quen v i ls v bi t r ng ch g cu l nh ny (khng c tham s ) li t k n i dung c a th m c hi n th i: $ cd /usr $ ls bin doc games include info lib local sbin share src X11R6 1 B ng vi c ch r ty ch n -a, b n c th th y t t c t p tin c a m t th m c, bao g m cc t p tin c che gi u (hien files): nh ng ci m b t u v i .. Nh b n c th th y trong v d sau, ls -a a ra c cc th m c lin k t c bi t . v .. : $ ls -a . .. bin doc games include info lib local sbin share src X11R6

3.2

Danh sch th m c lo i di

B n cng c th ch r m t hay nhi u t p tin hay th m c trn dng l nh ls. N u b n ch r m t t p tin, ls s ch hi n th ra c t p tin m thi. N u b n
ch thch c a ng i d ch: trong v d ny v m t s pha d i, k t qu thu c l trn Debian Linux, k t qu trong nguyn b n c khc
1

13

14

CHNG 3. S

D NG CC CU L NH C A LINUX

ch r m t th m c, ls s hi n th ra n i dung c a th m c. Ty ch n -l r t thu n ti n khi b n c n xem cc thng tin nh quy n h n (permissions), s h u (ownership), th i gian s a i (modification time), v kch th c (size) trong danh sch th m c.

3.3

Danh sch th m c lo i di, ti p theo

Trong v d d i y, chng ta s d ng ty ch n -l hi n th danh dch y c a th m c /usr. $ ls -l /usr total 122 drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x lrwxrwxrwx drwxr-xr-x drwxrwsr-x drwxr-xr-x drwxr-xr-x drwxrwsr-x drwxr-xr-x

2 root root 53104 2004-08-29 02:17 bin 2 root root 2336 2004-06-22 19:51 doc 2 root root 3088 2004-06-01 15:44 games 46 root root 5528 2004-06-13 16:33 include 1 root root 10 2004-05-31 22:29 info -> share/info 138 root root 43384 2004-08-29 00:28 lib 11 root staff 272 2004-06-05 04:06 local 2 root root 6760 2004-08-29 00:28 sbin 236 root root 6360 2004-06-22 19:31 share 5 teppi82 src 136 2004-08-28 21:58 src 6 root root 144 2004-05-31 22:53 X11R6

C t th nh t hi n th thng tin quy n h n cho t ng m c trong danh sch. M t cht n a ti s gi i thch cch d ch thng tin ny. C t ti p theo hi n th s lin k t (links) cho m i m c c a h th ng t p tin, chng ta s t m th i c t l i nhng s tr l i sau. C t th ba v c t th t, tng ng, ng i s h u (owner) v nhm (group). C t th nm li t k kch th c. C t th su l "th i gian s a i g n nh t" ("last modified" time) hay "mtime" c a cc m c. C t cu i cng l tn g i. N u t p tin l lin k t t ng trng (symbolic link), b n s th y d u -> v ng d n t i ni m lin k t ch n.2 .
2

ch thch c a ng i d ch: trong v d trn info l m t tr ng h p nh v y

3.4. XEM TH M C

15

3.4

Xem th m c

i khi b n ch mu n xem th m c, khng quan tm n i dung trong. Cho nh ng tr ng h p ny, b n c th ch r ty ch n -d, ni v i ls xem b t k th m c no: $ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 241 root root 6488 2004-09-02 18:21 ../share drwxr-xr-x 12 root root 312 2004-05-31 22:29 /usr drwxr-xr-x 2 root root 53208 2004-09-02 18:21 /usr/bin drwxr-xr-x 2 root root 3984 2004-06-22 19:30 /usr/X11R6/bin

3.5

Danh sch inode v danh sch qui (recursive)

Nh v y b n c th s d ng -d xem th m c, nhng ng th i b n cng c th dng -R lm i u ng c l i: khng ch xem n i dung th m c, m cn xem t t c cc t p v th m c bn trong c a th m c (Xem ton b )! Chng ti khng a ra v d no cho ty ch n ny (v n th ng to), nhng b n c th mu n th m t vi l n cu l nh ls -R v ls -Rl bi t chng lm vi c nh th no. Cu i cng, ty ch n -i c a ls c th s d ng hi n th trong danh sch s inode c a cc v t th h th ng t p tin: $ ls 685 915 916 -i /usr bin 917 include 9352 local 920 src doc 918 info 706 sbin 12522 X11R6 games 919 lib 708 share

3.6

Hy hi u inode, Ph n 1

M i v t th trn m t h th ng t p tin c xc nh m t ch s (index) duy nh t, g i l ch s inode. Ci ny c v t m th ng, nhng am hi u inode l c n thi t hi u nhi u thao tc v i h th ng t p tin. V d , xem xt cc lin k t . v .. m xu t hi n trong m i th m c. hi u y th m c .. th c s l g, u tin chng ta xem ch s inode c a /usr/local:

16

CHNG 3. S

D NG CC CU L NH C A LINUX

$ ls -id /usr/local 9352 /usr/local Th m c /usr/local c ch s inode l 9352. Cn by gi , hy xem ch s inode c a mbox/usr/local/bin/..: $ ls -id /usr/local/bin/.. 9352 /usr/local/bin/..

3.7

Hy hi u inode, ph n 2

Nh b n c th th y, /usr/local/bin/.. c cng ch s inode v i /usr/local! y l cch chng ta ti n t i s hi u th u v i khm ph gy "s c" ny. Tr c y, chng ta xem xt /usr/local t n l th m c. By gi , chng ta khm ph ra inode 9352 trn th c t l th m c, v tm th y hai m c (g i l "lin k t") ch t i inode ny. C /usr/local v /usr/local/bin/.. u lin k t t i inode 9352. M c d inode 9352 ch t n t i m t ni trn a, nhi u ci c th lin k t t i n. Inode 9352 l m c th t s trn a.

3.8

Hy hi u inode, Ph n 3

Trn th c t , chng ta c th th y t ng s l n m inode 9352 c lin k t n, dng cu l nh ls -dl : $ ls -dl /usr/local drwxrwsr-x 11 root staff 272 2004-06-05 04:06 /usr/local N u nhn vo c t th hai t bn tri, chng ta s th y r ng th m c /usr/local (inode 9352) c lin k t n m i m t l n. y l cc ng d n khc nhau, lin k t n inode ny trn h i u hnh c a ti: /usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/..

3.9. MKDIR /usr/local/share/.. /usr/local/src/.. /usr/local/j2sdk1.4.2/.. /usr/local/man/.. /usr/local/include/..

17

3.9

mkdir

Hy xem xt nhanh cu l nh mkdir, l nh c th s d ng t o th m c m i. V d d i y t o 3 th m c m i, co, ca, ro, t t c d i /tmp: $ cd /tmp $ mkdir co ca ro Theo m c nh, cu l nh mkdir khng t o th m c m cho b n; ton b ng d n t ph n t ti p theo n ph n t cu i cng ph i t n t i. V v y, n u b n mu n t o cc th m c co/gai/dep, b n c n a ra ba cu l nh mkdir ring bi t: $ mkdir co/gai/dep mkdir: cannot create directory co/gai/dep: Not a directory $ mkdir co $ mkdir co/gai $ mkdir co/gai/dep

3.10

mkdir -p

Tuy nhin, mkdir c ty ch n -p r t thu n ti n, thng bo cho mkdir t o b t k th m c m no n u cha c, nh b n c th th y y: $ mkdir -p de/nhu/an/chao/ga Ni chung, khng ph c t p p m t. h c thm v cu l nh mkdir, g man mkdir v c trang h ng d n s d ng (manual page). Cch ny cng lm vi c v i g n nh t t c cc cu l nh bao hm y (v d , man ls), tr cd, v cd g n li n (built-in) vo bash.

18

CHNG 3. S

D NG CC CU L NH C A LINUX

3.11

touch

By gi , chng ta s xem xt nhanh cc cu l nh cp v mv, s d ng sao chp, i tn, v di chuy n t p tin, th m c. b t u ci t ng quan ny, th nh t chng ta s s d ng cu l nh touch t o m t t p tin trong /tmp: $ cd /tmp $ touch saochepem Cu l nh touch c p nh t "mtime" c a m t t p tin n u t p tin c (nh c l i c t th su trong k t qu c a ls -l ). N t t p tin khng t n t i, th m t t p tin m i, r ng s c t o ra. By gi b n c t p tin /tmp/saochepem v i kch th c b ng khng.

3.12

echo

By gi khi c t p tin, hy thm vo m t s d li u. Chng ta c th lm i u ny, s d ng cu l nh echo, l nh l y i s v in chng thi t b ra tiu chu n3 (standard output). u tin, ch m t mnh l nh echo: $ echo "tepdautien" tepdautien

3.13

echo v s chuy n h ng

By gi , v n cu l nh echo v i s chuy n h ng k t qu (output redirection): $ echo "tepdautien" > saochepem D u l n hn ni v i v shell vi t k t qu c a echo vo t p tin saochepem. T p tin ny s c t o ra n u cha c, v s b vi t ln n u c. B ng cch g ls -l, chng ta c th th y t p tin saochepem "di" 11 byte, v n ch a t tepdautien v k t dng m i: $ ls -l saochepem -rw-rr 1 teppi82 thang 11 2004-09-02 18:56 saochepem
3

ch thch c a ng i d ch: thng th ng l mn hnh

3.14. CAT V CP

19

3.14

cat v cp

hi n th n i dung t p tin trn thi t b u cu i (terminal), s d ng cu l nh cat : $ cat saochepem tepdautien By gi , chng ta c th s d ng "cu th n ch" c b n c a l nh cp t o t p tin embansao t t p tin g c saochepem: $ cp saochepem embansao D a trn s nghin c u, chng ta th y y l nh ng t p tin th t s ring r ; ch s inode c a chng khc nhau: $ ls -i saochepem embansao 471627 embansao 471620 saochepem

3.15

mv

By gi , hy s d ng cu l nh mv i tn "embansao" thnh "embichuyen". S inode c a chng s v n khng thay i; tuy nhin, tn t p tin ch n inode s khc. $ mv embansao embichuyen $ ls -i embichuyen 471627 embichuyen S inode c a t p tin b chuy n s v n khng thay i ng th i t p tin thu c n m trn cng h th ng t p tin nh t p tin ngu n. Chng ta s c ci nhn g n hn v h th ng t p tin t i Ph n 3 c a chu i sch h ng d n ny. Trong khi ang ni v mv, hy xem cch s d ng khc c a cu l nh ny. mv, ngoi s cho php chng ta thay i tn t p tin, cn cho php di chuy n m t hay nhi u t p tin t i v tr khc trong h ng c p cc th m c. V d , chuy n /var/tmp/teptin.txt t i /home/teppi82 (t p tin nh c a ti ;) ti g:

20

CHNG 3. S

D NG CC CU L NH C A LINUX

$ mv /var/tmp/teptin.txt /home/teppi82 Sau khi g cu l nh ny, teptin.txt s b chuy n n /home/teppi82/teptin.txt. V n u /home/teppi82 n m trn h th ng t p tin khc v i /var/tmp, th cu l nh mv s sao chp teptin.txt t i h th ng t p tin m i v xa ci trn h th ng c. Nh b n c th on c, khi teptin.txt b di chuy n gi a cc h th ng t p tin, teptin.txt t i v tr m i s c s inode m i. l v m i h th ng t p tin c b cc s inode c l p c a ring mnh. Chng ta cng c th s d ng cu l nh mv di chuy n nhi u t p tin t i m t th m c ch. V d , di chuy n teptin1.txt v baibao3.txt t i /home/teppi82, ti c n g: $ mv /var/tmp/teptin1.txt /var/tmp/baibao3.txt /home/teppi82

Chng 4 T o lin k t v xa t p tin


4.1 Lin k t c ng

Chng ta c p thu t ng "lin k t" khi ni n quan h gi a hai th m c (tn chng ta g) v inode (ch s trn h th ng t p tin m ta th ng hay b qua). Th c t , c hai ki u lin k t trn Linux. Ki u m chng ta th o lu n g i l lin k t c ng. M i inode c th c s lin k t c ng b t k, v inode s v n cn trn h th ng t p tin cho n khi t t c lin k t c ng bi n m t. Khi lin k t c ng cu i cng bi n m t v khng c chng trnh no m t p , Linux s t ng xa t p tin. Lin k t c ng m i c th t o b ng cu l nh ln: $ cd /tmp $ touch lienketdau $ ln lienketdau lienkethai $ ls -i lienketdau lienkethai 10662 lienketdau 10662 lienkethai

4.2

Lin k t c ng, ti p theo

Nh b n c th th y, lin k t c ng lm vi c trn c p inode ch t i m t t p tin ni ring. Trn h i u hnh Linux, lin k t c ng c m t vi h n ch . Th nh t, b n ch c th t o lin k t c ng t i t p tin, t i th m c th khng. i u ny ng; th m ch . v .. l cc lin k t c ng h th ng t o ra, b n (d l ng i dng "root") khng c quy n t o m t ci cho ring mnh. Gi i h n 21

22

CHNG 4. T O LIN K T V XA T P TIN

th hai c a lin k t c ng l chng khng th n i h th ng t p tin. C ngha l b n khng th t o m t lin k t t /usr/bin/bash t i /bin/bash n u cc th m c / v /usr c a b n n m trn cc h th ng t p tin ring bi t.

4.3

Lin k t t ng trng

Trn th c ti n, lin k t t ng trng (hay symlink ) c s d ng th ng xuyn hn lin k t c ng. Lin k t t ng trng l lo i m t t p tin c bi t, m lin k t ch t i t p tin khc b ng, tn ch khng tr c ti p t i inode. Lin k t t ng trng khng ngn ng a m t t p tin tr c s xa b ; n u t p tin ch bi n m t, th lin k t t ng trng s khng c gi tr s d ng, ho c b h ng.

4.4

Lin k t t ng trng, ti p theo

Lin k t t ng trng c th t o b ng cch a ty ch n -s t i ln. $ ln -s lienkethai lienketba $ ls -l lienketdau lienkethai lienketba lrwxrwxrwx 1 teppi82 thang 10 2004-09-02 23:04 lienketba -> lienkethai -rw-rr 2 teppi82 thang 0 2004-09-02 19:19 lienketdau -rw-rr 2 teppi82 thang 0 2004-09-02 19:19 lienkethai Trong k t qu c a ls -l, c th phn bi t lin k t t ng trng v i cc t p tin bnh th ng b ng 3 cch. Th nh t, c t u tin ch a k t l bo hi u lin k t t ng trng. Th hai, kch th c c a lin k t t ng trng l s k t c a ch (lienkethai, trong tr ng h p ny). Th ba, c t cu i cng hi n th tn t p tin ch c d u mi tn -> i tr c.

4.5

Su hn v lin k t t ng trng, ph n 1

Lin k t t ng trng ni chung linh ho t hn lin k t c ng. B n c th t o lin k t t ng trng t i b t k lo i v t th no c a h th ng t p tin, bao g m th m c. V b i v lin k t t ng trng th c thi trn c s ng d n (khng ph i inode), c th t o m t cch hon h o lin k t t ng trng m ch n v t th trn m t h th ng t p tin v t l khc. Tuy nhin, th c t ny lm cho vi c hi u lin k t t ng trng thm ph c t p.

4.6. SU HN V LIN K T T NG TRNG, PH N 2

23

4.6

Su hn v lin k t t ng trng, ph n 2

Xem xt tr ng h p khi chng ta mu n t o m t lin k t trong /tmp m ch n /usr/local/bin. Chng ta c n g nh sau: $ ln -s /usr/local/bin bin1 $ ls -l bin1 lrwxrwxrwx 1 teppi82 thang Hay m t cch tng ng: $ ln -s ../usr/local/bin bin2 $ ls -l bin2 lrwxrwxrwx 1 teppi82 thang 16 2004-09-02 23:05 bin2 -> ../usr/local/bin

4.7

Su hn v lin k t t ng trng, ph n 3

Nh b n c th th y, c hai lin k t t ng trng cng ch t i m t th m c. Tuy nhin, n u lin k t t ng trng th hai c a chng ta b chuy n t i th m c khc, n s b "v " v ng d n tng i: $ mkdir thumucmoi $ mv bin2 thumucmoi $ cd thumucmoi $ cd bin2 bash: cd: bin2: No such file or director V th m c /tmp/usr/local/bin khng t n t i, chng ta khng th chuy n t i th m c bin2; ni cch khc, bin2 b v .

4.8

Su hn v lin k t t ng trng, ph n 4

V l do ny, i lc trnh vi c t o lin k t t ng trng v i ng d n tng i l m t ki n hay. Tuy nhin, c nhi u tr ng h p lin k t t ng trng v i ng d n tng i l i thu n ti n. Xem xt m t v d khi b n mu n t o tn th hai tng ng cho m t chng trnh trong /usr/bin: # ls -l /usr/bin/unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 /usr/bin/unicode_start

24

CHNG 4. T O LIN K T V XA T P TIN

4.9

Su hn v lin k t t ng trng, ph n 5

N u l ng i s d ng "root", c th b n mu n t o m t tn tng ng cho "unicode_start", v d nh "u_s". Trong v d ny, chng ta c quy n root, b ng ch ng l d u nh c bash thay i thnh "#". Chng ta c n quy n root v ng i dng bnh th ng khng th t o t p tin trong /usr/bin/. L root, chng ta c th t o m t tn tng ng cho unicode_start nh sau: # cd /usr/bin # ln -s /usr/bin/unicode_start u_s # ls -l unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 unicode_start # ls -l u_s lrwxrwxrwx 1 root root 22 2004-09-02 23:14 u_s -> /usr/bin/unicode_start Trong v d ny, chng ta t o ra lin k t t ng trng u_s ch t i t p tin /usr/bin/unicode_start.

4.10

Su hn v lin k t t ng trng, ph n 6

Trong khi gi i php ny lm vi c, n s t o ra v n n u chng ta quy t nh chuy n c hai t p /usr/bin/unicode_start v /usr/bin/u_s t i /usr/local/bin: # mv /usr/bin/unicode_start /usr/bin/u_s /usr/local/bin # ls -l /usr/local/bin/unicode_start -rwxr-xr-x 1 root root 1061 2004-04-22 22:30 /usr/local/bin/unicode_start # ls -l /usr/local/bin/u_s lrwxrwxrwx 1 root root 22 2004-09-02 23:14 /usr/local/bin/u_s -> /usr/bin/unicode_start V chng ta s d ng ng d n tuy t i trong lin k t t ng trng, u_s v n cn ch t i /usr/bin/unicode_start, ci khng cn t n t i n a v /usr/bin/unicode_start b di chuy n t i /usr/local/bin. C ngha l by gi u_s l m t lin k t b v . C ng d n tuy t i v ng d n tng i trong lin k t t ng trng u c gi tr ring c a mnh, v b n nn s d ng m t lo i ng d n thch h p v i nhu c u c a

4.11. RM

25

b n. Th ng th c ng d n tng i v ng d n tuy t i s lm vi c t t. V d sau s lm vi c th m ch sau khi c hai t p tin b di chuy n: # cd /usr/bin # ln -s unicode_start u_s # ls -l u_s lrwxrwxrwx 1 root root 13 2004-09-02 23:27 u_s -> unicode_start # mv unicode_start u_s /usr/local/bin # ls -l /usr/local/bin/unicode_start -rwxr-xr-x 1 root staff 1061 2004-09-02 23:29 /usr/local/bin/unicode_start # ls -l /usr/local/u_s lrwxrwxrwx 1 root root 13 2004-09-02 23:27 /usr/local/bin/u_s -> unicode_start By gi , chng ta c th ch y chng trnh unicode_start b ng cch g /usr/local/bin/u_s. /usr/local/bin/u_s ch t i chng trnh unicode_start trong cng th m c v i u_s.

4.11

rm

By gi , khi bi t cch s d ng cp, mv, v ln, l th i gian h c cch xa v t th kh i h th ng t p tin. Thng th ng, i u ny c th c hi n v i cu l nh rm. xa t p tin n gi n l ch r chng trn dng l nh: $ cd /tmp $ touch tep1 tep2 $ ls -l tep1 tep2 -rw-rr 1 teppi82 thang 0 2004-09-04 17:53 tep1 -rw-rr 1 teppi82 thang 0 2004-09-04 17:53 tep2 $ rm tep1 tep2 $ ls -l tep1 tep2 ls: tep1: No such file or directory ls: tep2: No such file or directory Ch r ng d i Linux, m t khi t p tin b xo (is rmd), n "ra i" mi mi. V l do ny, nhi u nh qu n tr m i vo ngh s s d ng ty ch n -i khi xa t p tin. Ty ch n -i ni rm xa t t c t p tin trong ch "h i tho i" (interactive) l, h i nh c tr c khi xa b t k t p tin no. V d :

26

CHNG 4. T O LIN K T V XA T P TIN

$ rm -i tep1 tep2 rm: remove regular empty file tep1? y rm: remove regular empty file tep2? y Trong v d trn, cu l nh rm nh c c "th c s " xa t p tin ch r hay khng. xa chng, ti c n g "y" v Enter l n hai. N u ti g "n", t p tin s khng b xa. Ho c, n u ti thao tc sai, ti c th g Control-C h y b ton b l nh rm -i nh ng g lm c th gy thi t h i l n cho h i u hnh c a ti. N u b n v n s d ng cu l nh rm, r t c ch n u b n s d ng trnh so n th o a thch thm dng sau vo t p tin /.bashrc c a b n, v sau ng xu t v ng nh p l i. Sau , m i khi b n g rm, v bash s t ng bi n i n thnh cu l nh rm -i. Theo , rm s lun lun lm vi c trong ch h i nh c: alias rm="rm -i"

4.12

rmdir

xa th m c, b n c hai l a ch n. B n c th xa t t c cc v t th bn trong th m c v s d ng rmdir xa b n thn th m c : $ $ $ $ mkdir thumuccuatoi touch thumuccuatoi/tep1 rm thumuccuatoi/tep1 rmdir thumuccuatoi

Phng php ny th ng m ch l cch "xa th m c cho tr cn b s a". T t c nh ng ng i dng v qu n tr c nng l c dng cu l nh thu n ti n hn nhi u l rm -rf, ni n ngay sau.

4.13

rm v th m c

Cch t t nh t xa m t th m c l s d ng ty ch n b t bu c xa ton b (recursive force) c a cu l nh rm ni rm xa th m c b n ch r, cng nh t t c v t th ch a trong th m c :

4.13. RM V TH M C $ rm -rf thumuccuatoi

27

Ni chung, rm -rf l phng php, xa m t cy th m c, c a chu ng hn. C n r t c n th n khi s d ng rm -rf, v s c m nh c a n c th em n c i u c l i v tai h a :)

Chng 5 S d ng cc k t
5.1

i di n (wildcard)

Gi i thi u v k t i di n

Khi s d ng Linux t ngy ny qua ngy khc, c nhi u l n b n mu n th c hi n m t thao tc n (v d rm) trn nhi u v t th h th ng t p tin cng m t lc. Trong nh ng tr ng h p ny, g nhi u t p tin trn m t dng l nh thng th ng gy v ng: $ rm tep1 tep2 tep3 tep4 tep5 tep6 tep7 tep8

5.2

Gi i thi u v k t i di n, ti p theo

gi i quy t v n ny, b n c th l i d ng s h tr k t i di n g n li n v i Linux. S h tr ny, cn g i l "globbing" (v l do l ch s ), cho php b n ch r nhi u t p tin m t lc, s d ng m t m u i di n (wildcard pattern). Bash v cc cu l nh Linux khc s bin d ch m u ny, xem v tm trn a t t c cc t p tin tng ng n. V th , n u b n c cc t p tin t tep1 t i tep8 trong th m c hi n th i, b n c th xa nh ng t p ny, g: $ rm tep[1-8] Ho c n u b n ch mu n n gi n l xa t t c cc t p tin m b t u b ng tep cng nh t p tin no c tn tep, b n c th g: $ rm tep* 28

5.3. HI U V KHNG TNG

NG

29

K t i di n * tng ng b t k k t hay chu i k t no, ho c th m th "khng c k t ". T t nhin, c th s d ng i di n "ton c u" (glob wildcards) xa t p tin m t cch n gi n hn, nh chng ta s th y trong b ng ti p theo.

5.3

Hi u v khng tng ng

N u b n mu n li t k t t c v t th h th ng t p tin trong /etc b t u b ng g cng nh m i t p tin c tn l g, b n c n g: $ ls -d /etc/g* /etc/gaim /etc/gnome /etc/group- /etc/gtk /etc/gateways /etc/gnome-vfs-2.0 /etc/group.org /etc/gtk-2.0 /etc/gconf /etc/gnome-vfs-mime-magic /etc/gs-gpl /etc/gdm /etc/groff /etc/gshadow /etc/gimp /etc/group /etc/gshadowBy gi , ci g s x y ra n u b n ch r m t m u m khng tng ng b t k v t th no? Trong v d sau, chng ta th li t k t t c cc t p tin trong /usr/bin b t u b ng asdf v k t thc b ng jkl,, g m c t p tin c th c l asdfjkl : $ ls -d /usr/bin/asdf*jkl ls: /usr/bin/asdf*jkl: No such file or directory

5.4

Hi u v khng tng ng, ti p theo

l ci x y ra. Th ng th, khi chng ta ch r m t m u, m u tng ng m t hay nhi u t p trn h th ng t p tin, v bash thay th m u v i m t danh sch cc v t th tng ng, cch nhau b i kho ng tr ng. Tuy nhin, khi m u khng a ra m t ci no ph h p bash y nguyn i s , i di n, v t t c . V th , khi ls khng th tm th y t p tin /usr/bin/asdf*jkl th n a ra thng bo l i. Lu t l thao tc y l m u ton c u ch khai tri n ra n u chng tng ng v t th trong h th ng t p tin. N u khng th chng l i y nh th v c a nguyn vn1 t i chng trnh chng ta ang g i.
1

ch thch c a ng i d ch: trong tr ng h p ny l /usr/bin/asdf*jkl

30

CHNG 5. S

D NG CC K T

I DI N (WILDCARD)

5.5

C php i di n: *

By gi , khi th y s ton c u (globbing) lm vi c nh th no, chng ta c n xem c php i di n. B n c th s d ng cc k t c bi t cho s m r ng: * s tng ng khng ho c nhi u k t . N c ngha "b t k th g c th vo y, g m c khng c g". V d : /etc/g* tng ng t t c t p tin trong /etc m b t u b ng g, ho c m t t p tin c tn g. /tmp/my*l tng ng t t c t p tin trong /tmp m b t u b ng my v k t thc b ng l, bao g m c t p tin myl

5.6

C php i di n: ?

? ph h p b t k k t n no. V d : myfile? tng ng b t k t p tin no m tn c a n ch a myfile theo sau l m t k t n2 . /tmp/note?txt tng ng c /tmp/notes.txt v emph/tmp/notes_txt, n u chng t n t i.

5.7

C php i di n: []

i di n ny gi ng m t ?, nhng n c trng hn. s d ng i di n ny, t b t k k t no b n mu n tm tng ng vo trong []. Bi u th c thu c s tm s tng ng v i m i k t . B n c th s d ng - ch r m t dy, v th m ch lin h p cc dy. V d : myfile[12] s tng ng myfile1 v myfile2. i di n s c khai tri n n u t nh t m t trong nh ng t p tin ny t n t i trong th m c hi n th i.
2

ch thch c a ng i d ch: v d myfile1 myfile2 myfilea myfilex ...

5.8. C PHP I DI N: [!] [Cc]hange[Ll]og s tng changelog.

31 ng Changelog, ChangeLog, changeLog, v

Nh b n c th th y, s d ng i di n d u ngo c vung h u ch cho vi c t o nh ng s tng ng khc nhau: ls /etc/[0-9]* s li t k t t c cc t p tin trong /etc b t u b ng m t ch s . ls /tmp/[A-Za-z]* s li t k t t c cc t p tin trong /tmp b t u b ng m t ch ci hoa hay ch ci th ng.

5.8

C php i di n: [!]

C u trc [!] gi ng v i c u trc [!], khng k r ng n s tng ng b t k k t no, m khng c li t k gi a [! v ]. V d : rm myfile[!9] s xa t t c cc t p tin c tn myfile c ng v i m t k t n, ngo i tr myfile9.

5.9

o su v i di n

y l m t s s o su c n khi s d ng i di n. V bash " i x " cc k t i di n (?, [, ], v * ) m t cch c bi t, b n c n c bi t c n th n khi g trong i s t i m t cu l nh nh ng k t ny. V d , n u b n mu n t o m t t p tin ch a dng [fo]*, cu l nh sau c th khng lm ci b n mu n: $ echo [fo]* > /tmp/teptinmoi.txt V m u [fo]* tng ng v i t p tin no trong th m c hi n th i, nn b n s tm th y tn c a chng trong /tmp/teptinmoi.txt hn l dng [fo]* nh b n mong i. Gi i php? M t cch b t u gi i quy t l a cc k t vo d u ngo c n, chng (d u ngo c) ni bash khng th c hi n s khai tri n i di n: $ echo [fo]* > /tmp/teptinmoi.txt

32

CHNG 5. S

D NG CC K T

I DI N (WILDCARD)

5.10

o su v i di n, ti p theo

S d ng cch ny, t p tin m i c a b n s ch a dng ch [fo]* nh mong i. M t cch tng t , b n c th s d ng k t thot (escape) g ch ng c ni bash coi [, ], v * l ch ch khng ph i k t i di n: $ echo \[fo\]\* > /tmp/teptinmoi.txt C hai cch gi i quy t (ngo c n v k t thot g ch ng c) c cng tc d ng. Nguyn chng ta ang ni v g ch ng c, gi l th i i m t t ni r ng, ch r m t \ bnh th ng, b n c th ho c a n vo ngo c n, ho c g \\ (n s khai tri n thnh \).

5.11

Ngo c n "g p" ngo c kp

Ch r ng ngo c kp s lm vi c tng t nh ngo c n, nhng s v n cho php bash th c hi n m t s khai tri n gi i h n. B i v y, ngo c n l t t nh t khi b n th c s mu n a nguyn vn d ng ch t i m t cu l nh. thm thng tin v s khai tri n i di n g man 7 glob. Xem thm thng tin v trch d n (quote), b ng ngo c, g man 8 glob v c ph n QUOTING. N u b n c d nh tr k thi LPI, coi nh y l bi t p v nh :)

Chng 6 T ng k t v cc ngu n b tr
6.1 T ng k t

Xin chc m ng: b n t i i m cu i cu n n t p l i c s Linux c a chng ti! Ti hy v ng n gip b n n m ch c ki n th c Linux c b n. Nh ng ch b n h c y, bao g m c s v bash, nh ng cu l nh Linux c b n, lin k t, v i di n, t n n mng cho cu n h ng d n ti p theo, qu n tr c s , trong chng ti s a cc ch nh bi u th c chnh quy (regular expression), quy n s h u, v quy n h n, qu n l ti kho n ng i dng, v nhi u n a. Ti p t c theo h ng d n nhi u t p ny, b n s s m chu n b t t i ch ng ch LPIC b c 1 t Linux Professional Institute. c p n ch ng ch LPIC, n u y l ci b n quan tm, th chng ti khuyn b n h c cc ngu n b tr trong b ng ngay sau, c l a ch n c n th n b sung thm cho nguyn li u trong cu n h ng d n ny.

6.2

Cc ngu n b tr

Trong bi bo nhi u k "Bash qua v d " ("Bash by example") trn developerWorks, Daniel ch b n cch s d ng c u trc l p trnh bash vi t script c a mnh. Chu i ny (Ph n 1 v 2 ni ring) l s chu n b t t cho k thi LPIC b c 1: Bash qua v d , Ph n 1: L p trnh c s trong v Bourne-again shell 33

34

CHNG 6. T NG K T V CC NGU N B Bash qua v d , Ph n 2: L p trnh bash c s nng cao Bash qua v d , Ph n 3: Khm ph h th ng ebuild

TR

N u b n l ng i dng Linux m i hay trung bnh, b n th t s khng th khng xem Nh ng cu h i chuyn mn th ng t cho ng i dng Linux (Technical FAQ for Linux users), danh sch 50 trang i su v nh ng cu h i Linux th ng t, v i cc cu tr l i chi ti t. B n thn FAQ ny d ng PDF (Acrobat). N u b n khng quen thu c l m v i trnh so n th o vi, hy xem cu n h ng d n vi v lng (Intro to vi). Cu n h ng d n ny kha m u c p t c v trnh so n th o m nh ny. Coi nh y l ti li u ph i c thm n u b n khng bi t cch s d ng vi.

6.3

ki n t pha b n

Xin hy cho chng ti bi t cu n h ng d n ny c gip ch cho b n khng v chng ti c th lm n t t hn nh th no. ng th i, chng ti cng mu n nghe v nh ng ch khc m b n c th mu n xem trong h ng d n c a developerWorks h i v n i dung c a cu n h ng d n ny, lin h tc gi , Daniel Robbins, t i drobbins@gentoo.org.

6.4

L i ghi cu i sch

Cu n h ng d n ny c vi t hon ton trn XML, s d ng chng trnh t o sch h ng d n Toot-O-Matic c a developerWorks1 . Cng c m ngu n m Toot-O-Matic m t XSLT stylesheet v vi ch c nng XSLT m r ng bi n i t p XML thnh cc trang HTML, m t t p zip, nh tiu JPEG v hai t p PDF. Kh nng xu t ra c d ng vn b n v d ng nh nguyn t m t t p ngu n n cho th y kh nng v s linh ho t c a XML. (XML ng th i ti t ki m r t nhi u th i gian v s c l c c a nhm chng ti).
ch thch c a ng i d ch: b n d ch c vi t trn m TEX s d ng trnh so n th o gedit
1

6.4. L I GHI CU I SCH

35

B n c th l y m ngu n c a cng c Toot-O-Matic t i http://www6.software.ibm.com/dl/devworks/dw-tootomatic-p/ . Cu n h ng d n Xy d ng h ng d n v i Toot-O-Matic (Bulding tutorials with the TootO-Matic) cho th y cch s d ng Toot-O-Matic t o h ng d n c a chnh b n. developerWorks cn lm ch m t di n n dnh cho Toot-O-Matic, t i a ch : http://www-105.ibm.com/developerworks/xml_df.nsf/AllViewTemp late?OpenForm&RestrictToCategory=11. Chng ti r t mu n bi t b n ngh g v cng c ny.

You might also like