Shtatë ndryshore të papritura të Bash

Duke duke në serinë e shënimeve për funksionet e më pak të njohura bash, do t'ju tregoj mbi shtatë variabla që ndoshta nuk i dini.

1) PROMPT_COMMAND

Ndoshta tashmë jeni në dijeni se si mund të manipuloni mesazhin e prompt-it për të shfaqur informacione të ndryshme të dobishme, por jo të gjithë dinë se çdo herë kur shfaqet prompt-i mund të ekzekutohet një komandë shell.

Në të vërtetë, shumë manipulues të komplikuar të prompt-it përdorin këtë variabël për të ekzekutuar komanda për të mbledhur informacionin që shfaqet në prompt.

Provo ta ekzekutosh këtë në një shell të ri dhe do të shohësh se çfarë ndodh me seancën:

$ PROMPT_COMMAND='echo -n "shkruaj prompt-in në " && date'

2) HISTTIMEFORMAT

Nëse ekzekutohet history kur ti do të marrësh një listë komandash që janë ekzekutuar më parë nën llogarinë tuaj.

$ HISTTIMEFORMAT='E ekzekutova këtë në: %d/%m/%y %T '

Pasi të jetë vendosur ky variabël, regjistrimet e reja shënojnë kohën së bashku me komandën, prandaj rezultati do të duket kështu:

1871  E ekzekutova këtë në: 01/05/19 13:38:07 cat /etc/resolv.conf
1872  E ekzekutova këtë në: 01/05/19 13:38:19 curl bbc.co.uk
1873  E ekzekutova këtë në: 01/05/19 13:38:41 sudo vi /etc/resolv.conf
1874  E ekzekutova këtë në: 01/05/19 13:39:18 curl -vvv bbc.co.uk
1876  E ekzekutova këtë në: 01/05/19 13:39:25 sudo su -

Formatimi përputhet me simbolet nga man date.

3) CDPATH

Për të kursyer kohë në linjën e komandës, mund të përdorni këtë variabël për të ndryshuar direktorinë ashtu siç thirrni komandat.

Si dhe për, variabla CDPATH përfaqëson një listë rrugësh të ndara me dy pika. Kur ekzekutoni një komandë cd me një rrugë relative (dmth, pa shenjën / në fillim), për default shell kërkon në dosjen tuaj lokale për emrat përkatës. CDPATH do të kërkojë në rrugët që keni dhënë për direktoriumin që dëshironi të shkoni.

Nëse e vendosni CDPATH ashtu si:

$ CDPATH=/:/lib

dhe pastaj jepni:

$ cd /home
$ cd tmp

në këtë mënyrë gjithmonë do të shkoni në /tmp pavarësisht se ku ndodheni.

Megjithatë, kini kujdes, sepse nëse nuk e përfshini dosjen lokale (.) në listë, nuk do të mund të krijoni një dosje tjetër tmp dhe të shkoni te ajo, si zakonisht:

$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp

Ups!

Kjo duket si një konfuzion që unë ndjeva kur kuptova që dosja lokale nuk ishte përfshirë në variablën më të njohur për
 por duhet ta bëni këtë në variablën PATH, sepse mund të mashtroheni duke ekzekutuar një komandë të rreme nga ndonjë kod i shkarkuar.

E mia vendoset si pikë fillese:

CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt

4) SHLVL

A keni menduar ndonjëherë, duke shkruar exit do t'shfaq nga shell-i aktual bash në një shell tjetër "prind" ose thjesht do ta mbyllë plotësisht dritaren e konsolës?

Kjo variablë ndjek sa thellë jeni të futur në shell-in bash. Nëse krijoni një terminal të ri, ajo vendoset në 1:

$ echo $SHLVL
1

Pastaj, nëse nisni një proces tjetër shell, numri rritet:

$ bash
$ echo $SHLVL
2

Kjo mund të jetë shumë e dobishme në skenaret ku nuk jeni të sigurt nëse duhet të dilni ose jo, ose për të ndjekur se ku ndodheni në thellësi.

5) LINENO

Gjithashtu, për analizimin e gjendjes aktuale dhe përdebugimin, e dobishme është variabla LINENO, e cila tregon numrin e komandave të ekzekutuara deri në këtë moment në sesion:

$ bash
$ echo $LINENO
1
$ echo $LINENO
2

Kjo përdoret më së shpeshti gjatë përdebugimit të skenareve. Duke vendosur rreshta të tillë si echo DEBUG:$LINENO, ju mund të përcaktoni shpejt se ku jeni në skenar (apo jo).

6) REPLY

Nëse, si unë, zakonisht shkruani një kod të tillë:

$ read input
echo bëni diçka me $input

atëherë mund të jetë një surprizë se nuk keni nevojë të shqetësoheni fare për të krijuar një variabël:

$ read
echo bëni diçka me $REPLY

Kjo bën të njëjtën gjë.

7) TMOUT

Për të mos qendruar shumë gjatë në serverët prodhues për arsye sigurie ose për të mos nisur ndonjë gjë të rrezikshme në terminalin e gabuar, vendosja e kësaj variabli vepron si një mbrojtje.

Nëse nuk bëhet asnjë hyrje brenda numrit të caktuar të sekondave, ndodh dalja nga shell-i.

Pra, kjo është një alternativë sleep 1 && exit:

$ TMOUT=1

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster