Bash masu canjin Bash bakwai ba zato ba tsammani

Ci gaba da jerin bayanin kula game da mafi ƙarancin sani ayyuka bash, Zan nuna muku masu canji guda bakwai da ƙila ba ku sani ba.

1) PROMPT_COMMAND

Wataƙila kun riga kun san yadda ake sarrafa saƙon don nuna bayanai masu amfani daban-daban, amma ba kowa ba ne ya san cewa za ku iya gudanar da umarnin harsashi duk lokacin da aka nuna saurin.

A haƙiƙa, da yawa hadaddun manipulators na gaggawa suna amfani da wannan canjin don aiwatar da umarni don tattara bayanan da aka nuna a cikin gaggawar.

Gwada gudanar da wannan a cikin sabon harsashi kuma ga abin da zai faru da zaman:

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'

2) HISTTIMEFORMAT

Idan ka gudu history a cikin na'ura wasan bidiyo, za ku sami jerin umarni da aka aiwatar a baya a ƙarƙashin asusunku.

$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '

Da zarar an saita wannan madaidaicin, sabbin shigarwar suna yin rikodin lokacin tare da umarnin, don haka fitarwa zai yi kama da haka:

1871 Na gudu wannan a: 01/05/19 13:38:07 cat /etc/resolv.conf
1872 Na gudanar da wannan a: 01/05/19 13:38:19 curl bbc.co.uk
1873 Na gudanar da wannan a: 01/05/19 13:38:41 sudo vi /etc/resolv.conf
1874 Na gudu wannan a: 01/05/19 13:39:18 curl -vvv bbc.co.uk
1876 ​​na gudu wannan a: 01/05/19 13:39:25 sudo su -

Tsarin daidaita haruffa daga man date.

3) CDPATH

Don adana lokaci akan layin umarni, zaku iya amfani da wannan madaidaicin don canza kundayen adireshi cikin sauƙi kamar yadda kuke ba da umarni.

Kamar PATH, m CDPATH jerin hanyoyi ne masu raba hanji. Lokacin da kake gudanar da umarni cd tare da hanyar dangi (watau babu jagorar slash), ta tsohuwa harsashi yana duban babban fayil na gida don daidaita sunaye. CDPATH zai bincika a cikin hanyoyin da kuka bayar don kundin adireshin da kuke son zuwa.

Idan kun girka CDPATH ta wannan hanya:

$ CDPATH=/:/lib

sannan ka shiga:

$ cd /home
$ cd tmp

to koyaushe zaka karasa ciki /tmp duk inda kake.

Duk da haka, a yi hankali, domin idan ba ku bayyana na gida a cikin jerin ba (.) babban fayil, to ba za ku iya ƙirƙirar wani babban fayil ba tmp kuma ku tafi zuwa gare shi kamar yadda aka saba:

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

Kash!

Wannan yayi kama da ruɗani da na ji lokacin da na gane cewa ba a haɗa babban fayil ɗin gida a cikin mafi yawan saban mabambanta ba PATH... amma dole ne ku yi shi a cikin canjin PATH ɗinku saboda ana iya yaudare ku don aiwatar da umarnin karya daga wasu lambobin da aka zazzage.

An saita nawa ta wurin farawa:

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

4) SHLVL

Shin kun taɓa yin mamaki, bugawa exit zai fitar da ku daga harsashin bash ɗinku na yanzu zuwa wani harsashi na "iyaye", ko kuma zai rufe taga na'urar gaba ɗaya?

Wannan madaidaicin yana kiyaye yadda zurfafa ku ke cikin harsashi bash. Idan ka ƙirƙiri sabon tasha, an saita shi zuwa 1:

$ echo $SHLVL
1

Sannan, idan kun fara wani tsari na harsashi, adadin yana ƙaruwa:

$ bash
$ echo $SHLVL
2

Wannan na iya zama da amfani sosai a cikin rubutun inda ba ku da tabbacin ko za ku fita ko a'a, ko kuma ku lura da inda aka saka ku.

5) LINENO

Har ila yau, madaidaicin yana da amfani don nazarin yanayin halin yanzu da kuma gyara matsala LINENO, wanda ke ba da rahoton adadin umarnin da aka aiwatar a zaman ya zuwa yanzu:

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

Ana amfani da wannan galibi lokacin gyara rubutun. Saka layuka kamar echo DEBUG:$LINENO, za ku iya sauri ƙayyade inda a cikin rubutun kuke (ko a'a).

6) REPLY

Idan, kamar ni, yawanci kuna rubuta lamba kamar haka:

$ read input
echo do something with $input

Yana iya zama abin mamaki cewa ba kwa buƙatar damuwa game da ƙirƙirar canjin kwata-kwata:

$ read
echo do something with $REPLY

Wannan yana yin abu ɗaya.

7) TMOUT

Don guje wa zama a kan sabar samarwa da yawa don dalilai na tsaro ko gudanar da wani abu mai haɗari a cikin kuskuren da ba daidai ba, saita wannan canjin yana aiki azaman kariya.

Idan ba a shigar da komai ba don saita adadin daƙiƙa, harsashi yana fita.

Wato wannan madadin sleep 1 && exit:

$ TMOUT=1

source: www.habr.com

Add a comment