ይህን ገጽ በፍለጋ ውስጥ ካገኙት ምናልባት bashን በማሄድ ላይ አንዳንድ ችግሮችን ለመፍታት እየሞከሩ ይሆናል።
ምናልባት የእርስዎ ባሽ አካባቢ የአካባቢን ተለዋዋጭ እያዘጋጀ አይደለም እና ለምን እንደሆነ አይገባዎትም። የሆነ ነገር በተለያዩ ባሽ ማስነሻ ፋይሎች ወይም መገለጫዎች ወይም ሁሉም ፋይሎች በዘፈቀደ እስከሰራ ድረስ አጣብቀህ ሊሆን ይችላል።
ያም ሆነ ይህ, የዚህ ማስታወሻ ነጥብ ችግሮችን ለመቋቋም እንዲችሉ በተቻለ መጠን በቀላሉ bash ለመጀመር ሂደቱን መዘርጋት ነው.
ዲያግራም
ይህ የፍሰት ገበታ bash ሲሰራ ሁሉንም ሂደቶች ያጠቃልላል።
አሁን እያንዳንዱን ክፍል በዝርዝር እንመልከታቸው.
ሼል ይግቡ?
በመጀመሪያ በመግቢያ ሼል ውስጥ መሆንዎን ወይም አለመሆኑን መምረጥ ያስፈልግዎታል.
የመግቢያ ሼል ለበይነተገናኝ ክፍለ ጊዜ ሲገቡ የሚያስገቡት የመጀመሪያው ሼል ነው። የመግቢያ ሼል የተጠቃሚ ስም እና የይለፍ ቃል አያስፈልገውም። ባንዲራ በማከል የመግቢያ ቅርፊቱን እንዲጀምር ማስገደድ ይችላሉ። --login
ሲጠራ bash
, ለምሳሌ:
bash --መግባት
የመግቢያ ቅርፊቱ የባሽ ዛጎልን መጀመሪያ ሲጀምሩ የመሠረቱን አካባቢ ያዘጋጃል.
በይነተገናኝ?
ከዚያ ዛጎሉ መስተጋብራዊ መሆኑን ወይም አለመሆኑን ይወስናሉ.
ይህ በተለዋዋጭ መገኘት ሊረጋገጥ ይችላል PS1
(የትእዛዝ ግቤት ተግባሩን ይጭናል)
ከሆነ ["${PS1-}]; ከዚያም አስተጋባ በይነተገናኝ ሌላ አስተጋባ ያልሆኑ መስተጋብራዊ fi
ወይም አማራጩ እንደተዘጋጀ ይመልከቱ -i
, ልዩ የሰረዝ ተለዋዋጭ በመጠቀም -
በ bash ለምሳሌ፡-
$echo$-
በውጤቱ ውስጥ ምልክት ካለ i
, ከዚያም ቅርፊቱ መስተጋብራዊ ነው.
በመግቢያ ሼል ውስጥ?
በመግቢያ ሼል ውስጥ ከሆኑ bash ፋይሉን ይፈልጋል /etc/profile
እና ካለ ይሮጣል.
ከዚያ ከእነዚህ ሶስት ፋይሎች ውስጥ አንዱን በሚከተለው ቅደም ተከተል ይፈልጉ።
~/.bash_profile ~/.bash_login ~/.መገለጫ
አንዱን ሲያገኝ ይጀምርና ሌሎቹን ይዘላል።
በይነተገናኝ ሼል ውስጥ?
የመግቢያ ያልሆነ ሼል ውስጥ ከሆኑ, ቀደም ሲል በመግቢያ ሼል ውስጥ እንደነበሩ ይገመታል, አካባቢው የተዋቀረ እና ይወርሳል.
በዚህ አጋጣሚ የሚከተሉት ሁለት ፋይሎች ካሉ በቅደም ተከተል ይከናወናሉ፡
/ወዘተ/bash.bashrc ~/.bashrc
አማራጭ የለም?
በመግቢያ ሼል ወይም በይነተገናኝ ሼል ውስጥ ከሌሉ አካባቢዎ በእርግጥ ባዶ ይሆናል። ይህ ብዙ ግራ መጋባትን ያመጣል (ስለ ክሮን ስራዎች ከዚህ በታች ይመልከቱ).
በዚህ ጉዳይ ላይ bash ተለዋዋጭውን ይመለከታል BASH_ENV
አካባቢዎን እና እዚያ የተገለጸውን ተዛማጅ ፋይል ይፈጥራል.
የተለመዱ ችግሮች እና የጣት ህጎች
ክሮን ስራዎች
ባሽ ጅምርን የማረምበት ጊዜ 95% የሚሆነው የክሮን ስራው እንደተጠበቀው እየሰራ ባለመሆኑ ነው።
ይህ የተረገመ ተግባር በትእዛዝ መስመሩ ላይ ስሰራው ጥሩ ይሰራል፣ ነገር ግን በ crontab ስሰራው አይሳካም።.
ይህ ነው ሁለት ምክንያቶች:
- ክሮን ስራዎች በይነተገናኝ አይደሉም.
- ከትዕዛዝ መስመር ስክሪፕቶች በተለየ፣ ክሮን ስራዎች የሼል አካባቢን አይወርሱም።
በተለምዶ የሼል ስክሪፕት መስተጋብራዊ አለመሆኑን አያስተውሉም ወይም አይጨነቁም ምክንያቱም አካባቢው ከሼል የሚወርሰው ነው። ይህ ማለት ሁሉም ነገር ማለት ነው PATH
и alias
እርስዎ እንደሚጠብቁት የተዋቀረ.
ለዚህም ነው ብዙውን ጊዜ አንድ የተወሰነ ነገር ማዘጋጀት አስፈላጊ የሆነው PATH
ለሚከተለው ክሮን ተግባር፡-
* * * * * PATH=${PATH}:/መንገድ/ወደ/የእኔ/ፕሮግራም/አቃፊ myprogram
እርስ በርስ የሚጣሩ ስክሪፕቶች
ሌላው የተለመደ ችግር ስክሪፕቶች እርስ በርስ ለመደወል በስህተት ሲዋቀሩ ነው. ለምሳሌ, /etc/profile
ይግባኝ ማለት ነው። ~/.bashrc
.
ይሄ ብዙውን ጊዜ የሚከሰተው አንድ ሰው አንዳንድ ስህተቶችን ለማስተካከል ሲሞክር እና ሁሉም ነገር የሚሰራ መስሎ ሲታይ ነው። እንደ አለመታደል ሆኖ እነዚህን የተለያዩ አይነት ክፍለ ጊዜዎች መለየት ሲፈልጉ አዳዲስ ችግሮች ይከሰታሉ።
ማጠሪያ ያለው ዶከር ምስል
ሼል ለማስኬድ ለመሞከር፣ ደህንነቱ በተጠበቀ አካባቢ ውስጥ ሼልን ለማረም የሚያገለግል የዶከር ምስል ፈጠርኩ።
አስጀምር ፦
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
ዶከርፋይል ይገኛል።
መግቢያን ለማስገደድ እና የመግቢያ ሼል ለማስመሰል፡-
$ bash --login
የተለዋዋጮችን ስብስብ ለመሞከር BASH_ENV
:
$ env | grep BASH_ENV
ለማረም crontab
ቀላል ስክሪፕት በየደቂቃው (በ /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
ምንጭ: hab.com