Kas yra „Shell“ scenarijus ir kodėl turėtumėte jį naudoti

Kas yra „Shell“ scenarijus ir kodėl turėtumėte jį naudoti

Korpusas yra „Linux“ arba „Unix“ operacinės sistemos programa, leidžianti įvesti komandas, kurias turi vykdyti sistema. Kai „Linux“ kompiuteryje atidaromas terminalo langas, jis paleidžia apvalkalo programą, kurioje pateikiama sąsaja komandoms įvesti. Ši sąsaja yra žinoma kaip komandų eilutės sąsaja. Įvedus komandą, ją vykdo apvalkalas, o rezultatas rodomas ekrane.





Be to, kad apvalkalas gali priimti ir vykdyti komandas interaktyviai, jis taip pat gali vykdyti komandas, saugomas faile. Šis vykdymo būdas yra žinomas kaip apvalkalo scenarijus , o šiame straipsnyje apžvelgiame apvalkalo scenarijaus pagrindus.





1. Korpuso istorija

Pradėjus nuo „Unix“ aštuntajame dešimtmetyje, buvo apvalkalo programa, vadinama V6 apvalkalas sukūrė Kenas Thomsonas. Tai buvo interaktyvus apvalkalas ir neturėjo scenarijų.





Po to sekė Bourne Shell buvo naudojamas kaip numatytasis apvalkalas šaknis sąskaitą. Šis apvalkalas papildė scenarijaus sugebėjimus, kurie bėgant metams pasirodė labai naudingi praktikoje.

Toliau plėtojant apvalkalą devintajame dešimtmetyje atsirado daug populiarių apvalkalų variantų, iš kurių populiariausi buvo „C-Shell“ ir „Korn Shell“ . Kiekvienas iš šių apvalkalų turėjo savo sintaksę, kuri tam tikrais atvejais smarkiai skyrėsi nuo pradinio apvalkalo.



Vienas iš populiariausių kriauklių šiandien yra Bash Shell . Bash reiškia Bourne-Again-Shell ir yra gerokai patobulintas originalaus „Bourne Shell“ variantas.

„Windows 10“ prijungtas prie „Wi -Fi“, bet nėra interneto

Šiame straipsnyje aprašome apvalkalo scenarijų, skirtą „Bash Shell“ .





2. „Shell“ scenarijaus vykdymas

Kaip vykdyti apvalkalo scenarijų? Paprasta. Tiesiog perduokite scenarijaus kelią kaip argumentą apvalkalui:

„Shell“ scenarijaus pavyzdys:





echo 'hello world'

Vykdykite taip:

$ bash hello.sh
# prints
hello world

Pastaba: Korpusas reikalauja, kad eilutės būtų baigtos LF simboliais (Line-Feed). Jei rašysite „shell“ scenarijų sistemoje „Windows“ ir bandysite jį vykdyti tiesiogiai „Linux“ sistemoje, gali kilti klaidų. „Windows“ naudoja CR-LF derinį („Carriage-Return-Line-Feed“) linijos nutraukimui. Tai reikia konvertuoti tik į LF. Patikrinkite „Windows“ redaktoriaus būdus, kaip tai padaryti.

Yra dar vienas būdas vykdyti apvalkalo scenarijų tiesiogiai kaip komandą. Įdėkite šią eilutę ( maišos maišas deklaracija) kaip pirmoji jūsų apvalkalo scenarijaus eilutė.

kaip pakeisti programėlių parduotuvės šalį
#!/bin/bash

Su šiuo pakeitimu mūsų paprastas apvalkalo scenarijus dabar yra toks:

#!/bin/bash
echo 'hello world'

Dabar turite padaryti scenarijaus failą vykdomąjį taip:

$ chmod +x hello.sh

Šiuo metu galite vykdyti scenarijaus failą tiesiogiai, aiškiai nenurodydami apvalkalo.

$ hello.sh
# prints
hello world

Dabar pažvelkime į kai kuriuos apvalkalo scenarijų naudojimo pranašumus.

3. Užduočių automatizavimas

Pirmasis apvalkalo scenarijų naudojimo pranašumas yra dažnai atliekamų užduočių automatizavimas. Tarkime, kad turite užduotį, kurią turite atlikti kasdien. Jei jums kasdien reikia vykdyti kelias komandas „Linux“ sistemoje, galite šias komandas išsaugoti faile ir paleisti scenarijų. Pavyzdžiai:

  • Archyvuokite ir kasdien įkelkite failą ar aplanką į saugykla debesyje pavyzdžiui, S3.
  • Suspauskite žurnalo failus, kurie kasdien auga.
  • Gaukite akcijų kainas, išanalizuokite gautus duomenis ir suaktyvinkite el. Laišką ar SMS, kai įvykdomos tam tikros sąlygos (per didelės arba per žemos kainos).

