Rere Bash i roto i te taipitopito

Mena i kitea e koe tenei wharangi i roto i te rapunga, kei te ngana pea koe ki te whakaoti rapanga ki te rere bash.

Kaore pea to taiao bash e whakatakoto ana i te taurangi taiao a kaore koe e mohio he aha. Kua mau pea koe i tetahi mea i roto i nga momo konae boot bash, i nga konae korero ranei, i nga konae katoa ranei i te matapōkere tae noa ki te mahi.

Ahakoa he aha, ko te kaupapa o tenei tuhipoka ko te whakatakoto i nga tikanga mo te tiimata i te bash kia taea ai e koe nga raru.

Hoahoa

Ka whakarāpopotohia e tēnei tūtohi rerenga ngā tukanga katoa i te wā e whakahaere ana i te bash.

Rere Bash i roto i te taipitopito

Inaianei ka ata titiro tatou ki ia wahanga.

Takiuru Anga?

Tuatahi me whiriwhiri koe mehemea kei roto koe i te anga takiuru, kaore ranei.

Ko te anga takiuru ko te anga tuatahi ka uru koe ina takiuru koe mo tetahi huihuinga tauwhitiwhiti. Ko te anga takiuru kaore e hiahiatia he ingoa kaiwhakamahi me te kupuhipa. Ka taea e koe te akiaki i te anga takiuru kia timata ma te taapiri haki --login ina karangahia bash, hei tauira:

bash --takiuru

Ko te anga takiuru ka whakarite i te taiao turanga ina timata koe i te anga bash.

Pāhekoheko?

Ka whakatau koe mena he tauwhitiwhiti te anga, kaore ranei.

Ka taea te tirotiro i te aroaro o te taurangi PS1 (ka whakauruhia te mahi whakauru whakahau):

ki te [ "${PS1-}" ]; katahi ka paoro tauwhitiwhiti atu ka paoro te fi kore-whakawhitiwhiti

Tirohia ranei mehemea kua whakaritea te whiringa -i, ma te whakamahi i tetahi taurangi tohuhono motuhake - i roto i te bash, hei tauira:

$echo$-

Mena he tohu kei roto i te putanga i, katahi ka tauwhitiwhiti te anga.

I roto i te anga takiuru?

Mena kei roto koe i te anga takiuru, ka rapua e bash te konae /etc/profile ka rere mena kei te noho.

Na ka rapu i tetahi o enei kōnae e toru i roto i te raupapa e whai ake nei:

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

Ka kitea tetahi, ka timata, ka pekehia etahi atu.

I roto i te anga tauwhitiwhiti?

Mena kei roto koe i te anga takiuru-kore, ka whakaarohia kua uru koe ki roto i te anga takiuru, kua whirihorahia te taiao, ka tuku iho.

I tenei take, ka mahia nga konae e rua e whai ake nei, mena kei te noho tonu:

/etc/bash.bashrc ~/.bashrc

Kaore he whiringa?

Mena karekau koe i roto i te anga takiuru, i te anga tauwhitiwhiti ranei, ka noho putua to taiao. Na tenei ka nui te raruraru (tirohia i raro mo nga mahi cron).

I tenei keehi ka titiro a bash ki te taurangi BASH_ENV to taiao me te hanga i te konae e rite ana kua tohua ki reira.

Nga uauatanga noa me nga ture o te koromatua

mahi cron

95% o te wa ka whakakorehia e au te tiimata o te bash na te mea kaore te mahi cron i te mahi pera i te tumanako.

Tenei mahi kino he pai te mahi ina rere ana ahau i runga i te raina whakahau, engari ka rahua ina whakahaere ahau i roto i te crontab.

ko te reira e rua nga take:

  • Ko nga mahi Cron kaore i te tauwhitiwhiti.
  • Kaore i rite ki nga tuhinga raina whakahau, kaore nga mahi cron e tuku i te taiao anga.

I te nuinga o te wa kare koe e aro, karekau ranei e tauwhitiwhiti te tuhinga anga na te mea ka tuku iho te taiao i te anga tauwhitiwhiti. Ko te tikanga ko nga mea katoa PATH и alias whirihorahia kia rite ki taau e tumanako ana.

Koinei te take e tika ana ki te whakarite i tetahi waahanga motuhake PATH mo tetahi mahi cron penei i konei:

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

Ko nga tuhinga e karanga ana tetahi ki tetahi

Ko tetahi atu raruraru noa ko te pohehe te whirihora o nga tuhinga ki te waea tetahi ki tetahi. Hei tauira, /etc/profile e tohu ana ki ~/.bashrc.

Ka puta tenei i te wa i ngana ai te tangata ki te whakatika i etahi hapa ka ahua pai nga mea katoa. Kia aroha mai, ka hiahia koe ki te wehe i enei momo waahi, ka ara ake nga raru hou.

Atahanga Sandboxed Docker

Hei whakamatautau ki te whakahaere i te anga, i hanga e ahau he ahua Docker ka taea te whakamahi hei patuiro i te whakahaere anga i roto i te taiao haumaru.

Whakarewa:

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

Kei te Dockerfile konei.

Hei akiaki i te takiuru me te whakatairite i te anga takiuru:

$ bash --login

Hei whakamatautau i te huinga taurangi BASH_ENV:

$ env | grep BASH_ENV

Mo te patuiro crontab ia meneti ka mahia he tuhinga ngawari (in /root/ascript):

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

Source: will.com

Tāpiri i te kōrero