Što je Shell skripta i zašto biste je trebali koristiti

Što je Shell skripta i zašto biste je trebali koristiti

Ljuska je program unutar operacijskog sustava Linux ili Unix koji vam omogućuje unos naredbi za izvršavanje od strane sustava. Kada se prozor terminala otvori na linux računalu, pokreće ljuskarski program koji predstavlja sučelje za unos naredbi. Ovo sučelje poznato je kao sučelje naredbenog retka. Kad se unese naredba, ljuska je izvršava, a izlaz se prikazuje na ekranu.





Osim što može prihvaćati i izvršavati naredbe interaktivno, ljuska također može izvršavati naredbe pohranjene u datoteci. Ovaj način izvođenja poznat je kao skriptiranje ljuske , a u ovom članku obrađujemo osnove skriptiranja ljuske.





1. Povijest ljuske

Počevši s Unixom 1970 -ih, postojao je ljuskarski program pod nazivom V6 školjka razvio Ken Thomson. Bila je to interaktivna ljuska i nije imala sposobnosti skriptiranja.





Uslijedilo je Bourne Shell 1977. i danas se koristi kao zadana ljuska za korijen račun. Ova ljuska dodala je skriptne sposobnosti koje su se pokazale iznimno korisnima u praksi kroz godine.

Daljnji razvoj ljuske 1980 -ih doveo je do mnogih popularnih varijanti ljuske, od kojih su najpopularnije C-ljuska i Korn školjka . Svaka od ovih ljuski donijela je svoju sintaksu koja se, u određenim slučajevima, drastično razlikovala od izvorne ljuske.



Jedna od najpopularnijih školjki danas je Bash Shell . Bash označava Bourne-Again-Shell i uvelike je poboljšana varijanta izvorne Bourneove ljuske.

kako poslati privatnu poruku na youtube

U ovom članku opisujemo skriptiranje ljuske za Bash Shell .





2. Izvođenje Shell skripte

Kako izvršavate shell skriptu? Jednostavan. Samo proslijedite putanju skripte kao argument ljusci:

Uzorak ljuske skripte:





echo 'hello world'

Pokrenite ga na sljedeći način:

$ bash hello.sh
# prints
hello world

Bilješka: Ljuska zahtijeva da linije budu završene LF znakovima (Line-Feed). Ako svoju skriptu ljuske napišete u sustavu Windows i pokušate je izvesti izravno na Linux sustavu, možete naići na pogreške. Windows koristi kombinaciju CR-LF (Carriage-Return-Line-Feed) za prekid linije. To je potrebno pretvoriti samo u LF. Provjerite načine na koje to možete učiniti u uređivaču sustava Windows.

Postoji još jedan način za izvođenje ljuske skripte izravno kao naredba. Umetnite sljedeći redak ( hashbang deklaracija) kao prvi redak vaše skripte ljuske.

kako koristiti spotify kao alarm
#!/bin/bash

Ovom promjenom naša jednostavna ljuska skripta je sada:

#!/bin/bash
echo 'hello world'

Sada morate datoteku skripte učiniti izvršnom na sljedeći način:

$ chmod +x hello.sh

U ovom trenutku možete izravno izvršiti datoteku skripte bez potrebe za izričitim upućivanjem na ljusku.

$ hello.sh
# prints
hello world

Pogledajmo sada neke prednosti korištenja ljuske skripti.

3. Automatizacija zadataka

Prva prednost korištenja ljuskastih skripti je automatiziranje često izvršavanih zadataka. Pretpostavimo da imate zadatak koji morate obavljati svakodnevno. Ako trebate svakodnevno izvršavati više naredbi na svom Linux sustavu, možete ih spremiti u datoteku i pokrenuti skriptu. Primjeri uključuju:

  • Arhivirajte i svakodnevno učitavajte datoteku ili mapu u skladišni prostor u oblaku kao što je S3.
  • Komprimirajte datoteke dnevnika koje rastu svaki dan.
  • Dohvatite cijene dionica, raščlanite dohvaćene podatke i pokrenite e -poruku ili SMS kada su ispunjeni određeni uvjeti (previsoke ili preniske cijene).

