Nuluykeun runtuyan catetan ngeunaan
1) PROMPT_COMMAND
Anjeun meureun geus nyaho kumaha carana ngamanipulasi ajakan pikeun nembongkeun rupa informasi mangpaat, tapi teu sadaya jelema weruh yén anjeun bisa ngajalankeun paréntah cangkang unggal waktos ajakan ditémbongkeun.
Kanyataanna, loba manipulator ajakan kompléks make variabel ieu ngajalankeun paréntah pikeun ngumpulkeun informasi nu dipintonkeun dina ajakan.
Coba ngajalankeun ieu dina cangkang anyar tur tingal kumaha kajadian ka rintakan:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
Lamun lumpat history
dina konsol nu, anjeun bakal nampa daptar paréntah saméméhna dieksekusi dina akun anjeun.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
Sakali variabel ieu disetel, éntri anyar ngarékam waktos sareng paréntahna, janten kaluaranna bakal sapertos kieu:
1871 Kuring lumpat ieu di: 01/05/19 13:38:07 ucing /etc/resolv.conf 1872 Kuring lumpat ieu di: 01/05/19 13:38:19 curl bbc.co.uk 1873 Kuring lumpat ieu di: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Kuring ngajalankeun ieu di: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Kuring ngajalankeun ieu di: 01 /05/19 13:39:25 sudo su -
Pormat cocog karakter ti man date
.
3) CDPATH
Pikeun ngahemat waktos dina garis paréntah, anjeun tiasa nganggo variabel ieu pikeun ngarobih diréktori sagampil anjeun ngaluarkeun paréntah.
siga PATH
, variabel CDPATH
mangrupa daptar jalur anu dipisahkeun titik dua. Nalika anjeun ngajalankeun paréntah cd
kalawan jalur relatif (i.e. euweuh slash ngarah), sacara standar cangkang kasampak dina folder lokal Anjeun pikeun ngaran cocog. CDPATH
bakal milarian dina jalur anu anjeun bikeun pikeun diréktori anu anjeun hoyong angkat.
Upami anjeun masang CDPATH
ku cara kieu:
$ CDPATH=/:/lib
teras lebetkeun:
$ cd /home
$ cd tmp
mangka anjeun bakal salawasna mungkas nepi di /tmp
euweuh urusan dimana anjeun.
Nanging, ati-ati, sabab upami anjeun henteu netepkeun anu lokal dina daptar (.
), mangka anjeun moal bisa nyieun polder séjén tmp
sareng angkat sapertos biasa:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
Aduh!
Ieu sami sareng kabingungan anu kuring karasa nalika kuring sadar yén folder lokal henteu kalebet kana variabel anu langkung akrab PATH
... tapi anjeun kedah ngalakukeunana dina variabel PATH anjeun sabab anjeun tiasa ditipu pikeun ngajalankeun paréntah palsu tina sababaraha kode anu diunduh.
Tambang diatur ku titik awal:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
Dupi anjeun kantos heran, ngetik exit
bakal nyandak anjeun kaluar tina cangkang bash anjeun ayeuna ka cangkang "indungna" anu sanés, atanapi ngan ukur nutup jandela konsol lengkep?
Variabel ieu ngalacak kumaha jerona anjeun dina cangkang bash. Upami anjeun nyiptakeun terminal énggal, éta disetel ka 1:
$ echo $SHLVL
1
Teras, upami anjeun ngamimitian prosés cangkang anu sanés, jumlahna ningkat:
$ bash
$ echo $SHLVL
2
Ieu tiasa pisan mangpaat dina skrip dimana anjeun teu yakin naha kaluar atanapi henteu, atanapi ngalacak dimana anjeun nested.
5) LINENO
Variabel ogé kapaké pikeun nganalisis kaayaan ayeuna sareng debugging LINENO
, anu ngalaporkeun jumlah paréntah anu dilaksanakeun dina sési sajauh ieu:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
Ieu paling sering dianggo nalika nga-debug skrip. Inserting garis kawas echo DEBUG:$LINENO
, Anjeun bisa gancang nangtukeun mana dina naskah anjeun (atanapi henteu).
6) REPLY
Upami, sapertos kuring, anjeun biasana nyerat kode sapertos kieu:
$ read input
echo do something with $input
Éta tiasa janten kejutan yén anjeun henteu kedah hariwang ngeunaan nyiptakeun variabel pisan:
$ read
echo do something with $REPLY
Ieu ngalakukeun hal anu sarua.
7) TMOUT
Pikeun ngahindarkeun tetep dina server produksi panjang teuing alesan kaamanan atawa ngahaja ngajalankeun hal bahaya di terminal salah, netepkeun variabel ieu tindakan minangka panyalindungan a.
Upami teu aya anu dilebetkeun salami sababaraha detik, cangkang bakal kaluar.
Hartina, ieu alternatif sleep 1 && exit
:
$ TMOUT=1
sumber: www.habr.com