Jatkaen muistiinpanojen sarjaa aiheesta
1) PROMPT_COMMAND
Saatat jo tietää kuinka käsitellä kehotetta näyttääksesi useita hyödyllisiä tietoja, mutta kaikki eivät tiedä, että voit suorittaa komentotulkkikomennon joka kerta, kun kehote näytetään.
Itse asiassa monet monimutkaiset kehotteen manipulaattorit käyttävät tätä muuttujaa komentojen suorittamiseen kehotteessa näytettävien tietojen keräämiseksi.
Kokeile suorittaa tämä uudessa kuoressa ja katso mitä istunnolle tapahtuu:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Jos juokset history
konsolissa saat luettelon komennoista, jotka on aiemmin suoritettu tililläsi.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Kun tämä muuttuja on asetettu, uudet merkinnät tallentavat ajan komennon mukana, joten tulos näyttää tältä:
1871 Suoritin tämän osoitteessa: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Tein tämän osoitteessa: 01/05/19 13:38:19 curl bbc.co.uk 1873 Tein tämän osoitteessa: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Suoritin tämän osoitteessa: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Tein tämän osoitteessa: 01 /05/19 13:39:25 sudo su -
Muotoilu vastaa merkkejä kohteesta man date
.
3) CDPATH
Voit säästää aikaa komentorivillä käyttämällä tätä muuttujaa hakemistojen vaihtamiseen yhtä helposti kuin annat komentoja.
kuten PATH
, muuttuva CDPATH
on kaksoispisteillä eroteltu luettelo polkuista. Kun suoritat komennon cd
suhteellisella polulla (eli ilman kauttaviivaa), oletusarvoisesti komentotulkki etsii vastaavia nimiä paikallisesta kansiosta. CDPATH
etsii antamillasi poluilla hakemistoa, johon haluat mennä.
Jos asennat CDPATH
tällä tavalla:
$ CDPATH=/:/lib
ja kirjoita sitten:
$ cd /home
$ cd tmp
niin päädyt aina sisään /tmp
missä ikinä oletkin.
Ole kuitenkin varovainen, koska jos et määritä luettelossa paikallista (.
) -kansioon, et voi luoda muuta kansiota tmp
ja mene siihen tavalliseen tapaan:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Oho!
Tämä on samanlaista hämmennystä, jonka tunsin, kun tajusin, että paikallinen kansio ei sisälly tutumpaan muuttujaan PATH
... mutta sinun on tehtävä se PATH-muuttujassasi, koska sinut saatetaan huijata suorittamaan väärennetty komento jostain ladatusta koodista.
Omani on asetettu lähtöpisteen mukaan:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Oletko koskaan miettinyt kirjoittamista exit
viekö se sinut pois nykyisestä bash-kuoresta toiseen "emä"-kuoreen, vai sulkeeko se vain konsoli-ikkunan kokonaan?
Tämä muuttuja seuraa kuinka syvälle olet sisäkkäin bash-kuoressa. Jos luot uuden terminaalin, sen arvoksi tulee 1:
$ echo $SHLVL
1
Sitten, jos aloitat toisen shell-prosessin, luku kasvaa:
$ bash
$ echo $SHLVL
2
Tämä voi olla erittäin hyödyllistä komentosarjoissa, joissa et ole varma, haluatko poistua vai ei, tai jos et ole varma siitä, missä olet sisäkkäin.
5) LINENO
Muuttuja on hyödyllinen myös nykyisen tilan analysoinnissa ja virheenkorjauksessa LINENO
, joka raportoi istunnossa tähän mennessä suoritettujen komentojen määrän:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Tätä käytetään useimmiten skriptien virheenkorjauksessa. Rivien lisääminen kuten echo DEBUG:$LINENO
, voit nopeasti määrittää, missä skriptin kohdassa olet (tai et).
6) REPLY
Jos, kuten minä, kirjoitat yleensä koodin näin:
$ read input
echo do something with $input
Voi tulla yllätyksenä, että sinun ei tarvitse huolehtia muuttujan luomisesta ollenkaan:
$ read
echo do something with $REPLY
Tämä tekee saman asian.
7) TMOUT
Tämän muuttujan asettaminen toimii suojana, jotta vältytään viipymästä tuotantopalvelimilla liian pitkään turvallisuussyistä tai vahingossa tapahtuvan vaarallisen virheen päätteessä.
Jos mitään ei syötetä tiettyyn sekuntimäärään, komentotulkki poistuu.
Eli tämä on vaihtoehto sleep 1 && exit
:
$ TMOUT=1
Lähde: will.com