ስለ ተከታታይ ማስታወሻዎች መቀጠል
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 ድመት /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 ሱዶ ሱ -
ቅርጸት ከ ቁምፊዎች ጋር ይዛመዳል man date
.
3) CDPATH
በትዕዛዝ መስመሩ ላይ ጊዜ ለመቆጠብ፣ ትዕዛዞችን በሚሰጡበት ጊዜ በቀላሉ ማውጫዎችን ለመቀየር ይህንን ተለዋዋጭ መጠቀም ይችላሉ።
እንዲሁም PATH
፣ ተለዋዋጭ CDPATH
በኮሎን-የተለያዩ መንገዶች ዝርዝር ነው። ትዕዛዙን ሲያሄዱ cd
አንጻራዊ በሆነ መንገድ (ማለትም መሪ slash የለም)፣ በነባሪነት ዛጎሉ ተዛማጅ ስሞችን ለማግኘት በአካባቢዎ አቃፊ ውስጥ ይታያል። 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
አሁን ካለህበት የባሽ ሼል ወደ ሌላ "ወላጅ" ሼል ያስወጣሃል ወይስ የኮንሶል መስኮቱን ሙሉ በሙሉ ይዘጋል?
ይህ ተለዋዋጭ በባሽ ሼል ውስጥ ምን ያህል ጥልቀት እንዳለህ ይከታተላል። አዲስ ተርሚናል ከፈጠሩ ወደ 1 ተቀናብሯል፡
$ echo $SHLVL
1
ከዚያ ሌላ የሼል ሂደት ከጀመሩ ቁጥሩ ይጨምራል፡-
$ bash
$ echo $SHLVL
2
ይህ ለመውጣት ወይም ላለመውጣት እርግጠኛ በማይሆኑበት ስክሪፕቶች ውስጥ በጣም ጠቃሚ ሊሆን ይችላል፣ ወይም የት እንዳሉ ይከታተሉ።
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
ምንጭ: hab.com