Bản dịch tiếng Việt trang info của Bash

Embed Size (px)

DESCRIPTION

Bản dịch tiếng Việt trang info của Bash (Bourne again shell - Hệ vỏ "Lại Là Bourne") của hệ điều hành mã nguồn mở đầy hạnh phúc và hân hoan Linux.

Citation preview

3734Ly t Red Hat 9, bt u dch 26-03-2007 Tp tin: bashref.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Cc c tnh ca Bash ************* Vn bn ny l mt m t ngn gn v cc c tnh m hin din trong h v Bash. y l ln ti bn (Nd: Edition) 2.5b, m c cp nht ln cui vo ngy 15 Thng by 2002, ca `S tay Tham kho Bash GNU' (Nd: The GNU Bash Reference Manual), cho `Bash', Phin bn 2.05b. Copyright (C) 1991-2002 Free Software Foundation, Inc. (Nd: Bn quyn (B) 1991-2002 Lin hip T chc Phn mm T do.) Bash cha cc c tnh (Nd: features) m xut hin trong cc h v ph bin khc, v vi c tnh m ch xut hin trong Bash. Vi trong s cc h v m Bash mn cc khi nim (Nd: concepts) t chng l H v Bourne (Nd: Bourne Shell) (`sh'), H v Korn (Nd: Korn Shell) (`ksh'), v h v C (Nd: C-shell) (`csh' v hu du (Nd: successor) ca n, `tcsh'). Trnh n sau chia cc c tnh thnh (Nd: breaks the features up into) cc hng mc (Nd: categories) da trn ci no trong s cc h v khc ny gy cm hng cho c tnh (Nd: inspired the feature). S tay ny c cho ngha (Nd: is meant) nh mt s gii thiu vn tt v cc c tnh m c tm ra trong Bash. Trang s tay ca Bash nn c dng nh s tham chiu nh ngha (Nd: definitive reference) v s hnh x ca h v. * Menu: * Introduction:: * Definitions:: Mt introduction to the h v. Some s nh nghas dnged in phn cn li ca this manual. The h v "building blocks". Lnhs that are mt(a) part of the h v.

* Basic Shell Features:: * Shell Builtin Lnhs:: * Shell Bins:: * Bash Features:: * Job Control::

Bins dnged or set by Bash. Features tm ra/thyed only in Bash. A chapter describing what cng vic s iu khin is

v how Bash cho php you to use it. * Using History Interactively:: Chapter dealing with lch s s khai trin rules. * Lnh Line Editing:: Chapter describing the lnh line bin tping features. * Installing Bash:: * Reporting Bugs:: How to build v install Bash on your h thng. How to report bugs in Bash.

* Major Differences From The Bourne Shell:: A terse list of the differences gia Bash v (v) lch s versions of /bin/sh. * Builtin Index:: * Reserved Word Index:: * Variable Index:: Index of Bash ni trang lnhs. Index of Bash reserved ts. Quick reference helps you find the bin(variable) you want. Index of bindable Readline hms(functions). General index for concepts m ted in this manual.

* Function Index:: * Concept Index::

Tp tin: bashref.info, Node: Introduction, Next: Definitions, Prev: Top, Up: Top S gii thiu ************ * Menu: * What is Bash?:: * What l mt h v?:: A short s m t of Bash. A brief introduction to h vs.

Tp tin: bashref.info, Node: What is Bash?, Next: What l mt h v?, Up: Introduction

Bash l g? ============= Bash l h v, hay trnh din dch ngn ng lnh (Nd: command language interpreter), cho h iu hnh GNU. Ci tn l mt t vit tt ch ci u (Nd: acronym) cho `Bourne-Again SHell' (Nd: H v Li l Bourne), mt s chi ch cho (Nd: a pun on) Stephen Bourne, tc gi ca t tin trc tip ca h v Unix hin ti `/bin/sh', m xut hin trong phin bn Nghin cu Phng th nghim Bell Ln ti bn th By (Nd: the Seventh Edition Bell Labs Research version) ca Unix. Bash tng thch rng vi `sh' v sp nhp cc c tnh c ch t h v Korn `ksh' v h v C `csh'. N c d nh l mt s b sung tun th ca chun k thut H v v cc Cng c POSIX IEEE (Nd: to be a conformant implementation of the IEEE POSIX Shell and Tools specification) (Nhm Lm vic IEEE (Nd: IEEE Working Group) 1003.2). N cho cc ci tin v chc nng hn `sh' (Nd: It offers functional improvements over `sh') cho c hai s dng tng tc v lp trnh (Nd: for both interactive and programming use). Trong khi h iu hnh GNU cung cp cc h v khc, m gm mt phin bn ca `csh', Bash l h v mc nh. Nh cc phn mm GNU khc (Nd: Like other GNU software), Bash kh c tnh d mang (Nd: is quite portable). N hin chy trn gn nh mi phin bn ca Unix v mt vi h iu hnh khc - vi cng c h tr mt cch c lp (Nd: independently-supported ports) tn ti cho MSDOS, OS/2, Windows 95/98, v Windows NT. Tp tin: bashref.info, Node: What l mt h v?, Prev: What is Bash?, Up: Introduction Mt h v l g? ================ V c bn (Nd: At its base), mt h v mt cch n gin l mt trnh x l lnh v m (Nd: macro processor) m cho thi hnh (Nd: executes) cc lnh. Mt h v Unix va l mt trnh din dch/ trnh thng dch lnh, m cung cp giao din ngi dng n tp hp giu c cc tin ch GNU, va l mt ngn ng lp trnh, m cho php cc tin ch ny c kt hp (Nd: shell is both a command interpreter, which provides the user interface to the rich set of GNU utilities, and a programming language, allowing these utilitites to be combined). Cc tp tin m cha cc lnh c th c to, v chnh chng cng tr thnh cc lnh. Cc lnh mi ny c cng tnh trng nh cc lnh h thng trong cc th mc nh l `/bin', cho php cc ngi dng hay cc nhm thit lp cc mi trng ty bin. Mt h v cho php s thi hnh cc lnh GNU, mt cch ng b cng nh mt cch khng ng b (Nd: both synchronously and asynchronously). H v ch cc lnh ng b hon tt trc khi chp nhn u vo thm (Nd: more input); cc lnh khng ng b tip tc thi hnh song song vi h v trong khi n c v cho thi hnh cc lnh b sung. Cc cu trc "ti nh hng" (Nd: redirection) cho php s iu khin tinh t (Nd: fine-grained control) u vo v u ra ca cc lnh . Hn na, h v

cn cho php s iu khin trn ni dung ca cc mi trng ca cc lnh (Nd: over the contents of commands' environments). Cc h v c th c dng mt cch tng tc hay khng tng tc: chng chp nhn u vo m c nh my t bn phm hay t mt tp tin. Cc h v cng cung cp mt tp nh cc lnh ni trang (Nd: built-in commands) ("cc ni trang" (Nd: builtins)) m cho thi hnh (Nd: implementing) tnh chc nng m bt kh hay bt tin khi t c qua cc tin ch ring r. V d, `cd', `break', `continue', v `exec') (Nd: du ngoc n ng ny khng cp) khng th c cho thi hnh (Nd: cannot be implemented) bn ngoi ca h v do chng thao tc trc tip chnh h v. Cc ni trang `history', `getopts', `kill', hay `pwd', gia nhng ci khc, c th c cho thi hnh trong cc tin ch ring r, nhng chng tin li hn khi dng nh cc lnh ni trang. Tt c cc ni trang h v c m t trong cc phn (Nd: sections) theo sau. Trong khi vic cho thi hnh cc lnh l thit yu/ nht thit (Nd: essential), hu ht sc mnh (v tnh phc tp) ca cc h v l do cc ngn ng lp trnh c nhng (Nd: embedded) ca chng. Nh bt k ngn ng cp cao (Nd: high-level) no, h v cung cp cc bin, cc cu trc iu khin lung (Nd: flow control constructs), vic ng ngoc trch dn (Nd: quoting), v cc hm. Cc h v cung cp cc c tnh m c c cu sn (Nd: geared) mt cch chuyn bit cho s dng tng tc hn l tng cng (Nd: augment) ngn ng lp trnh. Cc c tnh tng tc ny gm vic iu khin cng vic (Nd: job control), vic bin tp dng lnh, lch s v cc bit hiu (Nd: command line editing, history and aliases). Mi trong s cc c tnh ny c m t trong s tay ny. Tp tin: bashref.info, Node: Definitions, Next: Basic Shell Features, Prev: Introduction, Up: Top Cc nh ngha *********** Cc nh ngha ny c dng sut phn cn li ca s tay ny. `POSIX' Mt h cc chun h thng m m c da trn Unix. Bash c lin quan vi POSIX 1003.2, Chun H v v cc Cng c (Nd: the Shell and Tools Standard). `blank' (Nd: du trng/ du trng) Mt k t du cch hay tab (Nd: A space or tab character). `ni trang' (Nd: builtin) Mt lnh m c cho thi hnh bn trong bi chnh h v, hn l bi mt chng trnh kh thi m u trong h tp tin. `ton t iu khin' (Nd: control operator)

Mt `t' (Nd: word) m tin hnh mt chc nng iu khin (Nd: control function). N l mt `newline' hay mt trong nhng ci sau: `||', `&&', `&', `;', `;;', `|', `(', hay `)'. `tnh trng thot' (Nd: exit status) Gi tr m c tr v bi mt lnh n trnh gi (Nd: caller) ca n. Gi tr c gii hn tm bit, vy gi tr ti a l 255. `trng' (Nd: field) Mt n v vn bn m l kt qu ca mt trong nhng s khai trin ca h v (Nd: shell expansions). Sau khi khai trin, khi cho thi hnh mt lnh, cc trng kt qu c dng nh tn v cc tham t lnh (Nd: the command name and arguments). `tn tp tin' (Nd: filename) Mt chui cc k t m c dng nhn bit mt tp tin. `cng vic' (Nd: job) Mt tp cc tin trnh m gm mt ng ng (Nd: pipeline), v bt k cc tin trnh no m c xut pht t n, m tt c u trong cng nhm tin trnh. `s iu khin cng vic' (Nd: job control) Mt c ch (Nd: mechanism) m theo cc ngi dng c th cho dng (Nd: stop) (nh ch (Nd: suspend)) v ti khi ng (Nd: restart) (phc hi (Nd: resume)) mt cch chn lc s thi hnh ca cc tin trnh. `siu k t' (Nd: metacharacter) Mt k t m, khi c b du ngoc trch dn (Nd: unquoted), chia tch cc t (Nd: separates words). Mt siu k t l mt `du trng' (Nd: blank) hay mt k t sau y hay nhiu hn: `|', `&', `;', `(', `)', `(LIST)' c dng, vic vit vo tp tin s cung cp u vo cho LIST. Nu dng `' v du ngoc n tri, nu khng cu trc (ny) (Nd: the construct) s (Nd: would) c din dch nh mt s ti nh hng. Khi c sn, s thay th tin trnh c tin hnh mt cch ng thi vi s khai trin tham s v bin, s thay th lnh, v s khai trin s hc. Tp tin: bashref.info, Node: Word Splitting, Next: Tn tp tin Expansion, Prev: Process Substitution, Up: Shell Expansions Vic Chia tch T -------------H v qut cc kt qu ca s khai trin tham s, s thay th lnh, v s khai trin s hc m khng xut hin trong vng cc du ngoc trch dn kp cho vic chia tch t. H v x l mi k t ca `$IFS' nh mt hn nh t (Nd: delimiter), v chia tch cc kt qu ca nhng s khai trin cn li thnh cc t trn (Nd: on) cc k t ny. Nu `IFS' c b t nh, hay gi tr ca n chnh xc l `' (Nd: space=du cch), ci mc nh, th bt k trnh t no ca cc k t `IFS' cng phc v hn nh cc t. Nu `IFS' c mt gi tr m khc hn ci mc nh, th cc trnh t ca cc k t du cch trng (Nd: whitespace) `space' v `tab' b l i khi u v kt thc ca t, chng no m k t du cch trng trong gi tr ca `IFS' (mt k t du cch trng `IFS'). Bt k k t no trong `IFS' m khng phi l du cch trng `IFS', km vi bt k cc k t du cch trng `IFS' lin k no, hn nh mt trng. Mt trnh t cc k t du cch trng `IFS' cng c x l nh mt hn nh t. Nu gi tr ca `IFS' l rng, khng c s chia tch t no xy ra.