4. Kelių komandų derinimas

Be dažnų užduočių automatizavimo, taip pat gali būti naudinga, kad į vieną komandą galite sujungti kelias komandų sekas. Atsiminti vieną komandą yra daug paprasčiau nei kelias komandas, jau nekalbant apie tai, kokia tvarka jos turi būti įvykdytos.

Pavyzdys galėtų būti pačios „Linux“ operacinės sistemos įkrovos seka. Kaip įkrovos dalis, OS vykdo daugybę komandų, kad sistema būtų tinkamos būsenos. Šios komandos iš tikrųjų yra apvalkalo scenarijai, esantys pagal /tt katalogą. Jei pažvelgsite į vieną iš šių apvalkalo scenarijų, suprasite sistemos paleidimo sudėtingumą, kurį galbūt turėjote atlikti rankiniu būdu, jei nėra apvalkalo scenarijų.

Toliau pateikiamas apvalkalo scenarijaus pavyzdys, /etc/profile , kuris vykdomas kiekvieną kartą, kai vartotojas prisijungia. Įsivaizduokite, kad šias komandas įvedate ranka!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Lengviau plėtoti

Galima atlikti tuos pačius veiksmus kaip ir apvalkalo scenarijus įprastoje programoje, parašytoje C/C ++. Tačiau parašyti ir derinti apvalkalo scenarijų yra daug lengviau nei C/C ++ programą. Ypač sistemos administravimo užduotims, apimančioms išorinių komandų vykdymą, failų ir katalogų kūrimą ir pašalinimą, išvesties nukreipimą ir kt.

C/C ++ programos yra geresnės daug žemesniam veikimo lygiui, pavyzdžiui, iškviesti sistemos skambučius, manipuliuoti duomenų struktūromis ir pan.

6. Skaidrumas

„Shell“ scenarijų, nes jis yra teksto failas, galima lengvai peržiūrėti ir patikrinti, kokius veiksmus jis atlieka. Priešingai, vienintelis būdas kada nors sužinoti, ką daro programa, parašyta tokia kalba kaip C/C ++ (ir sudaryta į vykdomąjį failą), yra tai, ar ji nusprendžia jums pasakyti, ar turite prieigą prie šaltinio kodo. Pavyzdžiui, galite patikrinti, ar apvalkalo scenarijus ištrina bet kokius failus, ir jei jums reikia tų failų, galite nukopijuoti juos į kitą vietą.

Taip pat daug lengviau diagnozuoti problemas, susijusias su apvalkalo scenarijais, o ne su įprastomis programomis, nes galite pažvelgti į šaltinio kodą. Ar šis scenarijus nepavyksta, nes katalogo nėra? Galite ieškoti scenarijaus kodo ir sukurti katalogą (nors gerai veikiantis apvalkalo scenarijus turėtų jį patikrinti ir sukurti, kad išvengtumėte tokių klaidų).

7. Nešiojamas

Į apvalkalo scenarijus gali būti perkeltas į kitas „Unix“ ir „Unix“ tipo operacines sistemas ir vykdomas (jei yra pats apvalkalas). Net perkeliant apvalkalo scenarijų iš skirtingų architektūrų, tokių kaip x86, MIPS, „Sparc“ ir kt., Apvalkalo scenarijai yra daug nešiojamesni nei C/C ++ programos.

Vienintelis būdas perkelti ir naudoti C/C ++ programą kitoje sistemoje yra kopijuoti šaltinio kodą, sukurti programą ir bandyti ją paleisti. Net ir tada jis gali neveikti taip, kaip tikėtasi, jei jis naudoja architektūrai būdingą kodą.

Dabar, kai turite idėją, kas yra apvalkalo scenarijai ir daugybė jų privalumų, ar nenorėtumėte jų naudoti savo užduotims atlikti? Su kokiomis problemomis susidūrėte jas naudodami? Praneškite mums toliau pateiktose pastabose.

kaip pamatyti savo prenumeratorius youtube
Dalintis Dalintis „Tweet“ Paštu 5 patarimai, kaip perkrauti „VirtualBox Linux“ mašinas

Pavargote nuo prastų virtualių mašinų našumo? Štai ką turėtumėte padaryti, kad padidintumėte „VirtualBox“ našumą.

Skaityti toliau
Susijusios temos
  • Programavimas
  • „Linux Bash Shell“
Apie autorių Jay Sridhar(Paskelbti 17 straipsnių) Daugiau iš Jay Sridhar

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia