Co je skriptování Shell a proč byste jej měli používat

Co je skriptování Shell a proč byste jej měli používat

Shell je program v operačním systému Linux nebo Unix, který vám umožňuje zadávat příkazy pro spuštění systémem. Když se na počítači se systémem Linux otevře okno terminálu, spustí se shell program, který představuje rozhraní pro zadávání příkazů. Toto rozhraní je známé jako rozhraní příkazového řádku. Když je příkaz zadán, je proveden shellem a výstup je zobrazen na obrazovce.





Kromě toho, že shell dokáže interaktivně přijímat a spouštět příkazy, může také spouštět příkazy uložené v souboru. Tento způsob provádění je znám jako shell skriptování , a v tomto článku se zabýváme základy skriptování shellu.





1. Historie skořápky

Počínaje Unixem v 70. letech minulého století existoval shell program s názvem V6 Shell vyvinutý Kenem Thomsonem. Byl to interaktivní shell a postrádal skriptovací schopnosti.





Následovalo to Bourne Shell v roce 1977 a dodnes se používá jako výchozí shell pro vykořenit účet. Tento shell přidal skriptovací schopnosti, které se v průběhu let velmi osvědčily v praxi.

Další vývoj skořepiny v 80. letech 20. století dal vzniknout mnoha populárním variantám skořepin, z nichž nejpopulárnější byly C-Shell a Korn Shell . Každý z těchto shellů přinesl svou vlastní syntaxi, která se v určitých případech drasticky lišila od původního shellu.



Jednou z nejpopulárnějších mušlí současnosti je Bash Shell . Bash znamená Bourne-Again-Shell a je výrazně vylepšenou variantou původního Bourne Shell.

jak zjistit, zda váš pevný disk selhává

V tomto článku popisujeme skriptování prostředí Bash Shell .





2. Spuštění skriptu Shell

Jak spustíte shell skript? Jednoduchý. Jednoduše předejte cestu skriptu jako argument shellu:

Ukázkový skript prostředí:





echo 'hello world'

Spusťte jej následujícím způsobem:

$ bash hello.sh
# prints
hello world

Poznámka: Shell vyžaduje, aby řádky byly ukončeny znaky LF (Line-Feed). Pokud napíšete skript prostředí Shell v systému Windows a pokusíte se jej spustit přímo v systému Linux, můžete narazit na chyby. Windows používá pro ukončení linky kombinaci CR-LF (Carriage-Return-Line-Feed). Toto je třeba převést pouze na LF. Podívejte se do svého editoru Windows, jak to udělat.

Existuje další způsob, jak spustit skript prostředí přímo jako příkaz. Vložte následující řádek ( hashbang deklarace) jako první řádek vašeho skriptu shellu.

zjistěte doménu a rozsah kalkulačky funkcí
#!/bin/bash

Díky této změně je náš jednoduchý shell skript nyní:

#!/bin/bash
echo 'hello world'

Nyní musíte nastavit spustitelnost souboru skriptu takto:

$ chmod +x hello.sh

V tomto okamžiku můžete spustit soubor skriptu přímo, aniž byste museli explicitně odkazovat na shell.

$ hello.sh
# prints
hello world

Podívejme se nyní na některé výhody používání shell skriptů.

3. Automatizace úkolů

První výhodou používání shell skriptů je automatizace často prováděných úloh. Předpokládejme, že máte úkol, který musíte každý den plnit. Pokud potřebujete ve svém linuxovém systému spouštět více příkazů každý den, můžete tyto příkazy uložit do souboru a spustit skript. Mezi příklady patří:

  • Archivujte a nahrajte soubor nebo složku každý den do souboru cloudové úložiště jako S3.
  • Komprimujte soubory protokolu, které mají tendenci růst každý den.
  • Načíst ceny akcií, analyzovat načtená data a po splnění určitých podmínek (příliš vysoké nebo příliš nízké ceny) spustit e -mail nebo SMS.

4. Kombinace více příkazů

Kromě automatizace častých úkolů vám také může připadat výhodné, že můžete kombinovat více sekvencí příkazů do jednoho příkazu. Zapamatování jednoho příkazu je mnohem jednodušší než více příkazů, nemluvě o pořadí, ve kterém musí být provedeny.

Příkladem může být spouštěcí sekvence samotného operačního systému Linux. Jako součást bootování OS provede řadu příkazů, aby dostal systém do správného stavu. Tyto příkazy jsou ve skutečnosti shell skripty, které žijí pod /atd adresář. Když se podíváte na jeden z těchto shell skriptů, uvědomíte si složitost bootování systému, který byste možná museli provádět ručně, pokud by neexistovaly shell skripty.

Následuje ukázkový skript prostředí Shell, /etc/profil , které se provádí pokaždé, když se uživatel přihlásí. Představte si, že tyto příkazy zadáváte ručně!

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

V běžném programu napsaném v C/C ++ je možné provádět stejné akce jako shell skript. Je však mnohem snazší psát a ladit skript prostředí než program C/C ++. Zejména pro úlohy správy systému, které zahrnují provádění externích příkazů, vytváření a odebírání souborů a adresářů, přesměrování výstupu atd.

Programy C/C ++ jsou lepší pro mnohem nižší úroveň provozu, jako je vyvolávání systémových volání, manipulace s datovými strukturami atd.

6. Transparentnost

Shell skript, který je textovým souborem, lze snadno zobrazit a zjistit, jaké akce provádí. Naproti tomu jediný způsob, jakým se kdy dozvíte, co dělá program napsaný v jazyce, jako je C/C ++ (a kompilovaný do spustitelného souboru), je ten, že se vám to rozhodne říct nebo pokud máte přístup ke zdrojovému kódu. Můžete například zkontrolovat, zda skript prostředí shell odstraňuje nějaké soubory, a pokud tyto soubory potřebujete, můžete je zkopírovat do jiného umístění.

Je také mnohem jednodušší diagnostikovat problémy se skripty prostředí než s běžnými programy, protože se můžete podívat na zdrojový kód. Selhal ten skript, protože adresář neexistuje? Můžete se podívat do kódu skriptu a vytvořit adresář (ačkoli dobře vychovaný skript prostředí by měl zkontrolovat a vytvořit, aby se předešlo takovým chybám).

7. Přenosný

NA shell skript lze přenést do jiných unixových a unixových operačních systémů a spustit (je-li přítomen samotný shell). I při přenosu skriptu shellu z různých architektur, jako jsou x86, MIPS, Sparc atd., Jsou skripty shellu mnohem přenosnější než programy C/C ++.

Jediný způsob, jak lze program C/C ++ přenést a použít v jiném systému, je zkopírovat zdrojový kód, sestavit program a pokusit se jej spustit. I když to nemusí fungovat podle očekávání, pokud používá kód specifický pro architekturu.

Nyní, když máte představu, co jsou to skripty shellu a jejich mnoho výhod, nechtěli byste je použít pro své úkoly? S jakými problémy jste se při jejich používání setkali? Dejte nám prosím vědět v níže uvedených komentářích.

najít píseň ve videu
Podíl Podíl tweet E-mailem 5 tipů, jak přeplnit své počítače VirtualBox Linux

Jste unaveni špatným výkonem, který nabízejí virtuální stroje? Zde je to, co byste měli udělat, abyste zvýšili výkon svého VirtualBoxu.

Číst dále
Související témata
  • Programování
  • Linux Bash Shell
O autorovi Jay Sridhar(17 článků zveřejněno) Více od Jaye Sridhar

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru