buruzko ohar sorta jarraituz
1) PROMPT_COMMAND
Dagoeneko jakin dezakezu gonbita manipulatzen hainbat informazio erabilgarria erakusteko, baina denek ez dakite shell komando bat exekutatu dezakezula gonbita erakusten den bakoitzean.
Izan ere, gonbita-manipulatzaile konplexu askok aldagai hau erabiltzen dute gonbidapenean bistaratzen den informazioa biltzeko komandoak exekutatzeko.
Saiatu hau shell berri batean exekutatzen eta ikusi zer gertatzen den saioan:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Korrika eginez gero history
kontsolan, aurretik exekutaturiko komandoen zerrenda jasoko duzu zure kontuarekin.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Aldagai hau ezarri ondoren, sarrera berriek denbora grabatzen dute komandoarekin batera, beraz, irteera honela izango da:
1871 Hau exekutatu nuen: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Hau exekutatu nuen: 01/05/19 13:38:19 curl bbc.co.uk 1873 Hau exekutatu nuen : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Hau exekutatu nuen: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Hau exekutatu nuen: 01 /05/19 13:39:25 sudo su -
Formateatzea karaktereekin bat dator man date
.
3) CDPATH
Komando-lerroko denbora aurrezteko, aldagai hau erabil dezakezu direktorioak aldatzeko komandoak ematen dituzun bezain erraz.
As PATH
, aldakorra CDPATH
bi puntuz bereizitako bideen zerrenda da. Komandoa exekutatzen duzunean cd
bide erlatibo batekin (hau da, hasierako barrarik gabe), lehenespenez shell-ak zure karpeta lokalean bilatzen du bat datozen izenak. CDPATH
zuk emandako bideetan bilatuko du joan nahi duzun direktorioa.
Instalatzen baduzu CDPATH
bide honetatik:
$ CDPATH=/:/lib
eta gero sartu:
$ cd /home
$ cd tmp
orduan beti amaituko duzu /tmp
edozein lekutan zaudela ere.
Hala ere, kontuz ibili, zeren zerrendan tokikoa ez baduzu zehazten (.
) karpeta, orduan ezin izango duzu beste karpetarik sortu tmp
eta joan ohi bezala:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Aupa!
Tokiko karpeta aldagai ezagunean sartuta ez zegoela konturatu nintzenean sentitu nuen nahasmenaren antzekoa da PATH
... baina zure PATH aldagaian egin behar duzu, deskargatutako kode batetik komando faltsu bat exekutatzen engainatu zintezkeelako.
Nirea abiapuntuak ezartzen du:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Inoiz galdetu duzu, idazten exit
Zure egungo bash shell-etik beste "guraso" shell batera eramango zaitu, edo kontsolaren leihoa guztiz itxiko al du?
Aldagai honek bash shell-en habiaratuta zaudenaren jarraipena egiten du. Terminal berri bat sortzen baduzu, 1ean ezarriko da:
$ echo $SHLVL
1
Ondoren, beste shell-prozesu bat hasten baduzu, kopurua handitzen da:
$ bash
$ echo $SHLVL
2
Hau oso erabilgarria izan daiteke irten ala ez ziur ez zauden scriptetan, edo habiaratzen zaren lekuaren jarraipena egin.
5) LINENO
Aldagaia uneko egoera aztertzeko eta arazketarako ere erabilgarria da LINENO
, orain arte saioan exekutatu diren komando kopuruaren berri ematen duena:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Hau gehienetan erabiltzen da scriptak arazketan. bezalako lerroak txertatzen echo DEBUG:$LINENO
, azkar zehaztu dezakezu non zauden gidoian (edo ez).
6) REPLY
Nik bezala, normalean honelako kodea idazten baduzu:
$ read input
echo do something with $input
Harrigarria izan daiteke aldagaia sortzeaz batere kezkatu beharrik ez izatea:
$ read
echo do something with $REPLY
Honek gauza bera egiten du.
7) TMOUT
Segurtasun-arrazoiengatik ekoizpen-zerbitzarietan denbora gehiegi egon ez dadin edo okerreko terminalean zerbait arriskutsua exekutatzen ez dadin, aldagai hau ezartzeak babes gisa funtzionatzen du.
Segundu kopuru jakin batean ezer sartzen ez bada, shell-a irtengo da.
Hau da, hau alternatiba bat da sleep 1 && exit
:
$ TMOUT=1
Iturria: www.habr.com