4. Kombiniranje više naredbi

Osim što automatizirate česte zadatke, možda će vam biti korisno i što možete kombinirati više slijedova naredbi u jednu naredbu. Zapamtiti jednu naredbu mnogo je jednostavnije od više naredbi, a da ne spominjemo redoslijed kojim se moraju izvršavati.

Primjer bi bio redoslijed pokretanja samog operacijskog sustava Linux. Kao dio podizanja sustava, OS izvršava brojne naredbe kako bi sustav doveo u odgovarajuće stanje. Ove naredbe su zapravo ljuske skripte koje žive pod /itd imenik. Ako pogledate jednu od ovih skripti ljuske, shvatit ćete složenost pokretanja sustava, koju ste možda morali izvesti ručno u nedostatku skripti ljuske.

Slijedi primjer skripte ljuske, /etc/profile , koji se izvršava svaki put kada se korisnik prijavi. Zamislite da ručno upišete ove naredbe!

# /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. Lakše za razvoj

Moguće je izvesti iste radnje kao ljuska skripta unutar regularnog programa napisanog na C/C ++. Međutim, daleko je lakše pisati i otklanjati pogreške ljuska skripte nego C/C ++ program. Posebno za zadatke administracije sustava koji uključuju izvršavanje vanjskih naredbi, stvaranje i uklanjanje datoteka i direktorija, preusmjeravanje izlaza itd.

C/C ++ programi bolji su za mnogo nižu razinu rada, poput pozivanja sistemskih poziva, manipuliranja strukturama podataka itd.

6. Transparentnost

Skripta ljuske, budući da je tekstualna datoteka, može se lako pregledati kako bi se provjerilo koje radnje izvršava. Nasuprot tome, jedini način na koji ćete ikada znati što radi program napisan na jeziku kao što je C/C ++ (i kompajliran u izvršnu datoteku) jest ako vam to odluči reći ili imate pristup izvornom kodu. Na primjer, možete provjeriti briše li skripta ljuske neke datoteke, a ako su vam potrebne te datoteke, možete ih kopirati na drugo mjesto.

Također je mnogo lakše dijagnosticirati probleme s skriptama ljuske nego s običnim programima jer možete pogledati izvorni kod. Je li ta skripta pogrešna jer direktorij ne postoji? Možete pogledati kod skripte i stvoriti direktorij (iako bi se dobro ponašana skripta ljuske trebala provjeriti i stvoriti kako bi se izbjegle takve pogreške).

7. Prijenosni

DO ljuska skripta može se prenijeti na druge Unix i Unix slične operativne sustave i izvršiti (ako je prisutna sama ljuska). Čak i pri prijenosu ljuske skripte iz različitih arhitektura, kao što su x86, MIPS, Sparc, itd., Skripte ljuske su mnogo prenosivije od C/C ++ programa.

Jedini način na koji se C/C ++ program može prenijeti i koristiti na drugom sustavu je kopiranje izvornog koda, izrada programa i pokušaj pokretanja. Čak i tada možda neće raditi kako se očekuje ako koristi kod specifičan za arhitekturu.

Sad kad imate ideju što su ljuske skripte i njihove brojne prednosti, ne biste li ih željeli koristiti za svoje zadatke? S kojim ste se problemima suočavali prilikom njihove uporabe? Molimo vas da nas obavijestite u komentarima ispod.

tražilica tekstova pjesama i akorda
Udio Udio Cvrkut E -pošta 5 savjeta za nadopunu vaših VirtualBox Linux strojeva

Umorni ste od loših performansi koje nude virtualni strojevi? Evo što biste trebali učiniti kako biste povećali performanse VirtualBox -a.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Linux Bash ljuska
O autoru Jay Sridhar(17 objavljenih članaka) Više od Jaya Sridhara

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu