Berdewamiya rêze notên li ser
1) PROMPT_COMMAND
Dibe ku hûn jixwe dizanin ka meriv çawa bilêvkirinê manîpule dike da ku agahdariya cihêreng bikêr nîşan bide, lê ne her kes pê nizane ku hûn dikarin her gava ku tavilê têne xuyang kirin fermanek şêlê bimeşînin.
Di rastiyê de, gelek manipulatorên bilez ên tevlihev vê guhêrbar bikar tînin da ku fermanan bi cih bînin da ku agahdariya ku di tavilê de têne xuyang kirin berhev bikin.
Biceribînin ku vê di şêlekek nû de bimeşînin û bibînin ka bi danişînê re çi dibe:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Ger hûn birevin history
di konsolê de, hûn ê navnîşek fermanên ku berê di binê hesabê we de hatine bicîh kirin bistînin.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Dema ku ev guhêrbar were danîn, navnîşên nû dem bi fermanê re tomar dikin, ji ber vê yekê encam dê wiha xuya bike:
1871 Min ev baz da: 01/05/19 13:38:07 pisîk /etc/resolv.conf 1872 Min ev baz da: 01/05/19 13:38:19 curl bbc.co.uk 1873 : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Min ev baz da: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Min ev li: 01 bezî /05/19 13:39:25 sudo su -
Formatkirin tîpan ji hev digre man date
.
3) CDPATH
Ji bo ku hûn wextê li ser rêzika fermanê hilînin, hûn dikarin vê guhêrbar bikar bînin ku bi hêsanî wekî ku hûn fermanan derdixin pelrêçan biguhezînin.
Her wiha PATH
, guherbar CDPATH
navnîşek rêgezên ji hev veqetandî ye. Dema ku hûn fermanê dimeşînin cd
bi rêgezek têkildar (ango bê şiklê sereke), ji hêla xwerû ve şêl ji bo navên lihevhatî li peldanka weya herêmî dinihêre. CDPATH
dê di rêyên ku we dane pelrêça ku hûn dixwazin biçin de bigerin.
Heke hûn saz bikin CDPATH
Ji ber vê yekê:
$ CDPATH=/:/lib
û paşê têkevin:
$ cd /home
$ cd tmp
wê hingê hûn ê her dem biqedin hundur /tmp
tu li ku yî.
Lêbelê, hişyar bimînin, ji ber ku heke hûn di navnîşê de ya herêmî diyar nekin (.
) peldanka, wê hingê hûn ê nikaribin peldankek din biafirînin tmp
û wek hercar here ser wê:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Oops!
Ev dişibihe tevliheviya ku min hîs kir dema ku min fêhm kir ku peldanka herêmî di guhêrbara naskirî de ne tê de ye. PATH
... lê divê hûn wiya di guhêrbara PATH-a xwe de bikin ji ber ku dibe ku hûn werin xapandin ku hûn fermanek sexte ji hin kodên dakêşandî bimeşînin.
Ya min ji hêla xala destpêkê ve hatî destnîşan kirin:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Ma tu qet meraq kir, nivîsandinê exit
ew ê we ji şêlê bash-a weya heyî derxîne ber şêlekek din a "dêûbav", an ew ê tenê pencereya konsolê bi tevahî bigire?
Ev guhêrbar bişopîne ka hûn çiqasî kûr di şêlê bash de hêlîn in. Ger hûn termînalek nû biafirînin, ew li 1 tête danîn:
$ echo $SHLVL
1
Dûv re, heke hûn pêvajoyek şêlê din dest pê bikin, hejmar zêde dibe:
$ bash
$ echo $SHLVL
2
Ev dikare di skrîptên ku hûn pê ne bawer in ku derkevin an na, an li cîhê ku hûn hêlîn bişopînin de pir bikêrhatî be.
5) LINENO
Guherbar di heman demê de ji bo analîzkirina rewşa heyî û xeletkirinê jî bikêr e LINENO
, ku hejmara fermanên ku heya niha di danişînê de hatine bicîh kirin radigihîne:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Ev pirî caran dema ku skrîptan debugging tê bikaranîn. Têxistina xetên mîna echo DEBUG:$LINENO
, hûn dikarin zû diyar bikin ku hûn li ku derê nivîsarê ne (an na).
6) REPLY
Heke, mîna min, hûn bi gelemperî kodek weha dinivîsin:
$ read input
echo do something with $input
Dibe ku surprîz be ku hûn ne hewce ne ku ji çêkirina guhêrbar qet xem bikin:
$ read
echo do something with $REPLY
Ev heman tiştî dike.
7) TMOUT
Ji bo ku ji ber sedemên ewlehiyê pir dirêj li ser serverên hilberînê nemînin an bi xeletî tiştek xeternak di termînala xelet de bimeşînin, danîna vê guhêrbar wekî parastinê tevdigere.
Ger ji bo çend hûrdeman tiştek nekeve, şêl derdikeve.
Yanî ev alternatîfek e sleep 1 && exit
:
$ TMOUT=1
Source: www.habr.com