جي باري ۾ نوٽس جو سلسلو جاري
1) PROMPT_COMMAND
توهان شايد اڳ ۾ ئي ڄاڻو ٿا ته مختلف مفيد معلومات ڏيکارڻ لاء پرامپٽ کي ڪيئن استعمال ڪجي، پر هرڪو اهو نه ٿو ڄاڻي ته توهان هر وقت شيل ڪمانڊ هلائي سگهو ٿا جڏهن پرامٽ ڏيکاريل آهي.
حقيقت ۾، ڪيترائي پيچيده پرامپٽ مينپوليٽر هن متغير کي استعمال ڪن ٿا حڪمن تي عمل ڪرڻ لاء معلومات گڏ ڪرڻ لاء جيڪي پرامٽ ۾ ڏيکاريل آهن.
ڪوشش ڪريو ھن کي ھڪڙي نئين شيل ۾ هلائڻ ۽ ڏسو ته سيشن کي ڇا ٿيندو:
$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
2) HISTTIMEFORMAT
جيڪڏهن توهان هلندا آهيو history
ڪنسول ۾، توهان کي حڪمن جي هڪ فهرست ملندي جيڪا اڳ ۾ توهان جي اڪائونٽ جي تحت جاري ڪئي وئي هئي.
$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '
هڪ دفعو هي متغير مقرر ٿيڻ کان پوء، نوان داخل ٿيڻ وقت کي حڪم سان گڏ رڪارڊ ڪيو ويندو آهي، تنهنڪري آئوٽ هن طرح نظر ايندو:
1871 مون هن تي ڊوڙيو: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 مون هن تي ڊوڙيو: 01/05/19 13:38:19 curl bbc.co.uk 1873 مون هن تي ڊوڙيو : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 مون هن تي هليو: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 مون هن تي ڊوڙيو: 01 /05/19 13:39:25 sudo su -
فارميٽنگ مان اکرن سان ملن ٿا man date
.
3) CDPATH
ڪمانڊ لائن تي وقت بچائڻ لاءِ، توھان ھي متغير استعمال ڪري سگھوٿا ڊائريڪٽري کي تبديل ڪرڻ لاءِ جيئن آساني سان توھان حڪم جاري ڪريو.
انهي سان گڏوگڏ PATH
، متغير CDPATH
رستن جي هڪ ڪالون کان الڳ ڪيل فهرست آهي. جڏهن توهان حڪم هلائيندا آهيو cd
هڪ لاڳاپي واري رستي سان (يعني ڪو به اڳوڻو سليش نه آهي)، ڊفالٽ طور تي شيل توهان جي مقامي فولڊر ۾ نالن جي نالن لاء نظر اچي ٿو. CDPATH
توھان انھن رستن ۾ ڳولھيو ٿا جيڪي توھان ڏنائين ڊاريڪٽري لاءِ توھان وڃڻ چاھيو ٿا.
جيڪڏهن توهان انسٽال ڪريو CDPATH
اھڙي طرح
$ CDPATH=/:/lib
۽ پوء داخل ڪريو:
$ cd /home
$ cd tmp
پوء توهان هميشه ۾ ختم ٿي ويندا /tmp
ڪابه پرواه ناهي ته توهان ڪٿي آهيو.
بهرحال، محتاط رهو، ڇاڪاڻ ته جيڪڏهن توهان فهرست ۾ مقامي هڪ بيان نه ڪيو آهي (.
) فولڊر، پوء توهان ڪنهن ٻئي فولڊر کي ٺاهي نه سگھندا tmp
۽ ان ڏانهن وڃو معمول وانگر:
$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp
اڙي!
اهو مونجهاري وانگر آهي مون محسوس ڪيو جڏهن مون محسوس ڪيو ته مقامي فولڊر وڌيڪ واقف متغير ۾ شامل نه ڪيو ويو آهي PATH
... پر توهان کي اهو ڪرڻو پوندو توهان جي PATH متغير ۾ ڇو ته توهان کي ڪجهه ڊائون لوڊ ڪيل ڪوڊ مان جعلي ڪمانڊ هلائڻ ۾ فريب ڪيو ويندو.
مائن شروعاتي نقطي طرفان مقرر ڪئي وئي آهي:
CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt
4) SHLVL
ڇا توهان ڪڏهن تعجب ڪيو آهي، ٽائپنگ exit
ڇا اھو توھان کي توھان جي موجوده بش شيل مان ڪڍي ٻئي ”والدين“ شيل ڏانھن وٺي ويندو، يا اھو صرف ڪنسول ونڊو کي مڪمل طور تي بند ڪندو؟
هي متغير ٽريڪ رکي ٿو ته توهان بيش شيل ۾ ڪيتري حد تائين nested آهيو. جيڪڏھن توھان ھڪڙو نئون ٽرمينل ٺاھيو، اھو مقرر ڪيو ويو آھي 1:
$ echo $SHLVL
1
پوء، جيڪڏهن توهان هڪ ٻيو شيل عمل شروع ڪيو، تعداد وڌائي ٿو:
$ bash
$ echo $SHLVL
2
اهو لکت ۾ تمام ڪارائتو ٿي سگهي ٿو جتي توهان کي پڪ ناهي ته ٻاهر نڪرڻ يا نه، يا ٽريڪ رکو جتي توهان nested آهيو.
5) LINENO
متغير موجوده حالت جو تجزيو ڪرڻ ۽ ڊيبگ ڪرڻ لاءِ پڻ ڪارائتو آهي LINENO
، جيڪو سيشن ۾ جاري ڪيل حڪمن جو تعداد ٻڌائي ٿو اڃا تائين:
$ bash
$ echo $LINENO
1
$ echo $LINENO
2
اهو اڪثر استعمال ڪيو ويندو آهي جڏهن اسڪرپٽ ڊيبنگ ڪرڻ. لائينون داخل ڪرڻ وانگر echo DEBUG:$LINENO
، توهان تڪڙو اندازو لڳائي سگهو ٿا ته اسڪرپٽ ۾ توهان ڪٿي آهيو (يا نه).
6) REPLY
جيڪڏهن، مون وانگر، توهان عام طور تي هن طرح ڪوڊ لکندا آهيو:
$ read input
echo do something with $input
اهو ٿي سگهي ٿو هڪ تعجب جي طور تي ته توهان کي پريشان ٿيڻ جي ضرورت ناهي ته متغير ٺاهڻ بابت سڀ ڪجهه:
$ read
echo do something with $REPLY
اهو ساڳيو ڪم ڪري ٿو.
7) TMOUT
حفاظتي سببن لاءِ پروڊڪٽ سرورز تي تمام گهڻو ڊگهو رهڻ کان بچڻ لاءِ يا غلط ٽرمينل ۾ غلط طور تي ڪجهه خطرناڪ هلائڻ کان بچڻ لاءِ، هي متغير قائم ڪرڻ هڪ تحفظ جي طور تي ڪم ڪري ٿو.
جيڪڏهن سيڪنڊن جي سيٽ نمبر لاء ڪجھ به داخل نه ڪيو ويو آهي، شيل نڪرندو آهي.
اهو آهي، هي هڪ متبادل آهي sleep 1 && exit
:
$ TMOUT=1
جو ذريعو: www.habr.com