Ma lorg thu an duilleag seo ann an rannsachadh, is dòcha gu bheil thu a’ feuchainn ri fuasgladh fhaighinn air duilgheadas air choireigin le ruith bash.
Is dòcha nach eil an àrainneachd bash agad a’ suidheachadh caochladair àrainneachd agus nach eil thu a’ tuigsinn carson. Is dòcha gu bheil thu air rudeigin a chuir an sàs ann an grunn fhaidhlichean no pròifilean bash boot no a h-uile faidhle air thuaiream gus an obraich e.
Ann an suidheachadh sam bith, is e puing an nota seo an dòigh-obrach airson bash a thòiseachadh cho sìmplidh ‘s a ghabhas gus an urrainn dhut dèiligeadh ri duilgheadasan.
Diagram
Tha an clàr-sruth seo a’ toirt geàrr-chunntas air a h-uile pròiseas nuair a bhios tu a’ ruith bash.
A-nis leig dhuinn sùil nas mionaidiche a thoirt air gach pàirt.
Log a-steach Shell?
An toiseach feumaidh tu taghadh a bheil thu san t-slige logadh a-steach no nach eil.
Is e an t-slige logadh a-steach a’ chiad shlige a chuireas tu a-steach nuair a logas tu a-steach airson seisean eadar-ghnìomhach. Chan fheum an t-slige logadh a-steach ainm-cleachdaidh agus facal-faire. Faodaidh tu toirt air an t-slige logadh a-steach tòiseachadh le bhith a’ cur bratach ris --login
nuair a chaidh a ghairm bash
mar eisimpleir:
bash --login
Bidh an slige logadh a-steach a’ stèidheachadh na h-àrainneachd bhunaiteach nuair a thòisicheas tu air an t-slige bash an toiseach.
Eadar-ghnìomhach?
An uairsin bidh thu a 'dearbhadh a bheil an slige eadar-ghnìomhach no nach eil.
Faodar seo a dhearbhadh le làthaireachd an caochlaideach PS1
(bidh e a’ stàladh gnìomh cuir a-steach an àithne):
ma tha [ "${ PS1-}" ]; an uairsin mac-talla eadar-ghnìomhach eile mac-talla neo-eadar-ghnìomhach fi
No faic a bheil an roghainn air a shuidheachadh -i
, a’ cleachdadh caochladair tàthan sònraichte -
ann am bash, mar eisimpleir:
$ mac-talla$-
Ma tha samhla anns an toradh i
, an uairsin tha an slige eadar-ghnìomhach.
Anns an t-slige logadh a-steach?
Ma tha thu ann an slige logadh a-steach, an uairsin bidh bash a’ coimhead airson am faidhle /etc/profile
agus ruith ma tha e ann.
An uairsin lorg aon de na trì faidhlichean sin san òrdugh a leanas:
~/.bash_profile ~/.bash_login ~/.profile
Nuair a lorgas e fear, bidh e ga thòiseachadh agus a’ leum air an fheadhainn eile.
Ann an slige eadar-ghnìomhach?
Ma tha thu ann an slige gun logadh a-steach, thathas a’ gabhail ris gu bheil thu air a bhith ann an slige logadh a-steach mu thràth, tha an àrainneachd air a rèiteachadh agus thèid a shealbhachadh.
Anns a 'chùis seo, thèid an dà fhaidhle a leanas a chur gu bàs ann an òrdugh, ma tha iad ann:
/etc/bash.bashrc ~/.bashrc
Gun roghainn?
Mura h-eil thu ann an slige logadh a-steach no slige eadar-ghnìomhach, bidh an àrainneachd agad falamh gu dearbh. Tha seo ag adhbhrachadh tòrr troimh-chèile (faic gu h-ìosal mu obraichean cron).
Anns a 'chùis seo, bidh bash a' coimhead air a 'chaochlaideach BASH_ENV
an àrainneachd agad agus cruthaichidh e am faidhle co-fhreagarrach a tha air a shònrachadh an sin.
Duilgheadasan Coitcheann agus Riaghailtean Deasg
obraichean cron
95% den ùine a bhios mi a’ deasbad toiseach tòiseachaidh bash is ann air sgàth nach eil an obair cron a’ ruith mar a bhiodh dùil.
An obair dhona seo ag obair gu math nuair a bhios mi ga ruith air an loidhne-àithne, ach a’ fàiligeadh nuair a ruitheas mi e ann an crontab.
tha e dà adhbhar:
- Chan eil obraichean Cron eadar-ghnìomhach.
- Eu-coltach ri sgriobtaichean loidhne-àithne, cha bhith obraichean cron a’ sealbhachadh àrainneachd nan sligean.
Mar as trice chan fhaic thu no cha mhothaich thu nach eil sgriobt shligean eadar-ghnìomhach leis gu bheil an àrainneachd a’ sealbhachadh bhon t-slige eadar-ghnìomhach. Tha seo a 'ciallachadh gu bheil a h-uile càil PATH
и alias
air a rèiteachadh mar a bhiodh dùil agad.
'S e sin carson a tha e riatanach gu tric a' suidheachadh sònraichte PATH
airson obair cron mar seo:
* * * * * PATH=${PATH}:/path/to/my/program/folder myprogram
Sgriobtaichean a 'gairm air a chèile
Is e duilgheadas cumanta eile nuair a tha sgriobtaichean air an rèiteachadh le mearachd gus fios a chuir gu chèile. Mar eisimpleir, /etc/profile
ath-thagraidhean gu ~/.bashrc
.
Bidh seo mar as trice a’ tachairt nuair a dh’ fheuch cuideigin ri mearachd a cheartachadh agus bha coltas ann gun obraich a h-uile càil. Gu mì-fhortanach, nuair a dh'fheumas tu na diofar sheiseanan sin a sgaradh, bidh duilgheadasan ùra ag èirigh.
Dealbh Sandboxed Docker
Gus feuchainn ri slige a ruith, chruthaich mi ìomhaigh Docker a ghabhas cleachdadh airson debug a’ ruith slige ann an àrainneachd thèarainte.
Cur air bhog:
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
Tha Dockerfile suidhichte
Gus logadh a-steach a sparradh agus atharrais air slige logadh a-steach:
$ bash --login
Gus deuchainn a dhèanamh air seata de chaochladairean BASH_ENV
:
$ env | grep BASH_ENV
Airson debugging crontab
thèid sgriobt sìmplidh a chuir gu bàs gach mionaid (ann an /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
Source: www.habr.com