Märkmete seeria jätkamine selle kohta
1) PROMPT_COMMAND
Võib-olla teate juba, kuidas viipaga manipuleerida, et näidata mitmesugust kasulikku teavet, kuid mitte kõik ei tea, et saate käivitada shell-käsu iga kord, kui viipa kuvatakse.
Tegelikult kasutavad paljud keerukad viipade manipulaatorid seda muutujat käskude täitmiseks, et koguda viibal kuvatavat teavet.
Proovige seda uues kestas käivitada ja vaadake, mis seansiga juhtub:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Kui jooksed history
konsoolis saate loendi käskudest, mida teie kontol varem käivitati.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Kui see muutuja on määratud, salvestavad uued kirjed aja koos käsuga, nii et väljund näeb välja järgmine:
1871 Käitsin seda aadressil: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Käitsin seda aadressil: 01/05/19 13:38:19 curl bbc.co.uk 1873 : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Käivitasin seda: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Käivitasin seda: 01 /05/19 13:39:25 sudo su -
Vormindamine vastab tähemärkidele alates man date
.
3) CDPATH
Käsurea aja säästmiseks saate seda muutujat kasutada kataloogide muutmiseks sama lihtsalt kui käskude väljastamisega.
Kui PATH
, muutuv CDPATH
on kooloniga eraldatud teede loend. Kui käivitate käsu cd
suhtelise teega (st ilma kaldkriipsuta), otsib kest vaikimisi teie kohalikust kaustast sobivaid nimesid. CDPATH
otsib teie antud radadel kataloogi, kuhu soovite minna.
Kui installite CDPATH
sel viisil:
$ CDPATH=/:/lib
ja seejärel sisestage:
$ cd /home
$ cd tmp
siis jõuad alati sinna /tmp
olenemata sellest, kus sa oled.
Kuid olge ettevaatlik, sest kui te ei määra loendis kohalikku (.
) kausta, siis ei saa te ühtegi teist kausta luua tmp
ja minge selle juurde nagu tavaliselt:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Oih!
See sarnaneb segadusega, mida tundsin, kui mõistsin, et kohalik kaust ei kuulu tuttavama muutuja hulka PATH
... aga sa pead seda tegema PATH muutujas, sest sind võidakse meelitada mõnest allalaaditud koodist võltskäsku käivitama.
Minu oma määrab lähtepunkt:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Kas olete kunagi mõelnud, kirjutades exit
kas see viib teid praegusest bash-shellist välja teise "vanema" kesta juurde või sulgeb see konsooli akna täielikult?
See muutuja jälgib, kui sügaval bash-shellis olete. Kui loote uue terminali, määratakse selle väärtuseks 1:
$ echo $SHLVL
1
Seejärel, kui käivitate teise shell-protsessi, suureneb arv:
$ bash
$ echo $SHLVL
2
See võib olla väga kasulik skriptides, kus te pole kindel, kas väljuda või mitte, või jälgida, kus olete pesastatud.
5) LINENO
Muutuja on kasulik ka hetkeoleku analüüsimiseks ja silumiseks LINENO
, mis teatab seansi jooksul seni täidetud käskude arvu:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Seda kasutatakse kõige sagedamini skriptide silumisel. Liinide lisamine nagu echo DEBUG:$LINENO
, saate kiiresti kindlaks teha, kus skriptis olete (või mitte).
6) REPLY
Kui, nagu mina, kirjutate tavaliselt koodi järgmiselt:
$ read input
echo do something with $input
Võib tulla üllatusena, et te ei pea muutuja loomise pärast üldse muretsema:
$ read
echo do something with $REPLY
See teeb sama asja.
7) TMOUT
Et vältida turvakaalutlustel liiga kaua tootmisserverites viibimist või millegi kogemata vales terminalis ohtlikku käivitamist, toimib selle muutuja seadmine kaitsena.
Kui määratud arvu sekundite jooksul midagi ei sisestata, siis kest väljub.
See tähendab, et see on alternatiiv sleep 1 && exit
:
$ TMOUT=1
Allikas: www.habr.com