Mandeha Bash amin'ny antsipiriany

Raha nahita ity pejy ity ianao tamin'ny fikarohana, dia mety manandrana mamaha olana amin'ny fampandehanana bash ianao.

Angamba ny tontolo iainanao bash dia tsy mametraka fari-piainan'ny tontolo iainana ary tsy azonao ny antony. Mety efa niraikitra zavatra tamin'ny rakitra bash boot isan-karazany na ny mombamomba azy na ny rakitra rehetra ianao mandra-pahombiazana.

Na izany na tsy izany, ny tanjon'ity fanamarihana ity dia ny fametrahana ny fomba fanombohana ny bash araka izay azo atao mba hahafahanao miatrika olana.

Kisary

Ity tabilao mikoriana ity dia mamintina ny dingana rehetra rehefa mihazakazaka bash.

Mandeha Bash amin'ny antsipiriany

Andeha hojerentsika akaiky ny ampahany tsirairay.

Midira Shell?

Voalohany dia mila misafidy ianao na ao anaty shell login na tsia.

Ny akora fidirana no akorandriaka voalohany ampidirinao rehefa miditra amin'ny fivoriana ifanakalozan-kevitra ianao. Ny shell login dia tsy mila solon-anarana sy tenimiafina. Azonao atao ny manery ny akora fidirana mba hanomboka amin'ny fampidirana saina --login rehefa antsoina bash, ohatra:

bash --login

Ny shell login dia mametraka ny tontolo fototra rehefa manomboka ny bash shell ianao.

Interactive?

Avy eo ianao dia mamaritra raha mifandray na tsia ny akorandriaka.

Izany dia azo jerena amin'ny fisian'ny variable PS1 (mametraka ny fampandehanana baiko izy io):

raha [ "${PS1-}" ]; dia manako interactive hafa dia manako tsy interactive fi

Na jereo raha napetraka ny safidy -i, mampiasa fari-pitsipika manokana - amin'ny bash, ohatra:

$echo$-

Raha misy marika amin'ny famoahana i, dia mifampiresaka ny akorandriaka.

Ao amin'ny shell login?

Raha ao anaty shell login ianao dia mitady ny rakitra ny bash /etc/profile ary mandeha raha misy.

Dia tadiavo ny iray amin'ireo rakitra telo ireo amin'ny filaharana manaraka:

~/.bash_profile ~/.bash_login ~/.profile

Rehefa mahita iray izy dia manomboka izany ary mitsambikina ny hafa.

Amin'ny shell interactive?

Raha ao anaty akora tsy miditra ianao, dia heverina fa efa tao anaty akora fidirana ianao, voarindra ny tontolo iainana ary ho lovana.

Amin'ity tranga ity, ireto rakitra roa manaraka ireto dia tanterahina araka ny filaharany, raha misy izy ireo:

/etc/bash.bashrc ~/.bashrc

Tsy misy safidy?

Raha tsy ao anaty shell login na shell interactive ianao dia ho foana tokoa ny tontolo iainanao. Miteraka fisafotofotoana be izany (jereo etsy ambany momba ny asa cron).

Amin'ity tranga ity, ny bash dia mijery ny variable BASH_ENV ny tontolo iainanao ary mamorona ny rakitra mifanaraka amin'izany voalaza ao.

Fahasarotana mahazatra sy fitsipiky ny ankihibe

asa cron

95% amin'ny fotoana aho debug bash startup dia satria tsy mandeha araka ny nantenaina ny asa cron.

Ity asa ratsy ity miasa tsara rehefa mihazakazaka amin'ny baiko baiko aho, fa tsy mahomby rehefa mihazakazaka izany amin'ny crontab.

izany antony roa:

  • Ny asa Cron dia tsy mifampiraharaha.
  • Tsy toy ny script andalana baiko, ny asa cron dia tsy mandova ny tontolo manodidina.

Amin'ny ankapobeny dia tsy ho tsikaritrao na tsy hiraharaha fa ny script shell dia tsy mifandray satria ny tontolo iainana dia mandova avy amin'ny shell interactive. Midika izany fa ny zavatra rehetra PATH и alias namboarina araka ny nantenainao.

Izany no antony ilaina matetika ny fametrahana manokana PATH ho an'ny asa cron toy izao:

* * * * * LALANA=${PATH}:/path/to/my/program/folder myprogram

Scripts mifampiantso

Ny olana mahazatra iray hafa dia rehefa diso ny fanamboarana ny script mba hifampiantso. Ohatra, /etc/profile manondro ny ~/.bashrc.

Matetika no mitranga izany rehefa misy olona nanandrana nanamboatra fahadisoana ary toa nandeha ny zava-drehetra. Indrisy anefa, rehefa mila manasaraka ireo karazana fivoriana ireo ianao, dia misy olana vaovao.

Sary Sandboxed Docker

Mba hanandrana amin'ny fampandehanana akorandriaka dia namorona sary Docker aho izay azo ampiasaina hanesorana ny akorandriaka amin'ny tontolo azo antoka.

fandefasana:

$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash

Dockerfile no misy eto.

Raha hanery ny fidirana sy hanao simulation shell login:

$ bash --login

Hanandrana andian-varimbazaha BASH_ENV:

$ env | grep BASH_ENV

Ho an'ny debugging crontab script tsotra dia hotanterahina isaky ny minitra (in /root/ascript):

$ crontab -l
$ cat /var/log/script.log

Source: www.habr.com

Add a comment