Running Bash si faahfaahsan

Haddii aad boggan ka heshay raadinta, waxay u badan tahay inaad isku dayayso inaad ku xalliso xoogaa dhib ah orodka bash.

Waxaa laga yaabaa in deegaankaaga bashku aanu dejin doorsoome deegaan oo aadan fahmin sababta. Waxaa laga yaabaa inaad wax ku dhejisay faylal kala duwan oo bash ah ama profiles ama dhammaan faylasha si aan kala sooc lahayn ilaa ay ka shaqeyso.

Si kastaba ha ahaatee, ujeeddada qoraalkani waa in la dejiyo habka loo bilaabo bash sida ugu fudud ee suurtogalka ah si aad wax uga qabato dhibaatooyinka.

Jaantus

Jaantus-socodkan ayaa soo koobaya dhammaan hababka marka uu socdo bash.

Running Bash si faahfaahsan

Haddaba aan si hoose u eegno qayb kasta.

Soo gal Shell?

Marka hore waxaad u baahan tahay inaad doorato inaad ku jirto qolofka gelitaanka iyo haddii kale.

Qolfaha gelitaanka ayaa ah qolofka ugu horreeya ee aad gasho marka aad gasho kulan is-dhexgal ah. Qolka gelitaanka uma baahna magac isticmaale iyo erayga sirta ah. Waxaad ku qasbi kartaa qolofka galitaanka inuu bilaabo adoo ku daraya calan --login marka loo yeero bash, tusaale ahaan:

bash --login

Qolofka gelitaanka wuxuu dejiyaa jawiga saldhigga marka ugu horreysa ee aad bilowdo qolofka bashka.

Isdhexgal?

Markaa waxaad go'aaminaysaa in qoloftu is dhexgal tahay iyo in kale.

Tan waxaa lagu hubin karaa joogitaanka doorsoomayaasha PS1 (waxay ku rakibaysaa shaqada galinta amarka):

haddii ["${PS1-}" ]; dabadeed echo interactive kale dhawaaq aan dhexgal ahayn fi

Ama arag haddii ikhtiyaarka la dejiyay -i, iyadoo la adeegsanayo doorsoome xaraf gaar ah - ee bash, tusaale ahaan:

$echo$-

Haddii ay jirto calaamad ku jirta wax soo saarka i, ka dibna qolofku waa is dhexgal.

Ku jira qolofka login?

Haddii aad ku jirto qolof login, ka dib bash wuxuu raadiyaa faylka /etc/profile oo orda haddii ay jirto.

Kadib u raadi mid ka mid ah saddexdan fayl sida soo socota:

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

Marka uu mid helo, wuu bilaabaa oo ka boodaa kuwa kale.

In qolof dhexgal ah?

Haddii aad ku jirto qolof aan login, waxaa loo malaynayaa inaad hore ugu jirtay qolof login ah, deegaanka waa la habeeyey oo waa la dhaxli doonaa.

Xaaladdan oo kale, labada fayl ee soo socda ayaa loo fulinayaa siday u kala horreeyaan, haddii ay jiraan:

/etc/bash.bashrc ~/.bashrc

Doorasho maya?

Haddii aadan ku jirin qolof gal ama qolof dhexgal ah, markaa deegaankaagu runtii wuu madhnaan doonaa. Tani waxay keenaysaa jahawareer badan (hoos ka eeg shaqooyinka cron).

Xaaladdan bash wuxuu eegayaa doorsoomiyaha BASH_ENV deegaankaaga oo abuuraya faylka u dhigma ee halkaas lagu cayimay.

Dhibaatooyinka Caadiga ah iyo Xeerarka Suulka

shaqooyinka cron

95% wakhtiga aan ka saaro bash startup waa sababta oo ah shaqada cron uma socoto sidii la filayay.

Hawshan habaaran Si fiican ayuu u shaqeeyaa markaan ku shaqeeyo khadka taliska, laakiin wuu guuldareystaa markaan ku dhex wado crontab.

waa laba sababood:

  • Shaqooyinka Cron ma aha kuwo is dhexgal ah.
  • Si ka duwan qoraallada khadka taliska, shaqooyinka cron ma dhaxlo deegaanka qolofka.

Caadi ahaan ma ogaan doontid ama ma daryeeli doontid in qoraalka qolofka uusan ahayn mid is dhexgal ah sababtoo ah deegaanku waxa uu ka dhaxlaa qolofta isdhexgalka. Taas macnaheedu waa in wax walba PATH ΠΈ alias loo habeeyey sidaad filayso.

Tani waa sababta ay inta badan lagama maarmaan u tahay in la dejiyo gaar ah PATH shaqada cron sida halkan:

* * * * * PATH=${PATH}:/dariiqa/to/barnaamijka/faylka myprogram

Qoraallada isku wacaya

Dhibaato kale oo caadi ah ayaa ah marka qoraallada si qalad ah loo habeeyey si ay isugu wacaan. Tusaale ahaan, /etc/profile ka codsanaya ~/.bashrc.

Tani waxay badanaa dhacdaa marka qof isku dayo inuu hagaajiyo qaladka wax walbana waxay u muuqdeen inay shaqeeyaan. Nasiib darro, markaad u baahan tahay inaad kala saarto noocyada kalfadhiyadan, dhibaatooyin cusub ayaa soo baxaya.

Sawirka Sandboxed Sandboxed

Si aan u tijaabiyo socodsiinta qolofka, waxaan sameeyay sawirka Docker kaas oo loo isticmaali karo in lagu saxo ku socodsiinta qolofka jawi ammaan ah.

Bilaw

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

Dockerfile waa ku yaal halkan.

Si loo qasbo galitaanka oo la ekaysiiyo qolof galitaanka:

$ bash --login

Si loo tijaabiyo doorsoomayaasha kala duwan BASH_ENV:

$ env | grep BASH_ENV

Wixii khalad ka saarida crontab qoraal fudud ayaa la fulin doonaa daqiiqad kasta (in /root/ascript):

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

Source: www.habr.com

Add a comment