Čo je to skriptovanie Shell a prečo by ste ho mali používať

Čo je to skriptovanie Shell a prečo by ste ho mali používať

Shell je program v operačnom systéme Linux alebo Unix, ktorý vám umožňuje zadávať príkazy na spustenie systémom. Keď sa na počítači so systémom Linux otvorí okno terminálu, spustí sa program shell, ktorý predstavuje rozhranie na zadávanie príkazov. Toto rozhranie je známe ako rozhranie príkazového riadka. Po zadaní príkazu ho vykoná shell a výstup sa zobrazí na obrazovke.





Okrem toho, že shell dokáže interaktívne prijímať a vykonávať príkazy, môže tiež vykonávať príkazy uložené v súbore. Tento spôsob vykonávania je známy ako shell skriptovanie , a v tomto článku sa zaoberáme základmi skriptovania v shell.





1. História škrupiny

Počnúc Unixom v 70. rokoch minulého storočia existoval shell program s názvom V6 škrupina vyvinutý Kenom Thomsonom. Bol to interaktívny shell a nemal skriptovacie schopnosti.





Po ňom nasledoval Bourne Shell v roku 1977 a dodnes sa používa ako predvolený shell pre koreň účet. Tento shell pridal skriptovacie schopnosti, ktoré sa v priebehu rokov veľmi osvedčili v praxi.

Ďalší vývoj škrupiny v 80. rokoch 20. storočia viedol k vzniku mnohých populárnych variantov škrupín, z ktorých najobľúbenejšie boli C-Shell a Korn Shell . Každá z týchto škrupín priniesla svoju vlastnú syntax, ktorá sa v určitých prípadoch výrazne líšila od pôvodnej škrupiny.



Jednou z najobľúbenejších škrupín súčasnosti je Bash Shell . Bash znamená Bourne-Again-Shell a je výrazne vylepšeným variantom pôvodného Bourne Shell.

mám stiahnuť 32 alebo 64 bit

V tomto článku popíšeme skriptovanie shellu pre Bash Shell .





2. Spustenie skriptu Shell

Ako spustíte shell skript? Jednoduché. Stačí zadať cestu skriptu ako argument do shellu:

Ukážkový skript shell:





echo 'hello world'

Spustite to nasledovne:

$ bash hello.sh
# prints
hello world

Poznámka: Shell vyžaduje, aby boli riadky ukončené znakmi LF (Line-Feed). Ak napíšete skript shell v systéme Windows a pokúsite sa ho vykonať priamo v systéme Linux, môžu sa vyskytnúť chyby. Na ukončenie linky používa systém Windows kombináciu CR-LF (Carriage-Return-Line-Feed). Toto je potrebné previesť iba na LF. Možnosti, ako to urobiť, nájdete v editore systému Windows.

Existuje ďalší spôsob, ako spustiť skript shellu priamo ako príkaz. Vložte nasledujúci riadok ( hashbang deklarácia) ako prvý riadok vášho shell skriptu.

ako priblížiť Mac na trackpade
#!/bin/bash

Vďaka tejto zmene je náš jednoduchý shell skript teraz:

#!/bin/bash
echo 'hello world'

Teraz musíte urobiť spustiteľný súbor skriptu takto:

$ chmod +x hello.sh

V tomto okamihu môžete skriptový súbor spustiť priamo bez toho, aby ste museli explicitne odkazovať na shell.

$ hello.sh
# prints
hello world

Pozrime sa teraz na niektoré výhody používania shell skriptov.

3. Automatizácia úloh

Prvá výhoda použitia shell skriptov je automatizácia často vykonávaných úloh. Predpokladajme, že máte úlohu, ktorú musíte vykonávať každý deň. Ak potrebujete vo svojom systéme Linux vykonávať každý deň viac príkazov, môžete tieto príkazy uložiť do súboru a spustiť skript. Medzi príklady patrí:

  • Archivujte a nahrajte súbor alebo priečinok každý deň do súboru cloudové úložisko ako S3.
  • Komprimujte súbory denníka, ktoré sa každým dňom zväčšujú.
  • Načítajte ceny akcií, analyzujte načítané údaje a po splnení určitých podmienok (príliš vysoké alebo príliš nízke ceny) spustite e -mail alebo SMS.

