Ukuba ufumene eli phepha kuphendlo, mhlawumbi uzama ukusombulula ingxaki ethile ngokusebenzisa i-bash.
Mhlawumbi indawo yakho ye-bash ayimiseli ukuguquguquka kokusingqongileyo kwaye awusiqondi isizathu. Unokuba ubambe into kwiifayile ezahlukeneyo ze-bash okanye iinkangeleko okanye zonke iifayile ngokungakhethiyo ide isebenze.
Kwimeko nayiphi na into, inqaku lale nqaku kukubeka inkqubo yokuqalisa i-bash ngokulula kangangoko ukuze ukwazi ukujongana neengxaki.
Umzobo
Le tshati ishwankathela zonke iinkqubo xa uqhuba i-bash.
Ngoku makhe sihlolisise inxalenye nganye.
Ngena kwi-Shell?
Okokuqala kufuneka ukhethe ukuba ukulo qokobhe lokungena okanye hayi.
Iqokobhe lokungena liqokobhe lokuqala olifakayo xa uloga ngeseshoni yonxibelelwano. Iqokobhe lokungena alifuni igama lomsebenzisi kunye negama lokugqitha. Unganyanzela iqokobhe lokungena ukuba liqale ngokongeza iflegi --login
xa ebizwa bash
, umzekelo:
bash --login
Iqokobhe lokungena licwangcisa imeko-bume yesiseko xa uqala iqokobhe le-bash.
Interactive?
Emva koko unquma ukuba iqokobhe liyasebenzisana okanye hayi.
Oku kunokujongwa kubukho benguqu PS1
(ihlohla umsebenzi wegalelo lomyalelo):
ukuba [ "${PS1-}" ]; emva koko i-echo interactive enye i-echo non-interactive fi
Okanye ubone ukuba ukhetho lusetiwe -i
, usebenzisa umahluko okhethekileyo weqhagamshela -
kwi-bash, umzekelo:
$echo$-
Ukuba kukho isimboli kwimveliso i
, ngoko iqokobhe liyasebenzisana.
Kwiqokobhe lokungena?
Ukuba ukwiqokobhe lokungena, emva koko i-bash ijonge ifayile /etc/profile
kwaye ibaleka ukuba ikhona.
Emva koko khangela nayiphi na kwezi fayile zintathu ngolu hlobo lulandelayo:
~/.bash_iprofayile ~/.bash_login ~/.iprofayile
Xa ifumene enye, iyayiqala ize izitsibe ezinye.
Kwiqokobhe elisebenzisanayo?
Ukuba ukwiqokobhe elingangeniyo, kucingelwa ukuba sele ukulo iqokobhe lokungena, imeko-bume iqwalaselwe kwaye iza kufunyanwa njengelifa.
Kule meko, ezi fayile zimbini zilandelayo zenziwa ngokulandelelana, ukuba zikhona:
/etc/bash.bashrc ~/.bashrc
Akukho khetho?
Ukuba awukho nokuba kwiqokobhe lokungena okanye iqokobhe elisebenzisanayo, ke okusingqongileyo kuya kuba nanto. Oku kubangela ukudideka okukhulu (jonga ngezantsi malunga nemisebenzi ye-cron).
Kule meko i-bash ijonge ukuguquguquka BASH_ENV
imeko-bume yakho kwaye yenza ifayile ehambelanayo ekhankanyiweyo apho.
Ubunzima obuqhelekileyo kunye neMithetho yeThupha
imisebenzi yecron
I-95% yexesha ndilungisa i-bash yokuqalisa kungenxa yokuba umsebenzi we-cron awusebenzi njengoko kulindelekile.
Lo msebenzi unzima isebenza kakuhle xa ndiyiqhuba kumgca womyalelo, kodwa iyasilela xa ndiyiqhuba kwi-crontab.
kuyinto izizathu ezibini:
- Imisebenzi yeCron ayisebenzi.
- Ngokungafaniyo nezikripthi zelayini yomyalelo, imisebenzi yecron ayililifa imo engqongileyo yeqokobhe.
Ngokwesiqhelo awuzukuqaphela okanye ukhathale ukuba iskripthi seqokobhe asisebenzi kuba imeko-bume ifumana ilifa kwiqokobhe elisebenzisanayo. Oku kuthetha ukuba yonke into PATH
ΠΈ alias
iqwalaselwe njengoko unokulindela.
Yiyo loo nto kudla ngokuba yimfuneko ukuseta into ethile PATH
ngomsebenzi wecron njengalapha:
* * * * * UMENDO=${INDLELA}:/indlela/ukuya/yam/inkqubo/ifolda myprogram
Izikripthi zifowunelana
Enye ingxaki eqhelekileyo kuxa izikripthi ziqwalaselwe ngempazamo ukubizana. Umzekelo, /etc/profile
izibheno ku ~/.bashrc
.
Oku kwenzeka rhoqo xa umntu ezama ukulungisa impazamo kwaye yonke into ibonakala isebenza. Ngelishwa, xa ufuna ukwahlula ezi ntlobo zahlukeneyo zeeseshini, kuvela iingxaki ezintsha.
Umfanekiso weSandboxed Docker
Ukuzama ukusebenzisa iqokobhe, ndenze umfanekiso weDocker onokuthi usetyenziswe ukulungisa iqokobhe kwindawo ekhuselekileyo.
Qalisa:
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
I-Dockerfile ikhona
Ukunyanzela ukungena kunye nokulinganisa iqokobhe lokungena:
$ bash --login
Ukuvavanya uluhlu lwezinto eziguquguqukayo BASH_ENV
:
$ env | grep BASH_ENV
Ukulungisa ingxaki crontab
iskripthi esilula siya kuphunyezwa ngomzuzu ngamnye (in /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
umthombo: www.habr.com