Cc tham t rng tng minh (Nd: Explicit null arguments) (`""' hay `''') c gi li. Cc tham t rng n khng c ng ngoc trch dn (Nd: Unquoted implicit null arguments), m sinh ra t (Nd: resulting from) s khai trin ca cc tham s m khng c cc gi tr no, c ly i. Nu mt tham s vi khng c gi tr no c khai trin trong vng cc du ngoc trch dn kp, mt tham t rng sinh ra (Nd: results) v c gi li. Hy ch rng nu khng c s khai trin no xy ra, khng c vic chia tch no c tin hnh. Tp tin: bashref.info, Node: Tn tp tin Expansion, Next: Quote Removal, Prev: Word Splitting, Up: Shell Expansions S Khai trin Tn tp tin -----------------* Menu: * Pattern Matching:: How the h v matches patterns. Sau khi chia tch t, tr khi ty chn `-f' c t nh (*note The Set Builtin:: (Nd: ch thch Ni trang Set)), Bash qut mi t tm cc k t `*', `?', v `['. Nu mt trong cc k t ny xut hin, th t ny c xem nh mt PATTERN (Nd: DNG THC), v c thay th bng mt danh sch c sp xp theo bng ch ci (Nd: alphabetically sorted list) ca cc tn tp tin m so khp dng thc. Nu khng c cc tn tp tin so khp no c tm ra, v ty chn h v `nullglob' c bt hot, t c li khng b thay i. Nu ty chn `nullglob' c t nh, v khng c cc so khp no c tm ra, t b ly i. Nu ty chn h v `nocaseglob' c hot ha, s so khp c tin hnh m khng c s ch n (Nd: without regard to) th hoa/ thng (Nd: the case) ca cc k t bng ch ci. Khi mt dng thc c dng cho s sinh tn tp tin, k t `.' m khi u ca mt tn tp tin hay theo ngay sau mt du s phi c so khp mt cch tng minh, tr khi ty chn h v `dotglob' c t nh. Khi so khp mt tn tp tin, k t du s phi lun lun c so khp mt cch tng minh. Trong cc trng hp khc, k t `.' khng c x l mt cch c bit. Hy xem s m t ca `shopt' trong *Note Bash Builtins:: (Nd: Ch thch Cc Ni trang ca Bash), cho mt s m t v cc ty chn `nocaseglob', `nullglob', v `dotglob'. Bin h v `GLOBIGNORE' c th (Nd: may) c dng hn ch tp cc tn tp tin m so khp mt dng thc. Nu `GLOBIGNORE' c t nh, mi tn tp tin so khp m cng so khp mt trong cc dng thc trong `GLOBIGNORE' c ly i khi danh sch cc so khp. Cc tn tp tin `.' v `..' lun lun b l i, ngay c khi `GLOBIGNORE' c t nh. Tuy nhin, vic t nh `GLOBIGNORE' c hiu qu ca vic cho php/ hot ha/ kh ha (Nd: enabling) ty chn h v `dotglob', vy tt c cc tn tp tin khc m bt u bng mt `.' s so khp. c c s hnh x c

l vic l i (Nd: of ignoring) cc tn tp tin m bt u bng mt `.', hy lm cho `.*' thnh mt trong cc dng thc trong `GLOBIGNORE'. Ty chn `dotglob' b bt hot khi `GLOBIGNORE' c b t nh. Tp tin: bashref.info, Node: Pattern Matching, Up: Tn tp tin Expansion Vic So khp Dng thc ................ Bt k k t no m xut hin trong mt dng thc, m khc hn cc k t dng thc c bit m c m t bn di, u t so khp (Nd: matches itself). K t NUL khng c php (Nd: may not) xut hin trong mt dng thc. Cc k t dng thc c bit phi c ng ngoc trch dn nu chng phi c so khp (Nd: they are to be matched) mt cch nguyn vn. Cc k t dng thc c bit c cc ngha sau: `*' So khp bt k chui no, m gm chui rng. `?' So khp bt k k t n l no. `[...]' So khp bt k mt trong cc k t c bao bc no. Mt cp k t m c phn cch bi mt du gch ni biu th mt BIU THC PHM VI (Nd: RANGE EXPRESSION); bt k k t no m sp xp gia hai k t , tnh ton b (Nd: inclusive), m dng trnh t i chiu v tp k t ca locale hin hnh, c so khp. Nu k t u tin m i theo `[' l mt `!' hay mt `^' th bt k k t no m khng c bao bc u c so khp. Mt `-' c th (Nd: may) c so khp bng cch bao gm n nh k t u tin hay cui cng vo tp hp. Mt `]' c th (Nd: may) c so khp bng cch bao gm n nh k t u tin vo tp hp. Th t sp xp ca cc k t trong cc biu thc phm vi c xc nh bi locale hin hnh v gi tr ca bin h v `LC_COLLATE', nu c t nh. V d, trong locale C mc nh, `[a-dx-z]' l tng ng vi `[abcdxyz]'. Nhiu locale sp xp cc k t theo th t t in, v trong cc locale ny `[a-dx-z]' mt cch tiu biu l khng tng ng vi `[abcdxyz]'; n c th tng ng vi `[aBbCcDdxXyYz]', v d th. t c s din dch truyn thng cc phm vi trong cc biu thc du ngoc vung (Nd: bracket), bn c th p buc s dng locale C bng cch t nh bin mi trng `LC_COLLATE' hay `LC_ALL' gi tr `C'. Trong vng `[' v `]', CC LP K T (Nd: CHARACTER CLASSES) c th c ch r bng cch dng c php `[:'CLASS`:]', trong CLASS (Nd: LP) l mt trong cc lp sau m c nh ngha trong tiu chun POSIX 1003.2: alnum alpha ascii blank cntrl digit graph lower

print punct space upper word xdigit Mt lp k t so khp bt k k t no m thuc v lp . Lp k t `word' so khp cc ch ci, cc ch s, v k t `_'. Trong vng `[' v `]', mt LP TNG NG (Nd: EQUIVALENCE CLASS) c th c ch r bng cch dng c php `[='C`=]', m so khp tt c cc k t vi cng trng s i chiu (Nd: collation weight) (nh c nh ngha bi locale hin hnh) nh k t C. Trong vng `[' v `]', c php `[.'SYMBOL`.]' so khp k hiu i chiu SYMBOL (Nd: K-HIU). Nu ty chn h v `extglob' c hot ha bng cch dng ni trang `shopt', vi dng thc c m rng (Nd: extended) m so khp cc ton t c nhn nhn (Nd: recognized). Trong s m t sau, mt DANH SCH DNG THC (Nd: PATTERN-LIST) l mt danh sch ca mt dng thc hay nhiu hn m c phn cch bi mt `|'. Cc dng thc hn hp (Nd: Composite patterns) c th (Nd: may) c hnh thnh bng cch dng mt dng thc con sau y hay nhiu hn: `?(PATTERN-LIST)' So khp khng hay mt s xut hin ca cc dng thc c cho. `*(PATTERN-LIST)' So khp khng s xut hin hay nhiu hn ca cc dng thc c cho. `+(PATTERN-LIST)' So khp mt s xut hin hay nhiu hn ca cc dng thc c cho. `@(PATTERN-LIST)' So khp ng mt trong cc dng thc c cho. `!(PATTERN-LIST)' So khp bt k ci g ngoi tr mt trong cc dng thc c cho. Tp tin: bashref.info, Node: Quote Removal, Prev: Tn tp tin Expansion, Up: Shell Expansions S Ly i Du ngoc trch dn ------------Sau nhng s khai trin ng trc, tt c nhng s xut hin khng c ng ngoc trch dn ca cc k t `\', `'', v `"' m khng pht sinh t (Nd: result from) mt trong nhng s khai trin trn u c ly i.

Tp tin: bashref.info, Node: Redirections, Next: Executing Lnhs, Prev: Shell Expansions, Up: Basic Shell Features Nhng s Ti nh hng ============ Trc khi mt lnh c cho thi hnh, u vo v u ra ca n c th (Nd: may) c TI NH HNG (Nd: be REDIRECTED) bng cch dng mt s ghi k hiu (Nd: notation) c bit m c din dch bi h v. S ti nh hng c th (Nd: may) cng c dng m v ng cc tp tin cho mi trng thi hnh h v hin hnh. Cc ton t ti nh hng sau y c php (Nd: may) ng trc hay xut hin bt k u m trong vng mt lnh n gin hay c php (Nd: may) theo sau mt lnh. Nhng s ti nh hng c x l theo th t m chng xut hin, t tri sang phi. Trong nhng s m t sau, nu s m t (Nd: descriptor number) tp tin c b i, v k t u tin ca ton t ti nh hng l ` DIRLIST 2>&1 nh hng (Nd: directs) c hai u ra chun (m t t tp tin 1) v li chun (m t t tp tin 2) n tp tin DIRLIST (Nd: DANH-SCH-TH-MC), trong khi lnh ls 2>&1 > DIRLIST nh hng ch u ra chun n tp tin DIRLIST, do li chun c nhn bn (Nd: duplicated) nh u ra chun trc khi u ra chun c ti nh hng n DIRLIST. Bash vn dng vi tn tp tin mt cch c bit khi chng c dng trong nhng s ti nh hng, nh c m t trong bng sau: `/dev/fd/FD' Nu FD l mt s nguyn c hiu lc, m t t tp tin FD c nhn bn. `/dev/stdin' M t t tp tin 0 c nhn bn.

`/dev/stdout' M t t tp tin 1 c nhn bn. `/dev/stderr' M t t tp tin 2 c nhn bn. `/dev/tcp/HOST/PORT' Nu HOST (Nd: MY-CH) l mt tn my ch (Nd: hostname) hay a ch Mng quc t (Nd: Internet address) c hiu lc, v PORT (Nd: CNG) l mt s cng s nguyn hay tn dch v (Nd: integer port number or service name), Bash c m mt s kt ni TCP n cm (Nd: socket) tng ng. `/dev/udp/HOST/PORT' Nu HOST l mt tn my ch hay a ch Mng quc t c hiu lc, v PORT l mt s cng s nguyn hay tn dch v, Bash c m mt s kt ni UDP n cm tng ng. Mt s tht bi khi m hay to (Nd: A failure to open or create) mt tp tin lm cho s ti nh hng tht bi. Vic Ti nh hng u vo ----------------S ti nh hng u vo lm cho tp tin m tn ca n sinh t s khai trin ca WORD (Nd: T) c m cho vic c trn m t t tp tin `n', hay u vo chun (m t t tp tin 0) nu `n' khng c ch r. nh dng chung cho vic ti nh hng u vo l: [N][|]WORD Nu ton t ti nh hng l `>', v ty chn `noclobber' cho ni trang `set' c hot ha, s ti

nh hng s tht bi nu tp tin m tn ca n sinh ra t s khai trin ca WORD tn ti v l mt tp tin thng. Nu ton t ti nh hng l `>|', hay ton t ti nh hng l `>' v ty chn `noclobber' khng c hot ha, s ti nh hng c n lc (Nd: is attempted) ngay c nu tp tin m c gi tn (Nd: named) bi WORD tn ti. Vic Chp ni u ra c Ti nh hng --------------------------S ti nh hng u ra theo th thc (Nd: fashion) ny lm cho tp tin m tn ca n sinh ra t s khai trin ca WORD c m cho vic chp ni trn m t t tp tin N, hay u ra chun (m t t tp tin 1) nu N khng c ch r. Nu tp tin khng tn ti, n c to. nh dng chung cho vic chp ni u ra l: [N]>>WORD Vic Ti nh hng u ra Chun v Li Chun ---------------------------------------------Bash cho php c hai u ra chun (m t t tp tin 1) v u ra li chun (m t t tp tin 2) c ti nh hng n tp tin m tn ca n l s khai trin ca WORD vi cu trc ny. C hai nh dng cho vic ti nh hng u ra chun v li chun: &>WORD v >&WORD Trong hai dng, ci u tin c thch hn. Ci ny tng ng v ng ngha hc (Nd: semantically) vi >WORD 2>&1 Cc Ti-liu--y (Nd: Here Documents) -------------Loi ti nh hng ny hng dn (Nd: instructs) h v c u vo t ngun hin hnh (Nd: current source) cho n khi mt dng m cha ch WORD (vi khng c cc du trng i cui no) c nhn thy. Tt c cc dng m c c ln n im sau c dng nh u vo chun cho mt lnh. nh dng ca cc ti-liu--y l: ' cc chuyn v hng bit tri v phi (Nd: left and right bitwise shifts) `= < >' s so snh `== !=' s bng (Nd: equality) v s khng bng/ s khc (Nd: inequality) `&' AND (Nd: V) hng bit `^' OR (Nd: HOC) loi tr hng bit (Nd: bitwise exclusive OR) `|' OR hng bit `&&'

AND lun l `||' OR lun l `expr ? expr : expr' (Nd: expr=expression=biu-thc?) s lng gi v iu kin `= *= /= %= += -= = &= ^= |=' s gn `expr1 , expr2' du phy Cc bin h v c cho php nh cc ton hng; s khai trin tham s c tin hnh trc khi biu thc c lng gi. Trong vng mt biu thc, cc bin h v c th (Nd: may) cng c tham chiu (Nd: referenced) bi tn m khng vi vic dng c php khai trin tham s. Gi tr ca mt bin c lng gi nh mt biu thc s hc khi n c tham chiu. Mt bin h v cn (Nd: need; c ngha gn vi "phi") khng c thuc tnh s nguyn ca n c bt (Nd: turned on) c dng trong mt biu thc. Cc hng m vi mt 0 dn u c din dch nh cc s bt phn. Mt `0x' hay `0X' dn u biu th thp lc phn. Nu khng, cc s gi dng (Nd: take the form) [BASE`#']N, trong BASE (Nd: C-S) l mt s thp phn gia 2 v 64 m biu din c s s hc, v N l mt s m trong/ theo (Nd: in) c s . Nu BASE`#' b b i, th c s 10 c dng. Cc ch s m ln hn 9 c biu din bi cc ch ci in thng, cc ch ci in hoa, `@', v `_', theo th t . Nu BASE l nh hn hay bng vi 36, cc ch ci in thng v in hoa c php (Nd: may) c dng thay th ln nhau (Nd: interchangably) biu din cc s gia 10 v 35. Cc ton t c lng gi theo th t ca tnh u tin ng trc. Cc biu thc con m trong cc du ngoc n c lng gi trc tin v c php (Nd: may) ginh quyn cc qui tc u tin ng trc trn. Tp tin: bashref.info, Node: (Cc)bit hiu, Next: Mngs, Prev: H v S hc, Up: Bash Features Cc Bit hiu (Nd: Aliases; c ngi dch l "b danh". Tuy nhin, y chng c g giu gim hay chng c hi kn no y.) ======= CC BIT HIU cho php mt chui c thay th cho mt t khi n c dng nh t u tin ca mt lnh n gin. H v duy tr mt danh sch ca cc bit hiu m c th (Nd: may) c t nh v

b b t nh vi cc lnh ni trang `alias' v `unalias'. T u tin ca mi lnh n gin, nu khng b ng ngoc trch dn, c kim tra xem n c mt bit hiu hay khng. Nu vy, t c thay th bi vn bn ca bit hiu. Tn bit hiu v vn bn thay th c php (Nd: may) cha bt k u vo h v c hiu lc no, m gm cc siu k t (Nd: metacharacters) h v, vi ngoi l rng tn bit hiu khng c php (Nd: may not) cha `='. T u tin ca vn bn thay th c kim tra tm cc bit hiu, nhng mt t m ging ht vi mt bit hiu m ang c khai trin th khng c khai trin mt ln th hai. y c ngha rng ngi ta c th t bit hiu (Nd: alias) `ls' cho (Nd: to) `"ls -F"', v d th, v Bash khng c khai trin mt cch qui vn bn thay th. Nu k t cui cng ca gi tr bit hiu l mt k t du cch hay tab, th t lnh (Nd: command word) tip theo m theo sau bit hiu cng c kim tra tm s khai trin bit hiu. Cc bit hiu c to v c lit k bng lnh `alias', v b ly i bng lnh `unalias'. Khng c c ch (Nd: mechanism) no cho vic dng cc tham t trong vn bn thay th, nh trong `csh'. Nu cc tham t c cn, mt hm h v s (Nd: should) c dng (*note Shell Functions:: (Nd: ch thch Cc Hm H v)). Cc bit hiu khng c khai trin khi h v l khng tng tc, tr khi ty chn h v `expand_aliases' c t nh bng cch dng `shopt' (*note Bash Builtins:: (ch thch Cc Ni trang ca Bash)). Cc qui tc v vic nh ngha v dng cc bit hiu l hi ri rm (Nd: are somewhat confusing). Bash lun lun c t nht mt dng hon chnh ca u vo trc khi cho thi hnh bt k ci no trong s cc lnh trn dng . Cc bit hiu c khai trin khi mt lnh c c, khng phi khi n c cho thi hnh. Do , mt s nh ngha bit hiu m xut hin trn cng dng nh mt lnh khc th khng c hiu qu (Nd: take effect) cho n khi dng tip theo ca u vo c c. Cc lnh m theo sau s nh ngha bit hiu trn dng th khng b nh hng bi bit hiu mi. S hnh x ny cng l mt vn (Nd: issue) khi cc hm c cho thi hnh. Cc bit hiu c khai trin khi mt s nh ngha hm c c, khng phi khi hm c cho thi hnh, do mt s nh ngha hm bn thn n l mt lnh ghp (Nd: compound). Nh mt h qu (Nd: consequence), cc bit hiu m c nh ngha trong mt hm th khng c sn cho n khi sau khi hm c cho thi hnh. an ton (Nd: To be safe), hy lun lun t nhng s nh ngha bit hiu trn mt dng ring r, v ng dng `alias' trong cc lnh ghp. Cho hu ht mi mc ch, cc hm h v c chung hn cc bit hiu. Tp tin: bashref.info, Node: Mngs, Next: The Directory Stack, Prev: (Cc)bit hiu, Up: Bash Features

Cc Mng (Nd: Arrays) ====== Bash cung cp cc bin mng mt chiu. Bt k bin no cng c php (Nd: may) c dng nh mt mng; ni trang `declare' s khai bo mt cch tng minh khai bo mt mng. Khng c gii hn ti a no trn kch c ca mt mng, hoc khng c bt k s i hi no rng cc thnh vin c ghi ch mc hay c gn mt cch k nhau (Nd: that members be indexed or assigned contiguously). Cc mng c da trn/ c gc l s khng (Nd: zero-based). Mt mng c to mt cch t ng nu bt k bin no c gn n bng cch dng c php name[SUBSCRIPT]=VALUE (Nd: name=tn, VALUE=GI-TR) SUBSCRIPT (Nd: CH-VIT-NH) c x l nh mt biu thc s hc m phi lng gi thnh (Nd: to) mt s ln hn hay bng vi s khng. khai bo mt cch tng minh mt mng, hy dng declare -a NAME C php declare -a NAME[SUBSCRIPT] cng c chp nhn; SUBSCRIPT b l i. Cc thuc tnh c th (Nd: may) c ch r cho mt bin mng bng cch dng cc ni trang `declare' v `readonly'. Mi thuc tnh p dng cho tt c cc thnh vin ca mt mng. Cc mng c gn n bng cch dng nhng s gn phc/ ghp (Nd: compound) thuc dng name=(value1 ... valueN) trong mi VALUE (Nd: GI-TR) thuc dng `[[SUBSCRIPT]=]'STRING (Nd: STRING=CHUI). Nu subscript theo ty chn c cung cp, s ch mc (Nd: index) c gn n; nu khng, s ch mc ca yu t m c gn l s ch mc cui cng m c gn n bi pht biu cng mt (Nd: plus one). Vic nh s ch mc (Nd: Indexing) khi u s khng. C php ny cng c chp nhn bi ni trang `declare'. Cc yu t mng c nhn c php (Nd: may) c gn n bng cch dng c php `name['SUBSCRIPT`]='VALUE m c gii thiu trn. Bt k yu t no ca mt mng u c th (Nd: may) c tham chiu bng cch dng `$ {name['SUBSCRIPT`]}'. Cc du ngoc xon c i hi trnh nhng s xung t vi cc ton t khai trin tn tp tin ca h v. Nu SUBSCRIPT l `@' hay `*', t khai trin thnh tt c cc thnh vin ca mng NAME. Cc subscript ny khc bit (Nd: differ) ch khi t xut hin trong vng cc du ngoc trch dn kp. Nu t c ng ngoc trch dn kp, `${name[*]}' khai trin thnh mt t n l vi gi tr ca mi thnh vin mng m c phn cch bi k t u tin ca bin `IFS', v `$ {name[@]}' khai trin mi yu t ca NAME thnh mt t ring r. Khi khng c cc thnh vin mng no, `${name[@]}' khai trin thnh khng c g (Nd: to nothing). Ci ny l tng t vi s khai trin

ca cc tham s c bit `@' v `*'. `${#name['SUBSCRIPT`]}' khai trin thnh chiu di ca `$ {name['SUBSCRIPT`]}'. Nu SUBSCRIPT l `@' hay `*', s khai trin l s ca cc yu t trong mng. Vic tham chiu mt bin mng m khng vi mt subscript th tng ng vi vic tham chiu yu t s khng. Ni trang `unset' c dng hy (Nd: destroy) cc mng. `unset' NAME[SUBSCRIPT] hy yu t mng s ch mc SUBSCRIPT. `unset' NAME, trong NAME l mt mng, ly i ton b mng. Mt subscript `*' hay `@' cng ly i ton b mng. Cc ni trang `declare', `local', v `readonly' mi ci chp nhn mt ty chn `-a' ch r mt mng. Ni trang `read' chp nhn mt ty chn `-a' gn mt danh sch ca cc t m c c t u vo chun n mt mng, v c th c cc gi tr t u vo chun vo cc yu t mng ring l (Nd: individual). Cc ni trang `set' v `declare' hin th cc gi tr mng theo mt cch m cho php chng c dng li nh u vo. Tp tin: bashref.info, Node: The Directory Stack, Next: Printing mt(a) Prompt, Prev: Mngs, Up: Bash Features Chng/ xp Th mc (Nd: The Directory Stack) =================== * Menu: * Directory Stack Ni trangs:: Bash ni trang lnhs to thao tc the th mc stack.

Chng th mc l mt danh sch ca cc th mc c thm gn y. Ni trang `pushd' thm cc th mc vo chng khi (Nd: as) n thay i th mc hin hnh, v ni trang `popd' ly i cc th mc c ch r khi chng v thay i th mc hin hnh thnh th mc m b ly i. Ni trang `dirs' hin th ni dung ca chng th mc. Ni dung ca chng th mc cng c th thy/ kh kin/ hu hnh (Nd: visible) nh gi tr ca bin h v `DIRSTACK'. Tp tin: bashref.info, Node: Directory Stack Ni trangs, Up: The Directory Stack Cc Ni trang Chng Th mc -----------------------`dirs' dirs [+N | -N] [-clpv] Hin th danh sch ca cc th mc c nh gn y. Cc th mc c thm vo danh sch bng

(Nd: with) lnh `pushd'; lnh `popd' ly i cc th mc khi danh sch. `+N' Hin th th mc th N (m m (Nd: counting) t bn tri ca danh sch m c in bi `dirs' khi c triu gi khng vi cc ty chn), bt u bng (Nd: starting with) s khng. `-N' Hin th th mc th N (m m t bn phi ca danh sch m c in bi `dirs' khi c triu gi khng vi cc ty chn), bt u bng s khng. `-c' Xa (Nd: Clears) chng th mc bng cch xa tt c cc yu t. `-l' Sinh mt s lit k di hn; nh dng lit k mc nh dng mt du ng biu th th mc home (Nd: nh). `-p' Lm cho `dirs' in chng th mc vi mt mc nhp mi dng. `-v' Lm cho `dirs' in chng th mc vi mt mc nhp mi dng, ghi tin t mi mc nhp bng s ch mc ca n m trong chng. `popd' popd [+N | -N] [-n] Ly i mc nhp trn cng (Nd: top) khi chng th mc, v `cd' n (Nd: to) th mc trn cng mi. Khi khng c cc tham t no c cho, `popd' ly i th mc trn cng khi chng v tin hnh mt `cd' n (Nd: to) th mc trn cng mi. Cc yu t c nh s t 0 bng cch khi u th mc u tin m c lit k bng `dirs'; t.l. (Nd: i.d.=id est=tc l), `popd' tng ng vi `popd +0'. `+N' Ly i th mc th N (m m t bn tri ca danh sch m c in bi `dirs'), khi u bng s khng. `-N' Ly i th mc th N (m m t bn phi ca danh sch m c in bi `dirs'), khi u bng s khng. `-n' c ch (Nd: Suppresses) s thay i bnh thng ca th mc khi ly i cc th mc khi chng,

ch chng l c thao tc (Nd: manipulated). `pushd' pushd [DIR | +N | -N] [-n] Lu th mc hin hnh ln nh ca chng th mc v ri `cd' n DIR (Nd: TH-MC). Vi khng c cc tham t no, `pushd' trao i (Nd: exchanges) hai th mc trn cng. `+N' a th mc th N (m m t bn tri ca danh sch m c in bi `dirs', bt u bng s khng) n nh ca danh sch bng cch quay (Nd: rotating) chng. `-N' a th mc th N (m m t bn phi ca danh sch m c in bi `dirs', bt u bng s khng) n nh ca danh sch bng cch quay chng. `-n' c ch s thay i bnh thng ca th mc khi thm cc th mc vo chng, ch chng l c thao tc. `DIR' (Nd: DIRECTORY=TH-MC) Lm cho th mc lm vic hin hnh l nh ca chng, v ri cho thi hnh th tng ng (Nd: equivalent) ca ``cd' DIR'. `cd' n DIR (Nd: `cd's to DIR). Tp tin: bashref.info, Node: Printing mt(a) Prompt, Next: The Restricted H v, Prev: The Directory Stack, Up: Bash Features Vic iu khin Du nhc ====================== Gi tr ca bin `PROMPT_COMMAND' c kho st ngay trc khi Bash in mi du nhc s cp. Nu `PROMPT_COMMAND' c t nh v c mt gi tr khc rng, th gi tr c cho thi hnh ht nh th (Nd: just as if) n c nh my trn dng lnh vy. Thm na, bng sau y m t cc k t c bit m c th xut hin trong cc bin du nhc: `\a' Mt k t chung. `\d' Ngy thng, theo nh dng "Weekday Month Date" (Nd: Ngy-trong-tun Thng Ngy-trong-

thng) (v.d., "Tue May 26" (Nd: Tue=th Ba, May=thng Nm)). `\D{FORMAT}' FORMAT (Nd: NH-DNG) c truyn n `strftime'(3) v kt qu c chn vo chui du nhc; mt FORMAT rng gy ra mt s biu din thi gian chuyn bit cho locale. Cc du ngoc xon c i hi. `\e' Mt k t escape (Nd: thot, lm thot; phm ?). `\h' Hostname (Nd: tn (my/ h thng) ch?), ln n `.' u tin. `\H' Hostname. `\j' S ca cc cng vic m hin c qun l bi h v. `\l' Tn gc (Nd: basename) ca tn thit b thit b u cui ca h v. `\n' Mt newline (Nd: k t dng mi?). `\r' Mt carriage return (Nd: k t v u dng?). `\s' Tn ca h v, tn gc ca `$0' (phn (Nd: portion) m theo sau du s cui cng). `\t' Thi gian, theo nh dng HH:MM:SS (Nd: GI:PHT:GIY, mi thnh phn c hai ch s) 24 gi. `\T' Thi gian, theo nh dng HH:MM:SS 12 gi. `\@' Thi gian, theo nh dng am/pm (Nd: sng/ chiu) 12 gi.

`\A' Thi gian, theo nh dng HH:MM (Nd: GI:PHT, mi thnh phn c hai ch s) 24 gi. `\u' Tn ngi dng (Nd: username) ca ngi dng hin hnh. `\v' Phin bn (Nd: version) ca Bash (v.d., 2.00) `\V' Bn/ t pht hnh (Nd: release) ca Bash, phin bn + mc/ cp/ bc/ v p (Nd: patchlevel) (v.d., 2.00.0) `\w' Th mc lm vic hin hnh. `\W' Tn gc ca `$PWD'. `\!' S lch s ca lnh ny. `\#' S lnh ca lnh ny. `\$' Nu uid (Nd: user identifier = s nh danh/ nh danh t ngi dng) c hiu lc l 0, `#', nu khng l (Nd: otherwise) `$'. `\NNN' K t m m ASCII ca n l gi tr bt phn NNN. `\\' Mt du s ngc. `\[' Bt u mt trnh t ca cc k t khng in (Nd: non-printing). Ci ny c th (Nd: could) c dng nhng (Nd: embed; c th dch l "chn"?) mt trnh t iu khin thit b u cui vo du nhc. `\]'

Kt thc mt trnh t ca cc k t khng in. S lnh v s lch s thng l khc nhau: s lch s ca mt lnh l v tr ca n trong danh sch lch s, m c th (Nd: may) gm cc lnh m c phc hi (Nd: restored) t tp tin lch s (*note Bash History Facilities:: (Nd: ch thch Cc Tin ch Lch s ca Bash)), trong khi s lnh l v tr trong trnh t ca cc lnh m c cho thi hnh trong phin lm vic (Nd: session) h v hin hnh. Sau khi chui c gii m (Nd: decoded), n c khai trin qua s khai trin tham s, s thay th lnh, s khai trin s hc, v s ly i du ngoc trch dn (Nd: quote removal), ty vo gi tr ca ty chn h v `promptvars' (*note Bash Builtins:: (Nd: ch thch Cc Ni trang ca Bash)). Tp tin: bashref.info, Node: The Restricted H v, Next: Bash POSIX Mode, Prev: Printing mt(a) Prompt, Up: Bash Features H v b Hn ch ==================== Nu Bash c khi ng vi tn `rbash', hay ty chn `--restricted' hay `-r' c cung cp lc triu gi, h v tr nn b hn ch. Mt h v b hn ch c dng c cu (Nd: set up) mt mi trng m b kim sot nhiu hn (Nd: more controlled than) h v tiu chun. Mt h v b hn ch hnh x mt cch ging ht (Nd: identically) vi `bash' vi ngoi l rng nhng vic sau (Nd: the following) khng c cho php (Nd: disallowed) hay khng c tin hnh: * Vic thay i cc th mc bng ni trang `cd'. * Vic t nh hay vic b t nh cc gi tr ca cc bin `SHELL', `PATH', `ENV', hay `BASH_ENV'. * Vic ch r cc tn lnh m cha cc du s. * Vic ch r mt tn tp tin m cha mt du s nh mt tham t cho (Nd: to) lnh ni trang `.'. * Vic ch r mt tn tp tin m cha mt du s nh mt tham t cho ty chn `-p' cho lnh ni trang `hash'. * Vic nhp khu (Nd: Importing) nhng s nh ngha hm t mi trng h v lc khi ng (Nd: startup). * Vic phn tch ng php gi tr ca `SHELLOPTS' t mi trng h v lc khi ng. * Vic ti nh hng u ra bng cch dng cc ton t ti nh hng `>', `>|', `', `>&', `&>', v

`>>'. * Vic dng ni trang `exec' thay th h v bng mt lnh khc. * Vic thm hay vic xa cc lnh ni trang vi cc ty chn `-f' v `-d' cho ni trang `enable'. * Vic dng lnh ni trang `enable' kh ha (Nd: enable) cc ni trang h v b bt kh ha (Nd: disabled). * Vic ch r ty chn `-p' cho ni trang `command'. * Vic tt i (Nd: Turning off) ch b hn ch bng `set +r' hay `set +o restricted'. Cc hn ch (Nd: restrictions) ny b p tun theo (Nd: enforced) sau khi bt k cc tp tin startup no c c. Khi mt lnh m c tm ra l mt kch bn h v c cho thi hnh (*note Shell Scripts:: (Nd: ch thch Cc Kch bn H v)), `rbash' tt i bt k cc hn ch no trong h v m c sinh (Nd: spawned) cho thi hnh kch bn. Tp tin: bashref.info, Node: Bash POSIX Mode, Prev: The Restricted H v, Up: Bash Features Ch POSIX ca Bash =============== Vic khi ng Bash bng ty chn dng lnh `--posix' hay vic cho thi hnh `set -o posix' trong khi Bash ang chy s lm cho Bash tun theo (Nd: conform) gn gi hn vi tiu chun POSIX 1003.2 bng cch thay i s hnh x so khp ci m c ch r bi POSIX trong cc khu vc/ lnh vc (Nd: areas) ni m ci mc nh ca Bash l khc bit (Nd: Starting Bash with the `--posix' commandline option or executing `set -o posix' while Bash is running will cause Bash to conform more closely to the POSIX 1003.2 standard by changing the behavior to match that specified by POSIX in areas where the Bash default differs.). Khi c triu gi nh `sh', Bash i vo ch POSIX sau khi c cc tp tin startup. Danh sch sau y l nhng g c thay i khi `ch POSIX' ang c hiu lc (Nd: is in effect): 1. Khi mt lnh trong bng bm (Nd: hash) khng cn tn ti na, Bash s lc sot li (Nd: re-search; c th nhm vi "research") `$PATH' tm ra v tr mi. Ci ny l cng c sn vi `shopt -s checkhash'.

2. Thng bo m c in bi m v cc ni trang iu khin cng vic (Nd: printed by the job control code and builtins) khi mt cng vic thot vi mt tnh trng khc khng l `Done(status)' (Nd: lm xong(tnh trng)). 3. Thng bo m c in bi m v cc ni trang iu khin cng vic khi mt cng vic c cho dng l `Stopped(SIGNAME)' (Nd: dng(TN-TN-HIU), trong SIGNAME l, v d, `SIGTSTP'. 4. Cc t c dnh ring khng c php (Nd: may not) c t bit danh. 5. Nhng s khai trin `PS1' v `PS2' POSIX 1003.2 ca `!' thnh s lch s v `!!' thnh `!' c hot ha, v s khai trin tham s c tin hnh trn cc gi tr ca `PS1' v `PS2' bt chp vic t nh ca ty chn `promptvars'. 6. Cc li ghi ch tng tc c hot ha theo mc nh. (D sao th Bash vn lm chng bt (Nd: has them on) theo mc nh.) 7. Cc tp tin startup POSIX 1003.2 c cho thi hnh (`$ENV') hn l cc tp tin Bash bnh thng. 8. S khai trin du ng ch c tin hnh trn (Nd: on) nhng s gn m ng trc mt tn lnh, hn l trn (Nd: on) tt c cc pht biu gn trn dng. 9. Tp tin lch s mc nh l `~/.sh_history' (y l gi tr mc nh ca `$HISTFILE'). 10. u ra ca `kill -l' in tt c cc tn tn hiu ln mt dng n l, c phn cch bi cc du cch. 11. Cc h v khng tng tc thot nu FILENAME (Nd: TN-TP-TIN) trong `.' FILENAME khng c tm thy. (Nd: Non-interactive shells exit if FILENAME in `.' FILENAME is not found.) 12. Cc h v khng tng tc thot nu mt li c php trong mt s khai trin s hc gy ra mt biu thc v hiu lc. 13. Cc ton t ti nh hng khng tin hnh s khai trin tn tp tin trn t trong (Nd: on the word in) s ti nh hng tr khi h v l tng tc. 14. Cc ton t ti nh hng khng tin hnh vic chia tch t trn t trong s ti nh hng. 15. Cc tn hm phi l cc `tn' h v c hiu lc. l, chng khng c php (Nd: may not) cha cc k t m khc hn cc ch ci, cc ch s, v cc du gch ngang thp (Nd: underscores), v khng c php bt u bng mt ch s. Vic khai bo mt hm vi mt tn v hiu lc gy mt li c php ch mng (Nd: fatal) trong cc h v khng tng tc.

16. Cc ni trang `c bit' POSIX 1003.2 c tm ra trc cc hm h v trong qu trnh tra cu lnh. 17. Nu mt ni trang c bit POSIX 1003.2 tr v mt tnh trng li, mt h v khng tng tc thot. Cc li ch mng l nhng ci m c lit k trong tiu chun POSIX.2, v gm nhng th nh vic truyn cc ty chn khng ng, cc li ti nh hng, cc li gn bin cho nhng s gn m ng trc tn lnh, v c th (Nd: so on). 18. Nu ni trang `cd' tm ra mt th mc thay i n vic dng `$CDPATH', gi tr m n gn n bin `PWD' khng cha bt k cc lin kt tng trng no, nh th `cd -P' c cho thi hnh vy. 19. Nu `CDPATH' c t nh, ni trang `cd' s khng chp ni kiu n (Nd: implicitly) th mc hin hnh vo n. y c ngha rng `cd' s tht bi nu khng c tn th mc c hiu lc no c th c xy dng (Nd: constructed) t bt k ci no trong s cc mc nhp trong `$CDPATH', ngay c nu mt th mc (Nd: the a directory) vi cng tn nh tn m c cho nh mt tham t cho `cd' tn ti trong th mc hin hnh. 20. Mt h v khng tng tc thot vi mt tnh trng li nu mt li gn bin xy ra khi khng c tn lnh no theo sau cc pht biu gn. Mt li gn bin xy ra, v d th, khi c gn mt gi tr n mt bin ch c. 21. Mt h v khng tng tc thot vi mt tnh trng li nu bin lp (Nd: the iteration variable; th ra trong cc v d v Pascal "for i:=..."!) trong mt pht biu `for' hay bin chn (Nd: the selection variable) trong mt pht biu `select' l mt bin ch c. 22. S thay th tin trnh l khng c sn. 23. Cc pht biu gn m ng trc cc ni trang c bit POSIX 1003.2 vn cn trong mi trng h v sau khi ni trang hon tt. 24. Cc pht biu gn m ng trc cc li gi (Nd: calls) hm h v vn cn trong mi trng h v sau khi hm tr v/ tr v (Nd: returns), nh th mt lnh ni trang c bit POSIX c cho thi hnh vy. 25. Cc lnh ni trang `export' v `readonly' hin th u ra ca chng theo nh dng m c i hi bi POSIX 1003.2. 26. Ni trang `trap' hin th cc tn tn hiu m khng vi `SIG' dn u. 27. Cc ni trang `.' v `source' khng lc sot th mc hin hnh tm tham t tn tp tin nu n khng

c tm thy bng cch lc sot `PATH'. 28. Cc h v con m c sinh thi hnh nhng s thay th lnh th tha k gi tr ca ty chn `-e' t h v cha m. Khi khng trong ch POSIX, Bash xa (Nd: clears) ty chn `-e' trong cc h v con nh th. 29. S khai trin bit hiu lun lun c hot ha, ngay c trong cc h v khng tng tc. 30. Khi ni trang `set' c triu gi m khng vi cc ty chn, n khng hin th cc tn v nhng s nh ngha hm h v. 31. Khi ni trang `set' c triu gi m khng vi cc ty chn, n hin th cc gi tr bin m khng vi cc du ngoc trch dn, tr khi chng cha cc siu k t h v, ngay c nu kt qu cha cc k t khng in (Nd: nonprinting). 32. Khi ni trang `cd' c triu gi trong ch LOGICAL (Nd: LUN-L), v tn ng dn m c xy dng t `$PWD' v tn th mc m c cung cp nh mt tham t khng ch n mt th mc hin hu, `cd' s tht bi thay v ri tr v (Nd: falling back to) ch PHYSICAL (Nd: VT-L). C s hnh x POSIX 1003.2 khc m Bash khng thi hnh (Nd: implement). Mt cch chuyn bit (Nd: Specifically): 1. Cc pht biu gn nh hng n mi trng thi hnh ca tt c cc ni trang, khng ch nhng ci c bit. 2. Khi mt h v con c to cho thi hnh mt kch bn h v vi quyn (Nd: permission) thi hnh, nhng khng vi mt `#!' dn u, Bash t nh `$0' tn ng dn y ca kch bn nh c tm ra bng cch lc sot `$PATH', hn l lnh nh c nh my bi ngi dng. 3. Khi dng `.' to ngun (Nd: to source) mt kch bn h v m c tm ra trong `$PATH', bash kim tra cc bit quyn thi hnh hn l c cc bit quyn, ch (Nd: just) nh th n ang tm mt lnh vy. Tp tin: bashref.info, Node: Job Control, Next: Dnging Lch s Interactively, Prev: Bash Features, Up: Top S iu khin Cng vic *********** Chng ny bn lun v vic s iu khin cng vic l g, cch n lm vic, v cch Bash cho php bn truy cp cc tin ch/ tin nghi (Nd: facilities) ca n.

* Menu: * Job Control Basics:: How cng vic s iu khin works. * Job Control Ni trangs:: Bash ni trang lnhs (mc)dnged to interact with cng vic iu khin. * Job Control Bins:: Bins Bash dng(uses) to customize cng vic iu khin. Tp tin: bashref.info, Node: Job Control Basics, Next: Job Control Ni trangs, Up: Job Control Cc Khi nim c bn (Nd: Basics) iu khin Cng vic ================== iu khin cng vic ch n kh nng (Nd: ability) lm dng (nh ch) mt cch chn lc s thi hnh ca cc tin trnh v tip tc (phc hi) s thi hnh ca chng vo mt (thi) im (Nd: point) sau . Mt ngi dng mt cch tiu biu l dng (Nd: employs) tin ch (Nd: facility) ny qua mt giao din tng tc m c cung cp cng nhau (Nd: jointly) bi trnh iu khin (Nd: driver) thit b u cui ca h thng v Bash. H v lin kt (Nd: associates) mt CNG VIC (Nd: JOB) vi mi ng ng. N gi mt bng ca cc cng vic hin ang thi hnh, m c th (Nd: may) c lit k bng lnh `jobs'. Khi Bash khi ng mt cng vic mt cch khng ng b, n in mt dng m trng nh: [1] 25647 m ch rng cng vic ny l cng vic s 1 v rng DT tin trnh ca tin trnh cui cng trong ng ng m c lin kt vi cng vic ny l 25647. Tt c cc tin trnh trong mt ng ng n l l cc thnh vin ca cng cng vic. Bash dng s tru tng ha (Nd: abstraction) CNG VIC nh nn tng (Nd: basis) cho s iu khin cng vic. lm tin nghi (Nd: facilitate) s thi hnh (Nd: implementation) ca giao din ngi dng i vi s iu khin cng vic, h iu hnh duy tr nim (Nd: notion) v (Nd: of) mt DT nhm tin trnh thit b u cui hin hnh. Cc thnh vin ca nhm tin trnh ny (cc tin trnh m DT nhm tin trnh ca chng l bng vi DT nhm tin trnh thit b u cui hin hnh) nhn cc tn hiu c sinh bi bn phm nh l `SIGINT'. Cc tin trnh ny c ni l trong nn trc/ tin cnh (Nd: foreground). Cc tin trnh nn sau/ hu cnh (Nd: Background) l nhng ci m DT nhm tin trnh ca chng khc vi ca thit b u cui; cc tin trnh nh th l min vi (Nd: immune to) cc tn hiu c sinh bi bn phm. Ch c cc tin trnh nn trc/ trc nn (Nd: foreground) l c cho php c t hay vit n thit b u cui. Cc tin trnh nn sau/ sau nn (Nd: Background) m c c t (vit n) thit b u cui c gi (Nd: sent) mt tn hiu `SIGTTIN' (`SIGTTOU') bi trnh iu khin thit b u cui, m, tr khi b tm bt (Nd: caught), nh ch tin trnh.

Nu h iu hnh m trn Bash ang chy h tr s iu khin cng vic, Bash cha cc tin ch (Nd: facilities) dng n. Vic nh my k t NH CH (Nd: SUSPEND) (mt cch tiu biu l `^Z', Control-Z) trong khi mt tin trnh ang chy lm cho tin trnh b lm dng (Nd: stopped) v tr s iu khin v cho Bash. Vic nh my k t S NH CH C TR HON (Nd: DELAYED SUSPEND) (mt cch tiu biu l `^Y', Control-Y) lm cho tin trnh b lm dng khi n c c u vo t thit b u cui, v lm s iu khin c tr v cho Bash. Ngi dng sau thao tc tnh trng (Nd: state) ca cng vic ny, bng cch dng lnh `bg' lm n tip tc (Nd: to continue it) trong hu cnh, lnh `fg' lm n tip tc trong tin cnh, hay lnh `kill' kh (Nd: kill) n. Mt `^Z' c hiu lc (Nd: takes effect) lp tc, v c hiu ng ph/ tc dng ph (Nd: side effect) thm vo l (Nd: of) lm cho u ra cn lng (Nd: pending output) v s nh my trc (Nd: typeahead) b b i (Nd: discarded). C mt s cch ch n (Nd: refer to) mt cng vic trong h v (Nd: T "shell" c v kh hiu hoc kh dch. Thm ch trong Ubuntu, hnh nh n c dch l "trnh bao", m d c lin tng nh "wrapper" hay "packager" hay ci g xa l khc. Tuy nhin, nu ta xem xt t "kernel", "nhn" ca h iu hnh, "shell" s d hiu v d c dch hn). K t `%' gii thiu mt tn cng vic. S cng vic `n' c th c ch n (Nd: may be referred to) nh `%n'. Cc k hiu `%%' v `%+' ch n nim ca h v v (Nd: of) cng vic hin hnh, m l cng vic cui cng m b cho dng trong khi n trong tin cnh hay c khi ng trong hu cnh. Cng vic trc c th (Nd: may) c tham chiu (Nd: referenced) bng cch dng `%-'. Trong u ra m thuc v (Nd: pertaining to) cc cng vic (v.d., u ra ca lnh `jobs'), cng vic hin hnh lun lun c gn c (Nd: flagged) bng mt `+', v cng vic trc bng mt `-'. Mt cng vic cng c th (Nd: may) c ch n (Nd: referred to) bng cch dng mt tin t ca tn m c dng bt u n, hay bng cch dng mt chui con m xut hin trong dng lnh ca n. V d, `%ce' ch n mt cng vic `ce' b cho dng. Vic dng `%?ce', mt khc (Nd: on the other hand), ch n bt k cng vic no m cha chui `ce' trong dng lnh ca n. Nu tin t hay chui con so khp nhiu hn mt cng vic, Bash bo co mt li. Vic mt cch n gin t/ gi tn (Nd: naming) mt cng vic c th c dng em n vo tin cnh: `%1' l mt t ng ngha (Nd: synonym) cho `fg %1', em cng vic 1 t hu cnh vo tin cnh. Mt cch tng t, `%1 &' phc hi cng vic 1 trong hu cnh, tng ng vi `bg %1' H v bit (Nd: learns) lp tc bt k khi no mt cng vic thay i trng thi. Bnh thng, Bash ch cho n khi n sp in mt du nhc trc khi bo co cc thay i trong mt tnh trng ca cng vic (ND: so as to) khng lm gin on bt k u ra khc no. Nu ty chn `-b' cho/ ca (Nd: to; ging nh "a key to a lock"="mt cha kha ca mt ci kha" hay "a solution to a problem"="mt gii php ca mt vn ") ni trang `set' c hot ha, Bash bo co cc thay i nh th lp tc (*note The Set Builtin:: (Nd: ch thch Ni trang Set)). Bt k by no ln `SIGCHLD' u c cho thi hnh cho mi tin trnh con m thot.

Nu mt c gng thot Bash l trong khi (Nd: is while) cc cng vic b cho dng, h v in mt thng bo m cnh bo rng c cc cng vic b cho dng. Lnh `jobs' sau c th (Nd: may) c dng iu tra (Nd: inspect) tnh trng ca chng. Nu mt n lc th nh thot c lm m khng vi mt lnh can thip/ chen ngang (Nd: intervening), Bash khng in mt cnh bo khc, v cc cng vic b cho dng b chm dt. Tp tin: bashref.info, Node: Job Control Ni trangs, Next: Job Control Bins, Prev: Job Control Basics, Up: Job Control Cc Ni trang iu khin Cng vic ==================== `bg' bg [JOBSPEC] Phc hi cng vic b nh ch JOBSPEC (Nd: JOB-SPECIFICATION=S-CH-R-CNG-VIC) trong hu cnh, nh th n c khi ng vi `&' vy. Nu JOBSPEC khng c cung cp, cng vic hin hnh c dng. Tnh trng tr v l s khng tr khi n c cho chy khi s iu khin cng vic khng c hot ha, hay, khi c cho chy vi s iu khin cng vic m c hot ha, nu JOBSPEC khng c tm ra hay JOBSPEC ch r mt cng vic m c khi ng m khng vi s iu khin cng vic. `fg' fg [JOBSPEC] Phc hi cng vic JOBSPEC trong tin cnh v lm n thnh cng vic hin hnh (Nd: "Cng vic hin hnh" ngha l g?). Nu JOBSPEC khng c cung cp, cng vic hin hnh c dng. Tnh trng tr v l ci ca lnh m c t vo tin cnh, hay khc khng nu c cho chy khi s iu khin cng vic b bt kh ha (Nd: disabled) hay, khi c cho chy vi s iu khin cng vic m c hot ha, JOBSPEC khng ch r mt cng vic c hiu lc hay JOBSPEC ch r mt cng vic m c khi ng m khng vi s iu khin cng vic. `jobs' jobs [-lnprs] [JOBSPEC] jobs -x COMMAND [ARGUMENTS] Dng u tin lit k cc cng vic hot ng (Nd: active jobs). Cc ty chn c cc ngha sau: `-l' Lit k cc DT tin trnh thm vo thng tin bnh thng. `-n'

Hin th thng tin ch v cc cng vic m thay i tnh trng (Nd: only about jobs that have changed status) k t khi ngi dng c thng bo ln cui v tnh trng ca chng. `-p' Lit k ch DT tin trnh ca trnh dn u nhm tin trnh (Nd: process group leader) ca cng vic. `-r' Hn ch u ra n cc cng vic ang chy (Nd: Restrict output to running jobs). `-s' Hn ch u ra n cc cng vic b cho dng (Nd: Restrict output to stopped jobs). Nu JOBSPEC c cho, u ra b hn ch n/ i vi thng tin v cng vic (Nd: output is restricted to information about that job). Nu JOBSPEC khng c cung cp, tnh trng ca tt c cc cng vic c lit k. Nu ty chn `-x' c cung cp, `jobs' thay th bt k JOBSPEC no m c tm ra trong COMMAND (Nd: LNH) hay ARGUMENTS (Nd: CC-THAM-T) bng DT nhm tin trnh tng ng, v cho thi hnh COMMAND, truyn cho n cc ARGUMENT, tr v tnh trng thot ca n. `kill' kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] JOBSPEC or PID (Nd: or=hay/ hoc) kill -l [EXIT_STATUS] Gi (Nd: Send; c mt t c cng cch dch l "post") mt tn hiu m c ch r bi SIGSPEC (Nd: SIGNAL-SPECIFICATION=S-CH-R-TN-HIU) hay SIGNUM (Nd: SIGNALNUMBER=S-CA-TN-HIU) n tin trnh m c gi tn bi s ch r cng vic JOBSPEC (Nd: JOB-SPECIFICATION) hay DT tin trnh PID (Nd: PROCESS-ID). SIGSPEC hoc l mt tn tn hiu nh l `SIGINT' (vi hay khng vi tin t `SIG') hoc l mt s ca tn hiu; SIGNUM l mt s ca tn hiu. Nu SIGSPEC v SIGNUM l khng hin din, `SIGTERM' c dng. Ty chn `-l' lit k cc tn tn hiu. Nu bt k cc tham t no c cung cp khi `-l' c cho, cc tn ca cc tn hiu m tng ng vi cc tham t c lit k, v tnh trng tr v l s khng. EXIT_STATUS (Nd: TNH-TRNG-THOT) l mt s m ch r mt s ca tn hiu hay tnh trng thot ca mt tin trnh m b chm dt bi mt tn hiu. Tnh trng tr v l s khng nu t nht mt tn hiu c gi mt cch thnh cng, hay khc khng nu mt li xy ra hay mt ty chn v hiu lc b gp phi. `wait' wait [JOBSPEC hay PID] Ch cho n khi tin trnh con m c ch r bi DT tin trnh PID hay s ch r cng vic JOBSPEC thot v tr v tnh trng thot ca lnh cui cng m c ch. Nu mt s.c.r (Nd: s ch

r=specification=spec) cng vic c cho, tt c cc tin trnh trong cng vic c ch. Nu khng c cc tham t no c cho, tt c cc tin trnh con hin hot ha (Nd: currently active) c ch, v tnh trng tr v l s khng. Nu khng c JOBSPEC hoc khng c PID ch r mt tin trnh con hot ha ca h v, tnh trng tr v l 127. `disown' disown [-ar] [-h] [JOBSPEC ...] Khng vi cc ty chn, mi JOBSPEC b ly i khi bng ca cc cng vic hot ha. Nu ty chn `-h' c cho, cng vic khng b ly i khi bng, nhng c nh du `SIGHUP' khng c gi n cng vic nu h v nhn mt `SIGHUP'. Nu JOBSPEC l khng hin din, v khng c ty chn `-a' hoc khng c `-r' c cung cp, cng vic hin hnh c dng. Nu khng c JOBSPEC no c cung cp, ty chn `-a' c ngha l ly i hay nh du tt c cc cng vic; ty chn `-r' m khng vi mt tham t JOBSPEC hn ch s vn hnh i vi cc cng vic ang chy. `suspend' suspend [-f] nh ch s thi hnh ca h v ny cho n khi n nhn mt tn hiu `SIGCONT'. Ty chn `-f' c ngha l nh ch ngay c nu h v l mt h v ng nhp. Khi s iu khin cng vic l khng hot ha (Nd: active), cc ni trang `kill' v `wait' khng chp nhn cc tham t JOBSPEC. Chng phi c cung cp cc DT tin trnh. Tp tin: bashref.info, Node: Job Control Bins, Prev: Job Control Ni trangs, Up: Job Control Cc Bin iu khin Cng vic ===================== `auto_resume' Bin ny iu khin cch h v tng tc vi ngi dng v s iu khin cng vic. Nu bin ny tn ti th cc lnh n gin t n l m khng vi nhng s ti nh hng c x l nh cc ng c vin (Nd: candidates) cho s hi phc (Nd: resumption) ca mt cng vic hin hu. Khng c s m h no m c cho php; nu c nhiu hn mt cng vic m bt u bng chui c nh my, th cng vic c truy cp gn y nht s c chn. Tn ca mt cng vic b cho dng, trong hon cnh (Nd: context) ny, l dng lnh m c dng khi ng n. Nu bin ny c t nh gi tr `exact', chui m c cung cp phi so khp tn ca mt cng vic b cho dng mt cch chnh xc; nu c t nh `substring', chui m c cung cp cn so khp mt chui con ca tn ca mt cng vic b cho dng. Gi tr `substring' cung cp tnh chc nng m tng t vi DT cng vic ` %?' (*note Job Control Basics:: (Nd: ch thch Cc Khi nim c bn v iu khin Cng vic)). Nu c t nh bt k gi tr khc no, chui c cung cp phi l mt tin t ca mt tn ca cng vic b cho dng; ci ny cung cp tnh chc nng m tng t vi DT cng vic `%'.

Tp tin: bashref.info, Node: Dnging Lch s Interactively, Next: Lnh Line Editing, Prev: Job Control, Up: Top Vic Dng Lch s Mt cch tng tc *************************** Chng ny m t cch dng Th vin Lch s GNU (Nd: GNU History Library) mt cch tng tc, t lp trng (Nd: standpoint) ca mt ngi dng. N nn c xem nh s hng dn ca mt ngi dng. Cho thng tin v vic dng Th vin Lch s GNU trong cc chng trnh khc, hy xem S tay Th vin Readline GNU (Nd: GNU Readline Library Manual). * Menu: * Bash Lch s Facilities:: How Bash lets bn thao tc ca bn lnh lch s. * Bash Lch s Ni trangs:: The Bash ni trang lnhs that thao tc the lnh lch s. * Lch s Interaction:: What n(it) feels like dnging Lch s nh(as) mt(a) ngi dng. Tp tin: bashref.info, Node: Bash Lch s Facilities, Next: Bash Lch s Ni trangs, Up: Dnging Lch s Interactively Cc Tin ch Lch s ca Bash ======================= Khi ty chn `-o history' cho ni trang `set' c hot ha (*note The Set Builtin:: (Nd: ch thch Ni trang Set)), h v cung cp s truy cp n "lch s lnh", danh sch ca cc lnh m c nh my trc . Gi tr ca bin h v `HISTSIZE' c dng nh s ca cc lnh lu trong mt danh sch lch s. Vn bn ca cc lnh `$HISTSIZE' cui cng (mc nh 500) c lu. H v tr mi lnh trong danh sch lch s trc (Nd: prior to) s khai trin tham s v bin nhng sau khi s khai trin lch s c tin hnh, ty vo cc gi tr ca cc bin h v `HISTIGNORE' v `HISTCONTROL'. Khi h v khi ng (Nd: starts up), lch s c khi to ha (Nd: initialized) t tp tin m c gi tn bi bin `HISTFILE' (mc nh `~/.bash_history'). Tp tin m c gi tn bi gi tr ca `HISTFILE' b ct ct, nu cn, cha khng nhiu hn cht no s cc dng m c ch r bi gi tr ca bin `HISTFILESIZE'. Khi mt h v tng tc thot, cc dng `$HISTSIZE' cui cng c chp t danh sch lch s n tp tin m c gi tn bi `$HISTFILE'. Nu ty chn h v `histappend' c t nh (*note Bash Builtins:: (ch thch Cc Ni trang ca Bash)), cc dng c chp ni n tp tin lch s, nu khng th tp tin lch s b vit . Nu `HISTFILE' c b t nh, hay nu tp tin lch s l khng th vit, lch s khng c lu. Sau khi lu lch s, tp tin lch s b ct ct cha khng nhiu hn cht no so vi `$HISTFILESIZE' dng. Nu `HISTFILESIZE' khng c t nh, khng c s ct ct no c tin hnh.

Lnh ni trang `fc' c th (Nd: may) c dng lit k hay bin tp v ti thi hnh mt phn (Nd: portion) ca danh sch lch s. Ni trang `history' c th (Nd: may) c dng hin th hay bin ci danh sch lch s v thao tc tp tin lch s. Khi dng vic bin tp dng lnh, cc lnh tm kim/ lc sot (Nd: search) l c sn trong mi ch bin tp m cung cp s truy cp n danh sch lch s (*note Commands For History:: (Nd: ch thch Cc Lnh Cho Lch s)). H v cho php s kim sot trn vic cc lnh no c lu ln danh sch lch s. Cc bin `HISTCONTROL' v `HISTIGNORE' c th (Nd: may) c t nh lm cho h v lu ch mt tp con ca cc lnh m c nhp. Ty chn h v `cmdhist', nu c hot ha, lm cho h v c lu mi dng ca mt lnh a dng vo cng mc nhp lch s, thm cc du chm phy ni m cn bo ton s ng n v c php. Ty chn h v `lithist' lm cho h v lu lnh vi cc newline c nhng thay v cc du chm phy. Ni trang `shopt' c dng t nh cc ty chn ny. *Note Bash Builtins:: (Nd: Ch thch Cc Ni trang ca Bash), cho mt s m t v `shopt'. Tp tin: bashref.info, Node: Bash Lch s Ni trangs, Next: Lch s Interaction, Prev: Bash Lch s Facilities, Up: Dnging Lch s Interactively Cc Ni trang Lch s ca Bash ===================== Bash cung cp hai lnh ni trang m thao tc danh sch lch s v tp tin lch s. `fc' `fc [-e ENAME] [-nlr] [FIRST] [LAST]' `fc -s [PAT=REP] [COMMAND]' C nh/ Sa cha Lnh (Nd: Fix Command). Trong dng u tin, mt phm vi ca cc lnh t FIRST (Nd: U-TIN) n LAST (Nd: CUI-CNG) c chn t danh sch lch s. C hai FIRST v LAST u c th/ c php (Nd: may) c ch r nh mt chui ( nh v lnh gn y nht m bt u bng chui ) hay nh mt s (mt s ch mc (Nd: index) vo danh sch lch s, trong mt s m c dng nh mt di (Nd: offset) t s lnh hin hnh). Nu LAST khng c ch r, n c t nh FIRST. Nu FIRST khng c ch r, n c t nh lnh trc cho vic bin tp v -16 cho vic lit k (Nd: If FIRST is not specified it is set to the previous command for editing and -16 for listing). Nu c `-l' c cho, cc lnh c lit k trn u ra chun. C `-n' c ch cc s lnh khi lit k. C `-r' o ngc th t ca vic lit k (Nd: the listing). Nu khng, trnh bin tp m c cho bi ENAME (Nd: EDITOR-NAME=TN-TRNH-BIN-TP) c triu gi trn mt tp tin m cha cc lnh . Nu ENAME khng c cho, gi tr ca s khai trin bin sau y c dng: `$ {FCEDIT:-${EDITOR:-vi}}'. Ci ny ni l dng (Nd: says to use) gi tr ca bin `FCEDIT' nu c t nh, hay gi tr ca bin `EDITOR' nu ci c t nh, hay `vi' nu khng c ci no (trong hai ci) (Nd: neither) c t nh. Khi vic bin tp hon tt, cc lnh c bin tp c vng li (Nd: echoed) v c cho thi hnh.

Trong dng th nh, COMMAND (Nd: LNH) c ti cho thi hnh sau khi mi th hin/ biu th (Nd: instance) ca PAT (Nd: PATTERN=DNG-THC?) trong lnh c chn c thay th bi REP (Nd: REPLACEMENT=S-THAY-TH?). Mt bit hiu c ch dng vi lnh `fc' l `r='fc -s'', vic nh my `r cc' cho chy lnh cui cng m bt u bng `cc' v vic nh my `r' ti cho thi hnh lnh cui cng (*note Aliases:: (Nd: ch thch Cc Bit hiu)). `history' history [N] history -c history -d OFFSET history [-anrw] [FILENAME] history -ps ARG Vi khng c ty chn cc no, hin th danh sch lch s vi cc s dng. Cc dng m c ghi tin t bng mt `*' c bin ci. Mt tham t N lit k ch N dng cui cng. Cc ty chn, nu c cung cp, c cc ngha sau y: `-c' Xa (Nd: Clear) danh sch lch s. Ci ny c th (Nd: may) c kt hp vi cc ty chn cn li thay th danh sch lch s mt cch hon ton (Nd: completely). `-d OFFSET' Xa (Nd: Delete) mc nhp lch s v tr OFFSET (Nd: -DI). OFFSET nn (Nd: should) c ch r nh n xut hin khi lch s c hin th. `-a' Chp ni cc dng lch s mi (cc dng lch s m c nhp k t khi u ca phin lm vic Bash hin hnh) n tp tin lch s. `-n' Chp ni cc dng lch s m khng c c ri t tp tin lch s n danh sch lch s hin hnh. y l cc dng m c chp ni n tp tin lch s k t khi u ca phin lm vic Bash hin hnh. `-r' c tp tin lch s hin hnh v chp ni ni dung ca n n danh sch lch s. `-w'

Vit ra (Nd: Write out) lch s hin hnh n tp tin lch s. `-p' Tin hnh (Nd: Perform) s thay th lch s trn cc ARG (Nd: ARGUMENT=THAM-T) v hin th kt qu trn u ra chun, m khng vi vic tr cc kt qu trong danh sch lch s. `-s' Cc ARG c thm vo kt thc ca danh sch lch s nh mt mc nhp n l. Khi bt k ci no trong s cc ty chn `-w', `-r', `-a', hay `-n' c dng, nu FILENAME (Nd: TN-TP-TIN) c cho, th n c dng nh tp tin lch s. Nu khng, th gi tr ca bin `HISTFILE' c dng. Tp tin: bashref.info, Node: Lch s Interaction, Prev: Bash Lch s Ni trangs, Up: Dnging Lch s Interactively S khai trin Lch s ================= Th vin Lch s cung cp mt c tnh khai trin lch s m l tng t vi s khai trin lch s m c cung cp bi `csh'. Phn ny m t c php m c dng thao tc thng tin lch s. Nhng s khai trin lch s gii thiu cc t t danh sch lch s vo lung u vo (Nd: input stream), lm vic lp li cc lnh thnh d dng (Nd: making it easy to repeat commands), chn cc tham t cho mt lnh trc vo dng u vo hin hnh, hay sa cc li trong cc lnh trc mt cch nhanh chng. S khai trin lch s din ra (Nd: takes place) trong hai phn. Ci u tin l xc nh dng no t danh sch lch s nn (Nd: should) c dng trong qu trnh s thay th. Ci th nh l chn cc phn (Nd: portions) ca dng cho s gm vo (Nd: inclusion into) ci hin hnh. Dng m c chn t lch s c gi l "s kin" (Nd: event), v cc phn (Nd: portions) ca dng m c lm theo (Nd: acted upon) c gi l "cc t". Nhiu "bin t" (Nd: modifiers) khc nhau l c sn thao tc cc t c chn. Dng c chia thnh (Nd: broken into) cc t theo cng th thc m Bash lm, vi t m c bao quanh bi cc du ngoc trch dn c xem l mt t. Nhng s khai trin lch s c gii thiu bi s xut hin ca k t khai trin lch s, m l `!' theo mc nh. Ch c `\' v `'' l c php (Nd: may) c dng lm thot k t khai trin lch s. Vi ty chn h v m c th t nh bng ni trang `shopt' (*note Bash Builtins:: (ch thch Cc Ni trang ca Bash)) c th (Nd: may) c dng tailor (Nd: ?) s hnh x ca s khai trin lch s. Nu ty chn h v `histverify' c hot ha, v Readline ang c dng, nhng s thay th lch s khng lp tc c truyn n trnh phn tch ng php h v. Thay vo , dng c khai trin c

ti np (Nd: reloaded) vo b/ vng m (Nd: buffer) bin tp Readline cho s bin ci hn na. Nu Readline ang c dng, v ty chn h v `histreedit' c hot ha, mt s khai trin lch s b tht bi s c ti np vo b m bin tp Readline cho s sa cha (Nd: correction). Ty chn `-p' cho lnh ni trang `history' c th (Nd: may) c dng thy nhng g m mt s khai trin lch s s lm trc khi dng n. Ty chn `-s' cho ni trang `history' c th (Nd: may) c dng thm cc lnh vo kt thc ca danh sch lch s m khng vi vic cho thi hnh chng thc s, chng l c sn cho s gi li (Nd: recall) tip sau. Ci ny c ch nht trong s kt hp vi Readline. H v cho php s iu khin nhiu k t khc nhau m c dng bi c cu khai trin lch s vi bin `histchars'. * Menu: * Event Designators:: How to ch r which lch s dng(line) to use. * Word Designators:: Specifying which ts are ca(of) interest. * Modifiers:: Modifying cc kt qu ca(of) s thay th. Tp tin: bashref.info, Node: Event Designators, Next: Word Designators, Up: Lch s Interaction Cc Ch nh t (Nd: Designators) S kin ----------------Mt ch nh t s kin l mt s tham chiu n mt mc nhp dng lnh trong danh sch lch s. `!' Khi u mt s thay th lch s, ngoi tr khi c theo sau bi mt du cch, tab, kt thc ca dng, `=' hay `('. `!N' Ch n (Nd: Refer to) dng lnh N. `!-N' Ch n lnh m li li N dng (Nd: Refer to the command N lines back). `!!' Ch n lnh trc . y l mt t ng ngha cho `!-1'. `!STRING' Ch n lnh gn y nht m bt u bng STRING (Nd: CHUI). `!?STRING[?]'

Ch n lnh gn y nht m cha STRING. `?' i cui c th (Nd: may) c b i nu STRING c theo sau lp tc bi mt newline. `^STRING1^STRING2^' S Thay th Nhanh (Nd: Quick Substitution). Lp li lnh cui cng, bng cch thay th (Nd: replacing) STRING1 bng STRING2. Tng ng vi `!!:s/STRING1/STRING2/'. `!#' Ton th dng lnh m c nh my n gi (Nd: typed so far). Tp tin: bashref.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: Lch s Interaction Cc Ch nh t T (Nd: Word Designators) ---------------Cc ch nh t t c dng chn cc t c mong mun (Nd: desired) t s kin. Mt `:' phn cch s ch r s kin vi ch nh t t. N c php (Nd: may) b b i nu ch nh t t bt u bng mt `^', `$', `*', `-', hay `%'. Cc t c nh s t khi u ca dng, vi t u tin m ang c biu th bi 0 (s khng). Cc t c chn vo dng hin hnh m c phn cch bi cc du cch n l. V d, `!!' ch nh (Nd: designates) lnh ng trc (Nd: preceding). Khi bn nh my ci ny, lnh ng trc c lp li trong toto (Nd: is repeated in toto). `!!:$' ch nh tham t cui cng ca lnh ng trc. Ci ny c php (Nd: may) c rt ngn (Nd: shortened) thnh `!$'. `!fi:2' ch nh tham t th nh ca lnh gn y nht m bt u bng cc ch ci `fi'. y l cc ch nh t t: `0 (s khng)' T th `0'. Cho nhiu s ng dng (Nd: applications), y l t lnh. `N'

T th N. `^' Tham t u tin; l, t 1. `$' Tham t cui cng. `%' T m c so khp bi s tm kim (Nd: search) `?STRING?' (Nd: STRING=CHUI) gn y nht. `X-Y' Mt phm vi ca cc t; `-Y' vit tt cho (Nd: abbreviates) `0-Y'. `*' Tt c cc t, ngoi tr th `0'. y l mt t ng ngha cho `1-$'. S dng `*' khng phi l mt li nu ch c mt t trong s kin; chui rng c tr v trong trng hp . `X*' Vit tt cho `X-$' `X-' Vit tt cho `X-$' nh `X*', nhng b st (Nd: omits) t cui cng. Nu mt ch nh t t c cung cp m khng vi mt s ch r s kin, lnh trc c dng nh s kin. Tp tin: bashref.info, Node: Modifiers, Prev: Word Designators, Up: Lch s Interaction Cc Bin ci t (Nd: Modifiers) --------Sau ch nh t t theo ty chn, bn c th thm mt trnh t ca mt bin ci t sau y hay nhiu hn, mi ci c ng trc bi mt `:'. `h' Ly i mt thnh phn tn ng dn i cui, li ch ci u (Nd: leaving only the head). `t' Ly i tt c cc thnh phn tn ng dn dn u, li ci ui (Nd: leaving the tail).

`r' Ly i mt hu t i cui thuc dng `.SUFFIX' (Nd: SUFFIX=HU-T), li tn gc (Nd: basename). `e' Ly i tt c tr (Nd: but) hu t i cui. `p' In lnh mi nhng khng cho thi hnh n. `q' ng ngoc trch dn cc t c thay th, lm thot (Nd: escaping) nhng s thay th thm na. `x' ng ngoc trch dn cc t c thay th nh vi `q', nhng chia tch thnh (Nd: break into) cc t cc du cch, cc tab, v cc newline. `s/OLD/NEW/' Thay th NEW (Nd: MI) cho s xut hin u tin ca OLD (Nd: C) trong dng s kin. Bt k hn nh t no cng c th (Nd: may) c dng trong ch ca `/'. Hn nh t c th (Nd: may) c ng ngoc trch dn trong OLD v NEW bng mt du s ngc n l (Nd: The delimiter may be quoted in OLD and NEW with a single backslash). Nu `&' xut hin trong NEW, n c thay th bi OLD. Mt du s ngc n l s ng ngoc trch dn `&'. Hn nh t cui cng l theo ty chn nu n l k t cui cng trn dng u vo. `&' Lp li s thay th trc . `g' Lm cho cc thay i c p dng trn ton th dng s kin. c dng trong s kt hp vi `s', nh trong `gs/OLD/NEW/', hay vi `&'. Tp tin: bashref.info, Node: Lnh Line Editing, Next: Installing Bash, Prev: Dnging Lch s Interactively, Up: Top Vic Bin tp Dng Lnh ******************** Chng ny m t cc c tnh c bn ca giao din bin tp dng lnh GNU. Vic bin tp dng lnh c cung cp bi th vin Readline, m c dng bi vi chng trnh khc nhau, m gm

Bash. * Menu: * Introduction v Notation:: * Readline Interaction:: dng(line). * Readline Init Tp tin:: * Bindable Readline Lnhs:: binding * Readline vi Mode:: trnh bin tp. Notation (mc)dnged trong(in) ny(this) vn bn. The minimum tnh(set) ca(of) cc lnh cho(for) bin tping mt(a) Customizing Readline from mt(a) ngi dng's view. Mt(A) s m t ca(of) most ca(of) the Readline lnhs c sn cho(for) Mt(A) short s m t ca(of) how to make Readline behave like the vi

* Programmable Completion:: How to ch r nhng s hon tt c th c cho(for) mt(a) specific lnh. * Programmable Completion Ni trangs:: Builtin lnhs to ch r how to complete tham ts cho(for) mt(a) particular lnh. Tp tin: bashref.info, Node: Introduction v Notation, Next: Readline Interaction, Up: Lnh Line Editing S Gii thiu n Vic bin tp Dng ============================ (Nd: Phn ny v cc phn tip theo c v d hiu hn nhng phn trn. C nn i th t ca chng chng?) Cc on vn sau y m t s ghi ch (Nd: notation) m c dng biu din cc c g phm (Nd: keystrokes). Vn bn `C-k' c c nh `Control-K' v m t k t m c sinh (Nd: produced) khi phm c n trong khi phm Control c gi xung/ xung (Nd: depressed). Vn bn `M-k' c c nh `Meta-K' v m t k t m c sinh khi phm Meta (nu bn c mt ci) c xung, v phm c n. Phm Meta c ghi nhn trn nhiu bn phm. Trn cc bn phm vi hai phm m c ghi nhn (thng v mi bn ca thanh du cch), bn tri ni chung c t nh lm vic nh mt phm Meta. Phm bn phi cng c th (Nd: may) c cu hnh lm vic nh mt phm Meta hay c th (Nd: may) c cu hnh nh bin ci t/ bin ci th (Nd: modifier) khc no , nh l mt phm Compose (Nd: Son/ Bao gm) cho vic nh my cc k t c du ging (Nd: accented).

Nu bn khng c mt phm Meta hay , hay mt phm khc m lm vic nh mt phm Meta, c g phm y ht c th c sinh bng cch nh my _u tin_ (Nd: g nhanh ch khng gi), v ri nh my . Mi trong hai tin trnh c bit nh "s meta ha" (Nd: metafying) phm . Vn bn `M-C-k' c c nh `Meta-Control-k' v m t k t m c sinh bi "s meta ha" `C-k'. Thm vo , vi phm c cc tn ca chnh chng. Mt cch chuyn bit/ Mt cch c th (Nd: Specifically), , , , , , v tt c i din cho chnh chng khi c thy trong vn bn ny, hay trong mt tp tin init (*note Readline Init File:: (Nd: ch thch Tp tin Khi to ca Readline)). Nu bn phm ca bn thiu mt phm , vic nh my s sinh k t c mong mun. Phm c th (Nd: may) c ghi nhn hay trn vi bn phm. Tp tin: bashref.info, Node: Readline Interaction, Next: Readline Init Tp tin, Prev: Introduction v Notation, Up: Lnh Line Editing S Tng tc ca Readline ==================== Thng trong qu trnh mt phin lm vic tng tc, bn nh my trong mt dng vn bn di, ch ch rng t u tin trn dng b nh vn sai (Nd: misspelled). Th vin Readline cho bn mt tp ca cc lnh cho vic thao tc vn bn nh bn nh my n trong , cho php bn ch sa li sp ch (Nd: typo) ca bn, v khng p buc bn nh my li phn ln ca dng. Bng cch dng cc lnh bin tp ny, bn di chuyn con tr/ con nhy (Nd: cursor) n ch m cn s sa cha, v xa hay chn vn bn ca nhng s sa cha. Sau , khi bn c tha mn (Nd: satisfied) vi dng, bn mt cch n gin n . Bn khng phi cui ca dng n ; ton th dng c chp nhn bt chp v tr ca con tr trong vng dng. * Menu: * Readline Bare Essentials:: The least bn need to know about Readline. * Readline Movement Lnhs:: Moving about the input dng(line). * Readline Killing Lnhs:: How to xa vn bn, v how to get n(it) back! * Readline Arguments:: Giving kiu s(numeric) tham ts to lnhs. * Searching:: Searching through previous dngs. Tp tin: bashref.info, Node: Readline Bare Essentials, Next: Readline Movement Lnhs, Up: Readline Interaction Cc Yu t cn thit Ti thiu (Nd: Bare Essentials) ca Readline

----------------------- nhp cc k t vo dng, mt cch n gin hy nh my chng. K t c nh my xut hin ni m con tr , v ri con tr di chuyn mt du cch v bn phi. Nu bn nh my sai mt k t, bn c th dng k t xa (Nd: erase) ca bn li li (Nd: back up) v xa k t b nh my sai. i khi bn c th nh my sai mt k t, v khng ch li cho n khi bn nh my vi k t khc. Trong trng hp , bn c th nh my `C-b' a con tr v bn tri, v ri sa li (Nd: mistake) ca bn. Sau (Nd: Afterwards), bn c th a con tr v bn phi vi `C-f'. Khi bn thm vn bn vo gia (Nd: middle) ca mt dng, bn s ch rng cc k t v bn phi ca con tr b `y qua' (Nd: pushed over) nhng ch cho (Nd: make room for) vn bn m bn chn. Cng vy, khi bn xa vn bn m pha sau/ pha di (Nd: behind) con tr, cc k t m v bn phi ca con tr c `ko v' (Nd: pulled back) in y vo du cch trng/ khng gian trng (Nd: blank space) m c to bi s ly i ca vn bn. Mt danh sch ca cc yu t cn thit ti thiu (Nd: bare essentials; c th c dch l "cc thao tc c bn nht"?) cho vic bin tp vn bn ca mt dng u vo l nh sau (Nd: follows). `C-b' Di chuyn li mt k t. `C-f' Di chuyn tin mt k t. (Nd: Hai thao tc trn kh l kh nh trong mt rng t hp phm. Hai phm mi tn tri, phi chng hay hn sao? C l chng l di tch thi b in khin (console) c, thiu cc phm mi tn?) hay Xa (Nd: Delete) k t m v bn tri ca con tr. (Nd: ?) `C-d' Xa k t m bn di (Nd: underneath) con tr. Cc k t in (Nd: Printing characters; tc l cc phm ch ci v ch s v cc k hiu vit khc?) Chn k t vo dng con tr. `C-_' hay `C-x C-u' Hon tc (Nd: Undo) lnh bin tp cui cng. Bn c th hon tc ht v sau (Nd: all the way back) n mt dng rng.

(Ty vo s cu hnh ca bn, phm c t nh (Nd: be set) xa k t m v bn tri ca con tr v phm c t nh xa k t m di (Nd: underneath) con tr, nh `C-d', hn l k t m v bn tri ca con tr.) Tp tin: bashref.info, Node: Readline Movement Lnhs, Next: Readline Killing Lnhs, Prev: Readline Bare Essentials, Up: Readline Interaction Cc Lnh Di chuyn ca Readline -------------------------Bng trn (Nd: l u? Trong khi lm vic vi lnh info khng theo th t ca cc mc t trn xung di, ngi dng d dng b lc ng, khng nh ang c mt quyn sch) m t cc c g phm c bn nht m bn cn lm vic bin tp dng u vo. Cho s tin li ca bn, nhiu lnh khc c thm vo ngoi `C-b', `C-f', `C-d', v . y l vi lnh cho vic di chuyn nhanh hn xung quanh (Nd: about) dng. `C-a' i n khi u ca dng (Nd: phm ). `C-e' i n kt thc ca dng (Nd: phm ). `M-f' i v trc mt t, trong mt t gm cc ch ci v cc ch s. `M-b' i li mt t. (Nd: phm , g phm mi tn tri hay phi) `C-l' Xa mn hnh (Nd: Clear the screen), in li dng hin hnh nh. Hy ch cch m `C-f' tin mt k t, trong khi `M-f' tin mt t. N l mt qui c lng lo rng (Nd: It is a loose convention that; c l cn c dch cch khc) cc c g phm control vn hnh trn cc k t trong khi cc c g phm meta vn hnh trn cc t. Tp tin: bashref.info, Node: Readline Killing Lnhs, Next: Readline Arguments, Prev: Readline Movement Lnhs, Up: Readline Interaction Cc Lnh Kh (Nd: Killing) ca Readline

------------------------"Vic kh" (Nd: Killing) vn bn c ngha l xa vn bn khi dng, nhng lu n i (Nd: save it away) cho s dng sau ny, thng bng cch "tut/ ko" (Nd: yanking) (chn li (Nd: re-inserting)) n tr li vo dng. (`Ct' (Nd: Cut) v `dn' (Nd: paste) l bit ng (Nd: jargon) gn y hn cho `kh' (Nd: kill) v `tut ra' (Nd: yank).) Nu s m t cho mt lnh ni rng n `kh' vn bn, th bn c th chc chn rng bn c th ly c vn bn tr li trong mt ni khc (hay cng) sau . Khi bn dng mt lnh kh, vn bn c lu trong mt "vng kh" (Nd: kill-ring). Bt k s no ca nhng s kh lin tip u lu tt c vn bn b kh cng nhau, khi bn ko n tr li, bn ly ht c n (Nd: get it all). Vng kh l khng chuyn bit v dng (Nd: line specific); vn bn m bn kh trn mt dng c nh my trc th c sn c ko tr li sau , khi bn ang nh my mt dng khc. y l danh sch ca cc lnh cho vic kh vn bn. `C-k' Kh vn bn t v tr con tr hin hnh n cui dng. `M-d' Kh t con tr n cui t hin hnh, hay, nu gia cc t, n cui ca t tip theo. Cc ranh gii t l ging nh nhng ci m c dng bi `M-f'. `M-' Kh t con tr n u ca t hin hnh (Nd: Kill from the cursor the start of the current word), hay, nu gia cc t, n u ca t trc . Cc ranh gii t l ging nh nhng ci m c dng bi `M-b'. `C-w' Kh t con tr n du cch trng trc . Ci ny l khc hn (Nd: is different than) `M-' do cc ranh gii t l khc (Nd: differs). y l cch "ko" vn bn tr li vo dng. Vic ko c ngha l chp vn bn c kh gn y nht t b m kh (Nd: kill buffer). `C-y' Ko vn bn b kh gn y nht tr li vo b m con tr (Nd: Yank the most recently killed text back into the buffer (?) at the cursor).

`M-y' Quay vng (Nd: Rotate) vng kh, v ko ci trn cng mi (Nd: new top). Bn ch c th lm iu ny nu lnh trc l `C-y' hay `M-y'. Tp tin: bashref.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Lnhs, Up: Readline Interaction Cc Tham t ca Readline -----------------Bn c th truyn cc tham t kiu s n cc lnh ca Readline. i khi tham t hnh ng nh mt s m lp (Nd: repeat count), nhng ln khc n l du hiu (Nd: sign) ca tham t m c ngha (Nd: significant). Nu bn truyn mt tham t m (Nd: negative) n mt lnh m mt cch bnh thng hnh ng theo mt hng v trc, lnh s hnh ng theo mt hng v sau. V d, kh vn bn tr li n u ca dng, bn c th (Nd: might) nh my `M-- C-k'. Cch chung truyn cc tham t kiu s n mt lnh l nh my cc ch s meta trc lnh. Nu `ch s' u tin m c nh my l mt du tr (Nd: minus sign) (`-'), th du (Nd: sign) ca tham t s l m. Mt khi bn nh my mt ch s meta lm cho tham t c khi ng (Nd: to get the argument started), bn c th nh my phn cn li ca cc ch s, v sau l lnh. V d, cho lnh `C-d' mt tham t 10, bn c th (Nd: could) nh my `M-1 0 C-d' (Nd: c ngha l " phm xung, g phm , _bung phm ra_ (khng cn tip), g phm , phm xung, g phm "?), m s xa mi k t tip theo trn dng u vo. Tp tin: bashref.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction Vic Tm kim cc Lnh trong Lch s ------------------------------------Readline cung cp cc lnh cho vic lc sot qua lch s lnh (*note Bash History Facilities:: (Nd: ch thch Cc Tin ch Lch s ca Bash)) tm cc dng m cha mt chui c ch r. C hai ch lc sot: "tng tin" (Nd: incremental) v "khng tng tin" (Nd: non-incremental). Nhng s lc sot tng tin bt u trc khi ngi dng kt thc vic nh my chui tm kim (Nd: ta nh chc nng bm ch T9 trn in thoi di ng, ngi dng bm ch, in thoi on t?). Khi (Nd: As) mi k t ca chui tm kim c nh my, Readline hin th mc nhp tip theo t lch s m so khp chui m c nh my n gi (Nd: so far). Mt s lc sot tng tin ch i hi nhiu k t ht mc c cn tm ra mc nhp lch s c mong mun. lc sot li trong lch s tm mt chui ring bit (Nd: particular), hy nh my `C-r'. Vic nh my `C-s' lc tm v trc qua lch s. Cc k t m hin din trong gi tr ca bin `isearch-terminators' c dng chm dt mt s lc sot/ s tm kim tng tin. Nu bin khng c gn mt gi tr, cc k t v `C-J' s

chm dt mt s tm kim tng tin. `C-g' s b ngang (Nd: abort) mt s tm kim tng tin v phc hi (Nd: restore) dng nguyn thy. Khi s tm kim c chm dt, mc nhp lch s m cha chui tm kim tr thnh dng hin hnh. tm ra cc mc nhp so khp khc trong danh sch lch s, hy nh my `C-r' hay `C-s' (Nd: Nu dng trong GNOME ca Red Hat 9 th b chc nng "Save" m cng dng `C-s' ginh quyn?) khi thch hp (Nd: as appropriate). Ci ny s lc sot li hay tin trong lch s tm mc nhp tip theo m so khp chui tm kim m c nh my n gi. Bt k trnh t phm khc no m c rng buc n mt lnh Readline s chm dt s tm kim v cho thi hnh lnh . V d (Nd: For instance), mt s chm dt s tm kim v chp nhn dng, do cho thi hnh lnh t danh sch lch s. Mt lnh di chuyn s chm dt s tm kim, lm cho dng cui cng m c tm ra tr thnh dng hin hnh, v bt u vic bin tp (Nd: A movement command will terminate the search, make the last line found the current line, and begin editing). Readline nh chui tm kim tng tin cui cng. Nu hai `C-r' c nh my m khng vi bt k cc k t chen ngang (Nd: intervening) no m nh ngha mt chui tm kim mi, bt k chui tm kim c nh no u c dng. Nhng s lc sot/ s tm kim khng tng tin c ton th chui tm kim trc khi bt u tm kim cc dng lch s so khp. Chui tm kim c th (Nd: may) c nh my bi ngi dng hay l thnh phn ca ni dung ca dng hin hnh. Tp tin: bashref.info, Node: Readline Init Tp tin, Next: Bindable Readline Lnhs, Prev: Readline Interaction, Up: Lnh Line Editing Tp tin Init ca Readline ================== D th vin Readline tn ti cng (Nd: comes with) mt tp ca cc rng buc phm ging Emacs m c ci t theo mc nh, s dng mt tp khc ca cc rng buc phm l c th. Bt k ngi dng no cng c th ty bin ha (Nd: customize) cc chng trnh m dng Readline bng cch t cc lnh vo mt tp tin "inputrc", theo qui c l (Nd: conventionally) trong th mc nh (Nd: home) ca anh ta. Tn ca tp tin ny c ly t gi tr ca bin h v `INPUTRC'. Nu bin c b t nh, ci mc nh l `~/.inputrc'. Khi mt chng trnh m dng th vin Readline khi ng (Nd: starts up), tp tin init c c, v cc rng buc phm c t nh. Hn na, lnh `C-x C-r' c li tp tin init ny, do sp nhp bt k cc thay i no m bn c th lm n (Nd: might have made to) n.

* Menu: * Readline Init Tp tin C php:: * iu kinal Init Constructs:: * Sample Init Tp tin:: C php cho(for) the lnhs trong(in) the inputrc tp tin. iu kinal key bindings trong(in) the inputrc tp tin. Mt v d inputrc tp tin.

Tp tin: bashref.info, Node: Readline Init Tp tin C php, Next: iu kinal Init Constructs, Up: Readline Init Tp tin C php Tp tin Init ca Readline ------------------------Ch c mt vi cu trc c bn m c cho php trong tp tin init Readline. Cc dng trng b l i. Cc dng m bt u bng mt `#' l cc li ghi ch. Cc dng m bt u bng mt `$' ch ra cc cu trc v iu kin (*note Conditional Init Constructs:: (Nd: ch thch Cc Cu trc Init v iu kin)). Cc dng khc biu th cc t nh bin v cc rng buc phm. Cc t nh Bin Bn c th bin ci s hnh x lc chy (Nd: run-time) ca Readline bng cch sa i (Nd: altering) cc gi tr ca cc bin trong Readline bng cch dng lnh `set' trong vng tp tin init. C php l n gin: set VARIABLE VALUE (Nd: VARIABLE=BIN, VALUE=GI-TR) y, v d, l cch thay i t s rng buc phm ging Emacs mc nh dng cc lnh bin tp dng `vi': set editing-mode vi Cc tn bin v cc gi tr, ni thch hp (Nd: where appropriate), c nhn nhn (Nd: recognized) m khng vi s quan tm v th in hoa/ thng (Nd: without regard to case). Lnh `bind -V' lit k cc tn v cc gi tr bin Readline hin hnh. *Note Bash Builtins:: (Nd: Ch thch Cc Ni trang ca Bash). Rt nhiu s hnh x lc chy l c th thay i bng cc bin sau y. `bell-style' iu khin ci g xy ra khi Readline mun rung chung ca thit b u cui (Nd: ring the

terminal bell). Nu c t nh `none', Readline khng bao gi rung chung. Nu c t nh `visible', Readline dng mt chung hu hnh/ trc quan (Nd: visible) nu mt ci l c sn. Nu c t nh `audible' (ci mc nh), Readline c rung chung ca thit b u cui. (Nd: "terminal" hay "thit b u cui" theo ngha en c l ch c nhng ngi cng th h vi Bill Gates mi hiu (Lc m ng cn trung tm ma y m :-), lc m PC ca IBM cha ra i. Hin nay, nn hiu nh th no?) `comment-begin' Chui chn khi u ca dng khi lnh `insert-comment' c cho thi hnh. Gi tr mc nh l `"#"'. `completion-ignore-case' Nu c t nh `on' (Nd: bt), Readline tin hnh vic so khp tn tp tin v s hon tt theo mt th thc khng nhy ch hoa/ thng. Gi tr mc nh l `off' (Nd: tt). `completion-query-items' S ca nhng s hon tt c th c (Nd: possible) m xc nh khi no ngi dng c hi l anh ta c mun thy danh sch ca cc kh nng hay khng. Nu s ca nhng s hon tt c th c l ln hn gi tr ny, Readline s hi ngi dng l anh ta c mun xem chng hay khng; nu khng, chng mt cch n gin c lit k. Bin ny phi c t nh mt gi tr s nguyn m ln hn hay bng vi 0. Gii hn mc nh l `100'. `convert-meta' Nu c t nh `on', Readline s chuyn i (Nd: convert) cc k t m vi b bit th tm/ bit th tm m c t nh (Nd: the eighth bit set) sang mt trnh t phm ASCII bng cch lt b (Nd: stripping) bit th tm v ghi tin t mt k t , chuyn i chng thnh mt trnh t phm c ghi tin t meta. Gi tr mc nh l `on'. `disable-completion' Nu c t nh `On', Readline s ngn cm s hon tt t. Cc k t hon tt (Nd: Completion characters) s c chn vo dng nh th chng c nh x n (Nd: mapped to) `self-insert' vy. Ci mc nh l `off'. `editing-mode' Bin `editing-mode' iu khin tp mc nh no ca cc rng buc phm c dng. Theo mc nh, Readline khi ng (Nd: starts up) trong ch bin tp Emacs, trong cc c g phm hu nh tng t vi Emacs. Bin ny c th c t nh hoc l `emacs' hoc l `vi'. `enable-keypad' Khi c t nh `on', Readline s c kh ha (Nd: enable) bn phm s ng dng (Nd:

application keypad) khi n c gi. Vi h thng cn ci ny kh ha cc phm mi tn. Ci mc nh l `off'. `expand-tilde' Nu c t nh `on', s khai trin du ng c tin hnh khi Readline th/ c (lm) (Nd: attempts) s hon tt t. Ci mc nh l `off'. Nu c t nh `on', m lch s c t im cng v tr (Nd: to place point at the same location) trn mi dng lch s m c triu hi (Nd: retrived) bng `previous-history' hay `nexthistory'. (Nd: on vn ny l g y?) `horizontal-scroll-mode' Bin ny c th c t nh hoc l `on' hay `off'. Vic t nh n `on' c ngha rng vn bn ca cc dng m ang c bin tp s cun (Nd: scroll) ngang trn mt dng mn hnh n l khi chng l di hn chiu rng ca mn hnh, thay v cun (Nd: wrapping; Ch! Tht d lm!) n (Nd: onto) mt dng mn hnh mi. Theo mc nh, bin ny c t nh `off'. `input-meta' Nu c t nh `on', Readline s kh ha u vo tm bit (Nd: eight-bit input) (n s khng xa (Nd: clear) bit th tm trong cc k t m n c), bt chp thit b u cui t nhn (Nd: claims) l n c th h tr ci g (Nd: regardless of what the terminal claims it can support). Gi tr mc nh l `off'. Ci tn `meta-flag' l mt t ng ngha cho bin ny. `isearch-terminators' Chui ca cc k t m s (Nd: should) chm dt mt s tm kim tng tin m khng c vic cho thi hnh sau (Nd: subsequently) k t nh mt lnh (*note Searching:: (Nd: ch thch Vic Tm kim)). Nu bin ny khng c cho mt gi tr, cc k t v `C-J' s chm dt mt s tm kim tng tin. `keymap' t nh nh (Nd: idea) ca Readline v s nh x phm (Nd: keymap) hin hnh cho cc lnh rng buc phm. Cc tn `keymap' c th chp nhn l `emacs', `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move', `vi-command', v `vi-insert'. `vi' l tng ng vi `vi-command'; `emacs' tng ng vi `emacs-standard'. Gi tr mc nh l `emacs'. Gi tr ca bin `editing-mode' cng nh hng n s nh x phm mc nh. `mark-directories' Nu c t nh `on', cc tn th mc c hon tt c mt du s m c chp ni (vo (Nd)). Ci mc nh l `on'. `mark-modified-lines'

Bin ny, khi c t nh `on', lm cho Readline hin th mt du hoa th/ du sao (Nd: asterisk) (`*') bt u ca cc dng lch s m c bin ci. Bin ny l `off' theo mc nh. `mark-symlinked-directories' Nu c t nh `on', cc tn c hon tt m l cc lin kt tng trng n cc th mc c mt du s m c chp ni (vo (Nd)) (l thuc vo gi tr ca `mark-directories'). Ci mc nh l `off'. `match-hidden-files' Bin ny, khi c t nh `on', lm cho Readline so khp cc tp tin m cc tn ca chng bt u bng mt `.' (cc tp tin b che du (Nd: hidden)) khi tin hnh s hon tt tn tp tin, tr khi `.' i u c cung cp bi ngi dng trong tn tp tin c hon tt. Bin ny l `on' theo mc nh. `output-meta' Nu c t nh `on', Readline s hin th cc k t vi bit th tm m c t nh mt cch trc tip hn l nh mt trnh t lm thot (Nd: escape) c ghi tin t meta. Ci mc nh l `off'. `page-completions' Nu c t nh `on', Readline dng mt b phn trang ging `more' ni b (Nd: internal `more'-like pager) hin th mt mn hnh y (Nd: screenful) ca nhng s hon tt c th c vo mt lc. Bin ny l `on' theo mc nh. `print-completions-horizontally' Nu c t nh `on', Readline s hin th nhng s hon tt vi nhng s so khp m c sp xp ngang theo th t bng ch ci, hn l t trn xung mn hnh (Nd: down the screen). Ci mc nh l `off'. `show-all-if-ambiguous' Ci ny thay i s hnh x mc nh ca cc hm/ cc chc nng (functions) hon tt. Nu c t nh `on', cc t m c nhiu hn mt s hon tt c th c lm cho nhng s so khp c lit k lp tc thay v rung chung. Gi tr mc nh l `off'. `visible-stats' Nu c t nh `on', mt k t m biu th mt loi ca tp tin c chp ni n tn tp tin khi lit k nhng s hon tt c th c. Ci mc nh l `off'. Cc Rng buc Phm C php cho vic iu khin cc rng buc phm trong tp tin init l n gin. Trc tin, bn cn tm ra tn ca lnh m bn mun thay i. Cc phn (Nd: sections) sau y cha cc bng tn lnh, s rng buc phm mc nh, nu c bt k ci no, v mt s m t ngn v nhng g lnh lm.

Mt khi bn bit tn ca lnh, mt cch n gin hy t ln mt dng trong tp tin init tn ca phm m bn mong mun rng buc lnh n, mt du hai chm, v ri tn ca lnh. Tn ca phm c th c biu th (Nd: expressed) theo cc cch khc nhau, ty vo nhng g m bn thy (Nd: find) l tin li nht. Thm vo cc tn lnh, readline cho php cc phm c rng buc n mt chui m c chn khi phm c n (mt LNH V M/ LNH GP (Nd: MACRO)). Lnh `bind -p' hin th cc tn hm Readline v cc rng buc theo mt nh dng m c th (c (Nd)) t mt cch trc tip vo mt tp tin khi to ha (Nd: initialization). *Note Bash Builtins:: (Nd: Ch thch Cc Ni trang ca Bash). KEYNAME: FUNCTION-NAME hay MACRO (Nd: KEYNAME=TN-PHM, FUNCTIONNAME=TN-HM, MACRO=LNH-V-M) KEYNAME l tn ca mt phm m c nh vn thnh ting (Nd: spelled out) trong ting Anh. V d: Control-u: universal-argument Meta-Rubout: backward-kill-word Control-o: "> output" Trong v d trn, `C-u' c rng buc n hm `universal-argument', `M-DEL' c rng buc n hm `backward-kill-word', v `C-o' c rng buc cho chy lnh v m m c biu th trn bn tay phi ( l, chn vn bn `> output' vo dng). Mt s cc tn k t k hiu c nhn nhn trong khi x l c php rng buc phm ny: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, v TAB. "KEYSEQ": FUNCTION-NAME hay MACRO KEYSEQ (Nd: KEYSEQ=KEYSEQUENCE=TRNH-T-PHM) khc vi KEYNAME trn ch rng (Nd: in that) cc chui m biu th ton th mt trnh t phm (Nd: an entire key sequence) c th c ch r, bng cch t trnh t phm trong cc du ngoc trch dn kp. Vi trnh t lm thot phm phong cch Emacs GNU (Nd: GNU Emacs style key escapes) c th c dng, nh trong v d sau y, nhng cc tn k t c bit khng c nhn nhn. "\C-u": universal-argument "\C-x\C-r": re-read-init-file "\e[11~": "Function Key 1" (Nd: "Function Key 1"="Phm Chc nng 1") Trong v d trn, `C-u' mt ln na c rng buc n hm `universal-argument' (_ng nh_/ ch nh (Nd: just as) n trong v d u tin), `C-x C-r' c rng buc n hm `re-read-init-file',

v ` ' c rng buc chn vn bn `Function Key 1' (Nd: phm y c b nhm ln vi phm () khng? Th ra "\e" l phm ?). Cc trnh t lm thot phong cch Emacs GNU sau y l c sn khi ch r cc trnh t phm: `\C-' tin t control `\M-' tin t meta `\e' mt k t lm thot (Nd: phm ?) `\\' du s ngc `\"'