4. Kombinácia viacerých príkazov

Okrem automatizácie častých úloh vám môže pripadať výhodné aj to, že môžete kombinovať viacero sekvencií príkazov do jedného príkazu. Zapamätanie si jedného príkazu je oveľa jednoduchšie ako viacerých príkazov, nehovoriac o poradí, v akom sa musia vykonať.

Príkladom môže byť sekvencia zavádzania samotného operačného systému Linux. V rámci bootovania OS vykoná niekoľko príkazov, aby dostal systém do správneho stavu. Tieto príkazy sú v skutočnosti shell skripty, ktoré žijú pod príponou /atď adresár. Keď sa pozriete na jeden z týchto shell skriptov, uvedomíte si zložitosť zavedenia systému, ktorý by ste pri absencii shell skriptov mohli musieť vykonať ručne.

Nasleduje ukážkový skript shell, /etc/profil , ktorý sa vykoná vždy, keď sa používateľ prihlási. Predstavte si, že by ste tieto príkazy písali ručne!

# /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. Jednoduchší vývoj

V bežnom programe napísanom v C/C ++ je možné vykonávať rovnaké akcie ako shell skript. Je však oveľa jednoduchšie písať a ladiť shell skript ako program C/C ++. Zvlášť pre úlohy správy systému, ktoré zahŕňajú vykonávanie externých príkazov, vytváranie a odstraňovanie súborov a adresárov, presmerovanie výstupu atď.

Programy C/C ++ sú lepšie pre oveľa nižšiu úroveň prevádzky, ako je vyvolávanie systémových hovorov, manipulácia s dátovými štruktúrami atď.

6. Transparentnosť

Skript Shell, ktorý je textovým súborom, je možné ľahko zobraziť a zistiť, aké akcie vykonáva. Naproti tomu jediný spôsob, akým sa niekedy dozviete, čo program napísaný v jazyku, akým je C/C ++ (a kompilovaný do spustiteľného súboru), je ten, či sa vám to rozhodne povedať alebo máte prístup k zdrojovému kódu. Môžete napríklad skontrolovať, či skript shell odstraňuje všetky súbory, a ak ich potrebujete, môžete ich skopírovať na iné miesto.

Je tiež oveľa jednoduchšie diagnostikovať problémy s shell skriptmi než s bežnými programami, pretože sa môžete pozrieť na zdrojový kód. Zlyhal tento skript, pretože adresár neexistuje? Môžete sa pozrieť do kódu skriptu a vytvoriť adresár (aj keď dobre vychovaný shell skript by ho mal skontrolovať a vytvoriť, aby sa predišlo takýmto chybám).

7. Prenosný

TO shell skript môžu byť prenesené do iných operačných systémov Unix a Unix a spustené (ak je prítomný samotný shell). Aj keď prenášate shell skript z rôznych architektúr, ako sú x86, MIPS, Sparc, atď., Skripty shellu sú oveľa prenosnejšie ako programy C/C ++.

Jediný spôsob, akým je možné program C/C ++ prenášať a používať v inom systéme, je skopírovať zdrojový kód, zostaviť program a pokúsiť sa ho spustiť. Napriek tomu nemusí fungovať podľa očakávania, ak používa kód špecifický pre architektúru.

Teraz, keď máte predstavu o tom, čo sú shell skripty a ich mnohé výhody, nechceli by ste ich použiť na svoje úlohy? S akými problémami ste sa stretli pri ich používaní? Dajte nám prosím vedieť v nižšie uvedených komentároch.

Predaj počítačové diely za peniaze v mojom okolí
zdieľam zdieľam Tweet E -mail 5 tipov, ako nabiť svoje počítače VirtualBox Linux

Ste unavení z nízkeho výkonu, ktorý ponúkajú virtuálne počítače? Tu je to, čo by ste mali urobiť, aby ste zvýšili výkon svojho VirtualBoxu.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Linux Bash Shell
O autorovi Jay Sridhar(17 článkov uverejnených) Viac od Jaya Sridhara

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber