Professional Documents
Culture Documents
bash shell l mt trong nhiu shell c sn cho Linux. N cn c gi l shell da theo Bourne ( Bourne-again shell), sau khi Stephen Bourne, ngi sng to ra mt shell trc ( /bin/sh). V c bn bash tng thch vi sh, nhng n cung cp nhiu ci tin v c chc nng ln kh nng lp trnh. N kt hp cc tnh nng t Korn shell (ksh) v C shell (csh) v c d kin l mt shell tun th theo POSIX. Trc khi chng ta xoy su hn vo bash, hy nh li rng mt shell l mt chng trnh chp nhn v thi hnh cc lnh. N cng h tr cc cu trc lp trnh, cho php xy dng cc lnh phc tp t cc phn nh hn. Cc lnh phc tp ny, cn gi l cc kch bn lnh (scripts), c th c lu nh cc tp tin tr thnh cc lnh mi, vi t cch ring. Tht vy, nhiu lnh trn mt h thng Linux in hnh thc s l cc kch bn lnh. Cc shell c mt s lnh dng sn, chng hn nh cd, break, v exec. Cc lnh khc l lnh ngoi. Cc shell cng s dng ba lung (streams) Vo/Ra (I/O) tiu chun: stdin l lung u vo tiu chun, cung cp u vo cho cc lnh. stdout l lung u ra tiu chun, hin th u ra t cc lnh. stderr l lung li tiu chun, hin th u ra li t cc lnh. Cc lung u vo cung cp u vo cho cc chng trnh, thng l t g bn phm u cui. Cc lung u ra in cc k t vn bn, thng l ti mt u cui. Thit b u cui ban u l mt my nh ch ASCII hoc mn hnh hin th, nhng by gi n thng l mt ca s trn mn hnh nn ha. Chi tit hn na v cch chuyn hng cc lung I/O tiu chun ny s c trnh by trong mt bi vit khc trong lot bi ny. i vi phn cn li ca bi vit ny, chng ti s gi nh bn bit cch c c mt du nhc shell. Nu bn cha bit, bi vit "Cc nhim v c bn cho cc nh pht trin Linux mi" (Basic tasks for new Linux developers) ca developerWorks s cho bn bit cch thc hin c iu ny v hn th na. Nu bn ang s dng mt h thng Linux m khng dng mn hnh nn ha hoc nu bn m mt ca s u cui trn mn hnh nn ha, bn s c cho n bng mt du nhc, c l ging nh mt du nhc c hin th trong Lit k 1.
Nu bn ng nhp nh l ngi dng root (hoc siu ngi dng - superuser), du nhc ca bn c th trng ging nh c hin th trong Lit k 2.
Ngi dng root c quyn lc ln, v vy hy s dng n cn thn. Khi bn c cc c quyn root, th hu ht cc du nhc c mt du (#) ui. Cc c quyn ca ngi dng bnh thng lun c nh du bng mt k t khc, thng l mt du hiu ng la ($). Thc t du nhc ca bn c th trng khc so vi cc v d trong bi vit ny. Du nhc ca bn c th bao gm tn ngi dng, tn my ca bn, th mc hin ti, ngy thng hoc thi gian m du nhc c in ra v v.v. Cc bi vit ny bao gm cc v d m ngun c ct v dn t cc h thng Linux thc, s dng cc du nhc mc nh cho cc h thng . Cc du nhc root ca chng ta c mt du # ui, do bn c th phn bit chng vi cc du nhc ca ngi dng bnh thng, c du $ ui. Quy c ny ph hp vi nhiu sch vit v ti ny. Nu c mt ci g khng chy trong cc v d, hy kim tra du nhc. V u trang
Cc lnh v cc dy lnh
Vy l by gi bn c mt du nhc, chng ta hy xem bn c th lm g vi n. Chc nng chnh ca shell l thng dch cc lnh ca bn sao cho bn c th tng tc vi h thng Linux ca mnh. Trn cc h thng Linux (v UNIX ), cc lnh c mt tn lnh v sau l cc ty chn v cc tham s. Mt s lnh c ci ny nhng khng c ci kia.
Nu mt dng cha mt k t #, th tt c cc k t cn li trn dng c b qua. V vy, mt k t # c th ch bo mt li bnh lun cng nh mt du nhc root. N l ci g s r rng t ng cnh.
Lnh echo
Lnh echo in li (hay di tr li) cc i s ca n ti thit b u cui nh trong Lit k 3.
Trong v d th ba ca Lit k 3, tt c cc khong trng tha c nn thnh mt khong trng duy nht u ra. trnh iu ny, bn cn phi t cc chui k t trong cp du nhy kp (") hoc du nhy n ('). Bash s dng khong trng, v d nh k t trng, du tab v k t xung dng mi, tch dng u vo ca bn thnh cc th (token), ri chuyn ti lnh ca bn. Vic t cc chui k t trong cp du nhy s bo tn khong trng d tha v lm cho ton b chui k t thnh mt th duy nht. Trong v d trn, mi th sau tn lnh l mt tham s, do chng ta ln lt c cc tham s 1, 2, 4 v 1. Lnh echo c mt vi ty chn. Thng thng lnh echo s ni thm mt k t xung dng mi vo ui ca kt qu u ra. S dng ty chn -n loi b iu ny. S dng ty chn -e cho php mt s k t nht nh c p m thot l du gch cho ngc c ngha ring c bit. Mt s trong cc k t ny c hin th trong Bng 1.
Lu rng bash hin th mt du nhc c bit (>) khi bn g mt dng vi cc du nhy khng ph hp. Chui u vo ca bn tip tc trn dng th hai v c cha mt k t dng mi.
Lit k 5. Cc dy lnh
[ian@echidna ~]$ echo line 1;echo line 2; echo line 3 line 1 line 2 line 3 [ian@echidna~]$ echo line 1&&echo line 2&&echo line 3 line 1 line 2 line 3 [ian@echidna ~]$ echo line 1||echo line 2; echo line 3 line 1 line 3
Lnh Exit
Bn c th kt thc mt shell bng cch s dng lnh exit (thot ra). Bn c th ty a ra mt m exit nh l mt tham s. Nu bn ang chy shell ca mnh trong mt ca s u cui trn mt mn hnh nn ha, ca s ca bn s ng. Tng t nh vy, nu bn kt ni ti mt h thng t xa bng cch s dng ssh hoc telnet (v d th), kt ni ca bn s chm dt. Trong bash shell, bn cng c th gi phm Ctrl v nhn phm d thot ra. Hy xem mt ton t iu khin khc. Nu bn bao bc mt lnh hoc mt danh sch lnh trong cc du ngoc n, th lnh hay trnh t c thc thi trong mt shell con, nh vy lnh exit thot ra khi shell con ch khng phi thot khi shell bn ang lm vic vi n. Lit k 6 cho thy mt v d n gin lin quan n && v || v hai m exit khc nhau.
Hy theo st bit nhiu dy lnh hn na phn sau trong bi vit ny. V u trang
Cc bin mi trng
Khi bn ang chy trong mt bash shell, c nhiu th to nn mi trng ca bn, chng hn nh hnh dng ca du nhc ca bn, th mc nh ca bn, th mc lm vic ca bn, tn ca shell ca bn, cc tp tin bn m, cc chc nng m bn xc nh v v.v. Mi trng ca bn bao gm nhiu bin. Cc bin ny c th do bash hay do bn thit lp. Bash shell cng cho php bn c cc bin shell v bn c th xut khu cc bin sang mi trng ca bn cho cc tin trnh khc ang chy trong shell s dng hoc cho cc shell khc do bn c th to ra t shell hin hnh s dng. C cc bin mi trng ln cc bin shell c mt tn (name). Bn tham kho gi tr ca mt bin bng cch thm du '$' vo trc tn ca n. Mt s bin mi trng bash chung m bn s bt gp c ch ra trong Bng 2.
SHELL $ PPID ?
Tn ca shell. S nhn dng tin trnh (hay PID) ca tin trnh bash shell (hoc tin trnh khc) ang chy. S nhn dng tin trnh ca tin trnh bt u tin trnh ny (tc l, s nhn dng ca tin trnh cha m). M exit ca lnh cui cng.
chsh -s /bin/bash
lnh to ra mt tin trnh khc nh mt shell con trong shell hin ti ca bn. Tin trnh mi s l mt shell ng nhp, s dng bash. To mt m nhn dng (id) vi mc nh l ca mt bash shell s dng cho vic chun b k thi LPI.
Bn c th to hoc thit lp mt bin shell bng cch g tn, ngay sau l mt du bng (=). Nu bin tn ti, bn s sa i n gn gi tr mi. Cc bin c phn bit dng ch hoa ch thng, do var1 v VAR1 l cc bin khc nhau. Theo quy c, cc bin, c bit l cc bin xut khu, l bin ch hoa, nhng y khng phi l mt yu cu bt buc. V mt k thut, $$ v $? l cc tham s shell hn l cc bin. Chng ch c th c tham chiu; bn khng th gn mt gi tr cho chng. Khi bn to mt bin shell, bn thng s mun export n n mi trng cho n s c sn cho cc tin trnh khc m bn khi u cc tin trnh y t shell ny. Cc bin m bn xut khu khng c sn i vi mt shell cha m. Bn s dng lnh export xut khu mt tn bin. Nh mt phm tt trong bash, bn c th gn mt gi tr v xut khu mt bin trong mt bc. minh ha vic gn v xut khu, chng ta hy chy lnh bash shell khi trong bash shell v sau chy Korn shell (ksh) t bash shell mi. Chng ta s s dng lnh ps hin th thng tin v lnh ang chy. Chng ta s tm hiu thm v ps trong mt bi vit khc trong lot bi ny. (Xem Ti nguyn v l trnh ca lot bi ny).
var1 var2 var3 /bin/bash [ian@echidna ~]$ ksh $ ps -p $$ -o "pid ppid cmd" PID PPID CMD 2840 2811 ksh $ export VAR4=var4 $ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL var2 var3 var4 /bin/bash $ exit [ian@echidna ~]$ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL var1 var2 var3 /bin/bash [ian@echidna ~]$ ps -p $$ -o "pid ppid cmd" PID PPID CMD 2811 2559 bash [ian@echidna ~]$ exit exit [ian@echidna ~]$ ps -p $$ -o "pid ppid cmd" PID PPID CMD 2559 2558 -bash [ian@echidna ~]$ echo $VAR1 $VAR2 $VAR3 $VAR4 $SHELL /bin/bash
Lu : 1. Lc bt u dy lnh ny, bash shell c PID 2559. 2. Bash shell th hai c PID 2811 v shell cha m ca n l PID 2559, l bash shell ban u. 3. Chng ta to ra cc bin VAR1, VAR2 v VAR3 trong bash shell th hai, nhng ch xut khu bin VAR2 v VAR3. 4. Trong Korn shell, chng ta to ra bin VAR4. Lnh echo ch hin th cc gi tr cho cc bin VAR2, VAR3 v VAR4, iu ny xc nhn rng bin VAR1 khng c xut khu. Bn c ngc nhin khng khi thy rng gi tr ca bin SHELL khng thay i, mc d du nhc thay i? Bn khng th lun da vo SHELL cho bn bit bn ang chy trong shell no, nhng lnh ps s ni cho bn bit lnh hin ti. Lu rng ps t mt du ni (-) pha trc ca bash shell u tin bo hiu rng y l shell ng nhp. 5. Quay li bash shell th hai, chng ta c th nhn thy cc bin VAR1, VAR2 v VAR3. 6. V cui cng, khi chng ta quay tr li shell ban u, khng c bin no trong s cc bin mi ca chng ta cn tn ti. Cc cuc tho lun trc v vic t cc du nhy ni rng bn c th s dng hoc du nhy n hoc du nhy kp. C mt s khc bit quan trng gia chng. Shell ch khai trin cc bin shell nm gia cc du nhy kp ($quot;), n khng khai trin nu s dng du nhy n ('). Trong v d trc, chng ta bt u mt shell khc bn trong shell ca chng ta v chng ta nhn c mt m nhn dng tin trnh mi. Khi s dng ty chn -c, bn c th chuyn mt lnh ti shell khc n thc hin lnh v tr v. Nu bn chuyn mt chui k t t trong du nhy nh l mt lnh, shell bn ngoi ca bn s loi b cc du nhy v chuyn tip chui k t i. Nu du nhy kp c s dng, cc bin c khai trin trc khi chui k t c chuyn i, nn kt qu c th khng c nh bn mong i. Shell v lnh s chy trong tin trnh khc nn chng s c mt m nhn dng tin trnh (PID) khc. Lit k 9 minh ha cc khi nim ny. PID ca bash shell cp cao nht c t m.
Cho n nay, mi tham kho bin ca chng ta kt thc bng khong trng, v th tn bin kt thc u l r rng. Thc vy, cc tn bin ch gm cc ch ci, ch s hoc k t gch di. Shell bit rng mt tn bin kt thc ni tm thy k t khc. i khi bn cn s dng cc bin trong cc biu thc m ngha c th mp m. Trong trng hp ny, bn c th s dng cc du ngoc mc ({}) phn nh tn bin nh trong Lit k 10.
[ian@echidna ~]$ echo "-$HOME/abc-" -/home/ian/abc[ian@echidna ~]$ echo "-$HOME_abc-" -[ian@echidna ~]$ echo "-${HOME}_abc-" -/home/ian_abc-
Lnh Env
Lnh env khng c bt k tu chn hoc cc tham s no s hin th cc bin mi trng hin ti. Bn cng c th s dng n thc thi mt lnh trong mt mi trng ty chnh. Ty chn -i (hoc ch cn -) xa mi trng hin ti trc khi chy lnh, trong khi ty chn -u b cc thit lp bin mi trng m bn khng mun chuyn i. Lit k 11 cho thy mt phn kt qu u ra ca lnh env m khng c bt k tham s no v sau l ba v d v cch gi cc shell khc nhau khng c mi trng cha m. Hy xem xt cn thn nhng iu ny trc khi chng ta tho lun v chng. Lu : Nu h thng ca bn khng ci t cc shell ksh (Korn) hoc tcsh, th bn s cn phi ci t chng t mnh lm nhng bi tp ny.
Nhn thy rng bash t bin SHELL, nhng khng xut khu n n mi trng, mc d c ba bin khc do bash to ra trong mi trng . Trong v d ksh, chng ta c hai bin mi trng, nhng n lc ca chng ta nhn li gi tr ca bin SHELL ch cho mt dng trng. Cui cng, tcsh khng to ra bt k bin mi trng no v a ra mt li khi ta c gng tham kho gi tr ca SHELL.
B thit lp v thit lp
Lit k 11 cho thy hnh vi khc nhau trong cch cc shell x l cc bin v cc mi trng. Trong khi bi vit ny tp trung vo bash, nn bit rng khng phi tt c shell hnh x theo cng mt cch ging nhau. Hn na, cc shell hnh x theo mt cch khc nhau ty theo chng c l mt shell ng nhp hay khng. By gi, chng ta s ch c th ni rng mt shell ng nhp l shell m bn nhn c khi bn ng nhp vo h thng; bn c th bt u cc shell khc vn hnh nh shell ng nhp nu bn mun. Ba shell bt u trn bng cch s dng env -i khng phi l cc shell ng nhp. Hy th thm ty chn -lvo chnh lnh shell thy nhng s khc nhau m bn s nhn c vi mt shell ng nhp. Vy th chng ta hy xem xt n lc ca chng ta hin th gi tr ca bin SHELL trong cc shell khng ng nhp:
Khi bash bt u, n thit lp bin SHELL, nhng n khng t ng xut khu bin ny ti mi trng. Khi ksh bt u, n khng thit lp bin SHELL. Tuy nhin, vic tham kho mt bin mi trng cha c nh ngha l tng ng vi vic tham kho mt bin c mt gi tr rng. 3. Khi tcsh bt u, n khng thit lp bin SHELL. Trong trng hp ny, hnh vi mc nh khc vi ksh (v bash) ch l c thng bo mt li khi chng ta c gng s dng mt bin khng tn ti. Bn c th s dng lnh unset b thit lp mt bin v loi n khi danh sch bin shell. Nu bin c xut khu n mi trng, lnh ny cng s loi b bin khi mi trng. Bn c th s dng lnh set kim sot nhiu kha cnh v cch lm vic ca bash (hoc cc shell khc). Lnh set l mt lnh shell dng sn, do cc ty chn khc nhau l c th ring ca shell. Trong bash, ty chn -u lm cho bash thng bo mt li vi cc bin cha c nh ngha ch khng x l chng nh l cc bin nh ngha nhng rng. Bn c th bt cc ty chn khc nhau ca lnh set bng mt du - v tt chng bng mt du +. Bn c th hin th ty chn set hin ti bng cch s dng lnh echo $-. 1. 2.
Nu bn s dng lnh set khng c bt c ty chn no, th lnh ny s hin th tt c cc bin shell ca bn v cc gi tr ca chng (nu c). Ngoi ra cn c lnh khc, declare (khai bo) m bn c th s dng lnh to, xut khu v hin th cc gi tr ca cc bin shell. Bn c th kho st t m nhiu ty chn set cn li v lnh declare bng cch s dng cc trang hng dn s dng (man pages). Chng ta s tho lun v cc trang hng dn s dng sau trong bi vit ny.
Lnh Exec
Mt lnh cui cng cn trnh by l exec. Bn c th s dng lnh exec chy mt chng trnh khc thay th shell hin hnh. Lit k 13 bt u mt bash shell con v sau s dng exec thay th n bng mt Korn shell. Khi thot khi Korn shell, bn quay tr li ti bash shell ban u (trong v d ny l PID 2852).
V u trang
[ian@echidna ~]$ uname Linux [ian@echidna ~]$ uname -s Linux [ian@echidna ~]$ uname -n echidna.raleigh.ibm.com [ian@echidna ~]$ uname -r 2.6.29.6-217.2.3.fc11.i686.PAE [ian@echidna ~]$ uname -v #1 SMP Wed Jul 29 16:05:22 EDT 2009 [ian@echidna ~]$ uname -m i686 [ian@echidna ~]$ uname -o GNU/Linux [ian@echidna ~]$ uname -a Linux echidna.raleigh.ibm.com 2.6.29.6-217.2.3.fc11.i686.PAE #1 SMP Wed Jul 29 16:05:22 EDT 2009 i686 i686 i386 GNU/Linux
In tn ca nhn. y l ty chn mc nh nu khng c ty chn no khc c ch r. In tn nt (nodename) hoc tn my. In bn pht hnh ca nhn. Ty chn ny thng c s dng vi cc lnh x l m un. In phin bn ca nhn. In tn phn cng (CPU) ca my tnh. In tn h iu hnh. In tt c cc thng tin trn.
-n -r
-v -m -o -a
Lit k 14 l t mt h thng Fedora 11 ang chy trn mt CPU Intel. Lnh uname c sn trn hu ht cc h thng UNIX v h thng ging nh UNIX cng nh Linux. Thng tin c in ra s khc nhau ty theo phin bn v bn phn phi Linux cng nh theo loi my tnh bn ang chy. Lit k 15 cho thy kt qu u ra ca mt h thng AMD Athlon 64 ang chy trn Ubuntu 9.04.
V u trang
Lc s lnh
Nu bn ang g vo cc lnh nh bn c, bn c th nhn thy rng bn thng s dng mt lnh nhiu ln hoc ging ht nhau hoc ch thay i nh. Mt tin tt l bash shell c th duy tr mt lc s ca cc lnh ca bn. Theo mc nh, lc s lun bt ln. Bn c th tt n i bng cch s dng lnh set +o history v bt ln li bng cch s dng lnh set -o history. Mt bin mi trng c gi l HISTSIZE ni cho bash bit c th lu gi
bao nhiu dng lc s. Mt s cc gi tr ci t khc iu khin cch lc s hot ng v c qun l nh th no. Xem cc trang hng dn s dng bash bit cc chi tit y . Mt s cc lnh gip bn c th s dng chc nng lc s l: history Hin th ton b lc s. history N Hin th N dng cui cng ca lc s ca bn. history -d N Xa dng N t lc s ca bn; bn c th lm iu ny nu dng c cha mt mt khu chng hn !! Lnh gn y nht ca bn. !N Lnh lc s th N. !-N Li li N lnh trong lc s (!-1 tng ng vi !!) !# Lnh hin ti bn ang g. !string Lnh gn y nht bt u vi chui k t (string). !?string? Lnh gn y nht c cha chui k t (string). Bn cng c th s dng mt du hai chm (:) tip theo l mt gi tr nht nh truy cp hoc sa i mt phn hoc mt lnh t lc s ca bn. Lit k 16 minh ha mt s tnh nng lc s.
Cc lnh trong Lit k 16 lm nhng vic sau: 1. Di tr li m nhn dng tin trnh PID ca shell hin ti. 2. Chy mt lnh echo trong shell mi v di tr li PID ca shell . 3. Chy li lnh gn nht va qua. 4. Chy li lnh gn nht bt u bng 'ec'; y s chy li lnh u tin trong v d ny. 5. Chy li lnh gn nht bt u bng 'en', nhng thay th '$PPID' vo ch '$$', sao cho PID cha m c hin th thay th. 6. Hin th 6 lnh gn nht va qua ca lc s. 7. Xo mc 598 ca lc s, l lnh echo gn nht. Bn cng c th chnh sa lc s mt cch tng tc. Bash shell s dng th vin readline qun l vic chnh sa lnh v lc s. Theo mc nh, cc phm v t hp phm c s dng di chuyn i qua lc s hoc chnh sa cc dng tng t nh nhng phm v t hp phm c s dng trong trnh son tho GNU Emacs. Cc t hp g phm Emacs thng c th hin nh l C-x hoc M-x, trong x l mt phm thng thng, cn C v M l cc phm Control v Meta, tng ng. Trn h thng my tnh c nhn (PC) in hnh, phm Ctrl dng nh phm Control cho Emacs v phm Alt dng nh phm Meta. Bng 3 tm tt mt s chc nng chnh sa lc s
sn c. Ngoi cc t hp phm c hin th trong Bng 3, cc phm dch chuyn con tr nh cc phm mi tn phi, tri, ln, xung v phm Home v End thng c thit lp hot ng mt cch hp l. Cc chc nng b sung cng nh cch lm th no ty chnh cc ty chn ny bng cch s dng mt tp tin khi to readline (thng l inputrc trong th mc nh ca bn) c th c tm thy trong cc trang hng dn s dng.
Di chuyn sang phi mt khong trng. Di chuyn sang tri mt khong trng. Di chuyn ln lnh trc trong lc s. Di chuyn xung mt lnh sau trong lc s. Tm kim ngc tng dn. G mt ch ci hoc cc ch ci tm kim ngc v trc mt chui k t. n C-r mt ln na tm kim s xut hin trc na ca cng chui k t y.
M-f
Alt-f
Di chuyn n u t tip theo; cc mi trng GUI thng nhn t hp phm ny m trnh n File ca ca s . Di chuyn n u ca t trc . Di chuyn ti u dng. Di chuyn ti cui dng. Xa k t trc con tr. Xa k t trong con tr (cc chc nng Del v Backspace c th c t cu hnh theo ngha ngc li). Xa (loi b) ti cui dng v lu li vn bn b xa s dng sau ny. Xa (loi b) ti cui t v lu li vn bn b xa s dng sau ny. Ly li vn bn loi b bng mt lnh loi b ni trn.
Nu bn mun thao tc lch s bng cch s dng mt ch chnh sa ging nh vi, th bn s dng lnh set o vi chuyn sang ch vi. S dng lnh set -o emacs chuyn v ch emacs. Khi bn gi mt lnh trong ch vi, ban u bn ang ch chn ca vi. Trnh son tho vi c cp trong mt bi vit khc trong lot bi ny. (Xem Ti nguyn v l trnh ca lot bi ny). V u trang
Cc ng dn - lnh ca ti u?
Mt s lnh bash c dng sn, trong khi cc lnh khc bn ngoi. By gi chng ta hy xem cc lnh bn ngoi v cch chy chng v cch lm th no bit mt lnh l lnh bn trong.
/root. Nu bn g mt tn lnh, th bash s tm lnh ny trnng dn ca bn, l mt danh sch cc th mc c phn tch bng du hai chm trong bin mi trng PATH. Nu bn mun bit lnh no s c thc hin khi bn g mt chui k t c th, hy s dng lnh which hay type. Lit k 17 cho thy ng dn mc nh ca ti cng vi cc v tr ca mt s lnh.
Lu rng cc th mc trong ng dn ch yu l kt thc /bin. y l mt quy c chung, nhng khng phi l mt yu cu bt buc, nh bn c th thy t /usr/lib/ccache. Lnh which thng bo rng lnh ls l mt alias (b danh) v khng th tm thy lnh set. Trong trng hp ny, chng ta din gii iu c ngha l lnh khng tn ti hay l mt lnh dng sn. Lnh type thng bo rng lnh ls l mt alias, nhng n nhn bit lnh set nh l mt lnh shell dng sn. N cng thng bo rng c mt lnh echo dng sn cng nh c mt lnh trong /bin m which tm thy. Cc lnh cng to ra kt qu u ra theo cc th t khc nhau. Chng ta thy rng lnh ls c s dng lit k cc ni dung th mc, l mt alias. Cc b danh l mt cch tin dng cu hnh mt s lnh s dng cc tp hp mc nh khc nhau hoc cung cp mt tn thay th cho mt lnh. Trong v d ca chng ta, ty chn --color=tty lm cho cc lit k th mc s phn bit kiu tp tin hoc th mc bng mu sc khc nhau. Hy th chy dircolors --print-database xem cc m mu sc c kim sot nh th no v loi mu no c dng cho loi tp tin no. Mi mt trong s cc lnh ny c cc ty chn b sung. Ty thuc vo nhu cu ca bn, bn c th s dng lnh ny hay lnh kia. Ti c xu hng s dng lnh which khi ti kh chc chn l s tm thy mt tp tin thi hnh c v ti ch cn c t ng dn y ca n. Ti thy rng lnh type cho ti bit thm nhiu thng tin chnh xc hn, m i khi ti cn trong mt kch bn lnh shell.
minh mt ng dn cho bt k tp tin thi hnh c no m bn mun chy t th mc nh ca bn. V d, nu bn c mt bn sao ca chng trnh hello ca bn trong th mc nh ca bn, bn c th chy n bng lnh./hello. Bn c th s dng c du . v du .. nh mt phn ca mt ng dn tuyt i, mc d mt du chm . n khng c ch li g trong trng hp ny. Bn cng c th s dng mt du ng (~) c ngha l th mc nh ca bn v ~username c ngha l th mc nh ca ngi dng c tn username. Mt s v d c hin th trong Lit k 18.
Thay i th mc lm vic ca bn
Cng ging nh bn c th thi hnh cc chng trnh t cc th mc khc nhau trong h thng, bn c th thay i th mc lm vic hin ti ca bn bng cch s dng lnh cd. i s ca cd phi l ng dn tuyt i hay tng i ti mt th mc. Cng ging nh vi cc lnh, bn c th s dng du ., du .., du ~, v ~ username trong ng dn. Nu bn s dng cd m khng c tham s no, s l chuyn ti th mc nh ca bn. Mt gch ni duy nht (-) l tham s dng chuyn n th mc lm vic trc . Th mc nh ca bn c lu tr trong bin mi trng HOME v th mc trc c lu tr trong bin OLDPWD, do mt mnh cd tng ng vi cd $HOME v cd - tng ng vi cd $OLDPWD. Thng thng chng ta ni thay i th mc thay cho ton vn thay i th mc lm vic hin ti. Cng ging nh i vi cc lnh, cng c mt bin mi trng, CDPATH, cha mt tp hp cc th mc c phn tch bng du hai chm cn c tm kim (ngoi th mc lm vic hin ti) khi phn gii cc ng dn tng i. Nu vic phn gii s dng mt ng dn t CDPATH, th cd s in ng dn y ca th mc kt qu lm u ra. Thng thng, nu chuyn i th mc thnh cng, khng dn n kt qu u ra no khc hn l mt du nhc mi, c th i khc. Mt s v d c hin th trong Lit k 19.
V u trang
Hnh 1 cho thy mt s mc tiu biu trong cc trang hng dn s dng: Mt tiu c tn ca cc lnh tip theo l s phn ca n trong du ngoc n. Tn ca lnh v cc lnh c lin quan bt k c m t trong cng mt trang hng dn s dng. Mt bn tm tt cc ty chn v cc tham s p dng cho lnh ny. Mt m t ngn gn v lnh.
Thng tin chi tit v mi ty chn. Bn c th tm thy nhng phn khc v cch s dng, lm th no thng bo cc li, thng tin tc gi v mt danh sch cc lnh c lin quan. V d, trang hng dn s dng cho lnh man cho chng ta bit rng cc lnh lin quan (v cc phn hng dn s dng ca chng) l:
apropos(1), whatis(1), less(1), groff(1), and man.conf(5). C tm nhm trang hng dn s dng thng gp. Cc trang hng dn s dng thng c ci t khi bn ci t mt gi, v vy nu bn cha ci t mt gi phn mm, nhiu kh nng bn s khng c trang hng dn s dng cho n. Tng t, mt s phn hng dn s dng ca bn c th rng hoc gn nh rng. Di y l nhng nhm trang hng dn s dng thng gp v mt s ni dung v d: 1. Cc lnh ca ngi dng (env, ls, echo, mkdir, tty). 2. Cc cuc gi h thng hoc cc chc nng nhn (link, sethostname, mkdir. 3. Cc thng trnh th vin (acosh, asctime, btree, locale, XML::Parser). 4. Thng tin lin quan n thit b (isdn_audio, mouse, tty, zero). 5. M t nh dng tp tin (keymaps, motd, wvdial.conf). 6. Cc tr chi (lu rng nhiu tr chi hin nay c ha v c tr gip ha ngoi h thng trang hng dn s dng). 7. Cc nhm linh tinh khc (arp, boot, regex, unix utf8). 8. Qun tr h thng (debugfs, fdisk, fsck, mount, renice, rpm). Cc nhm khc m bn c th tm thy bao gm 9 cho ti liu ca nhn Linux, n cho ti liu mi, o cho ti liu c v l cho ti liu hng dn cc b. Mt s mc xut hin trong nhiu nhm. V d chng ta cho thy mkdir c trong nhm 1 v 2 v tty trong nhm 1 v 4. Bn c th ch r mt nhm c th, v d, man 4 tty hoc man 2 mkdir, hoc bn c th ch r ty chn a lit k tt c cc nhm hng dn s dng c th c. Bn c th nhn thy trong hnh minh ha l lnh man c nhiu ty chn cho bn t khm ph. By gi, chng ta hy xem nhanh mt s cc lnh "Xem thm" (See also) c lin quan n man.
Xem thm
Hai lnh quan trng lin quan n man l whatis v apropos. Lnh whatis tm kim cc trang hng dn s dng theo tn m bn a ra v hin th cc thng tin tn t cc trang hng dn s dng thch hp. Lnh apropos thc hin tm kim t kho ca cc trang hng dn s dng v lit k cc trang c cha t kha ca bn. Lit k 20 minh ho cc lnh ny.