Obsah:
- Co je to skořápka?
- Historie a Roundup of Shell
- Skriptování
- Peek pod kapotou příkazového řádku Unix / Linux
Příkazový řádek v systémech Unix a Linux je již velmi silný, ale skořápky jsou ještě silnějším nástrojem, než se setká s okem. Můžete je přizpůsobit a přepnout na obsah vašeho srdce, pokud víte jak.
Co je to skořápka?
Téměř každá příručka Unixu a Linuxu má standardní schéma skořepiny obalené kolem operačního systému, připomínající nějaký druh tyčinky. Shell opravdu není nic jiného než rozhraní mezi operačním systémem, včetně jádra, souborového systému a různých systémových volání a uživatele. Po mnoho let to bylo jediné interaktivní uživatelské rozhraní, než se grafické uživatelské rozhraní stalo běžným v 80. letech. Grafická uživatelská rozhraní lze také považovat za typ shellu, protože slouží mnoha stejným funkcím: spouštění programů, konfigurace systému a správa souborů.
Tato skromná textová rozhraní mají překvapivé množství energie. Jednak jde o plnohodnotné programovací jazyky. Předtím, než se objevily ještě výkonnější skriptovací jazyky, jako je Python, byly shellové skripty ideální pro psaní programů, které nevyžadovaly nutně sílu C. Stále jsou užitečné pro automatizaci systémových úloh a pro rychlé prototypování.
Mají také řadu funkcí, které usnadňují práci a hledání souborů. Jedním z nejčastěji používaných je „zástupné znaky“ nebo „globbing“. Téměř všichni uživatelé Unixu a Linuxu jsou s "*" zástupci obeznámeni, aby odpovídali jakékoli postavě. To je vlastně práce shellu. Různé náboje mají ještě silnější možnosti.
Jednou z charakteristických vlastností Unixu je schopnost přesměrovat vstup a výstup programu. Shell implementuje tuto funkci.
Shell je jen další program, takže je možné, aby jej vytvořil každý programátor se správnými dovednostmi. V průběhu let se objevilo několik hlavních granátů.
Historie a Roundup of Shell
Ačkoli v počátečních dnech operačního systému existovalo několik unixových granátů, první, kdo získal hlavní uznání mimo Bell Labs, byl Bourne Shell, pojmenovaný po Stephenu R. Bourne. Hlavní inovací shellu bylo, že podporoval funkce strukturovaného programování, což umožnilo poprvé použít shell jako skutečný programovací jazyk. Je tak nepostradatelné, že jej všechny moderní verze unixových a linuxových verzí stále používají, i když je to obvykle jedna z novějších skořepin emulujících prostředí Bourne.
Další hlavní skořápka byla C Shell, běžně zkrácená na „csh“. Tato skořápka byla vyvinuta v UC Berkeley a stala se hlavní součástí příchuti Unixu BSD. Jak název napovídá, jeho syntaxe je navržena tak, aby připomínala programovací jazyk C, ale byla skutečně navržena pro interaktivní použití.
Zahrnoval mechanismus historie, který uživatelům umožňoval vrátit se a opakovat všechny příkazy, které vydali dříve, aniž by museli přepisovat celý řádek a vylepšené řízení úlohy, což usnadnilo provádění více úkolů. (Pamatujte, že to byl čas, kdy většina lidí stále používala textové terminály.)
Další hlavní skořápka byla Korn Shell, která také vyšla z Bell Labs. Shell byl mimochodem pojmenován podle Davida Korna, ne kapely. Hlavní novinkou korn shellu je zavedení editace z příkazové řádky, která ještě více rozšiřuje funkčnost historie. Uživatelé se mohou vrátit a upravit příkazy, které zadali, pomocí příkazů podobných editorům vi nebo Emacs.
Z hlavních granátů je Bourne Again Shell nebo bash nejoblíbenější od svého uvedení na konci 80. let. Tato skořápka, vyvinutá jako součást projektu GNU, zahrnuje inovace skořápek C a Korn při zachování kompatibility s skořápkou Bourne, odtud název. Je to „standardní“ shell ve většině distribucí Linuxu.
Z Shell (zsh), poprvé vydaný v roce 1990, je sen uživatele příkazového řádku. Nejen, že má většinu dalších hlavních funkcí, které mají ostatní skořápky, ale je to šíleně přizpůsobitelné se spoustou výkonných funkcí. Jedním z nejvýkonnějších je rekurzivní globování, které uživatelům umožňuje porovnávat názvy souborů v podadresářích při vydávání příkazů, nikoli souborů v aktuálním pracovním adresáři. Opravdu pokročilí uživatelé mohou také přizpůsobit možnosti dokončení, odpovídající soubory, aniž by je museli vypisovat úplně. A pro pisatele s tlustými prsty může také opravit pravopis. Tento shell je tak pokročilý, jeho manuální stránka byla rozdělena do několika velmi dlouhých sekcí.
Skriptování
Jak již bylo zmíněno, shelly nejsou jen rozhraní příkazového řádku, ale výkonné programovací jazyky. Krása skriptování prostředí je v tom, že můžete používat stejný jazyk jak v běžném interaktivním použití, tak i ve skriptech, což dělá křivku učení mnohem plošší. Moderní skořepiny zahrnují všechny obvyklé funkce programovacího jazyka, včetně řízení toku, funkcí a proměnných. Několik z nich má dokonce pokročilé datové struktury, jako jsou asociativní pole.
Navzdory jejich síle má programování ve skořápce několik úskalí. Největším problémem je, že je příliš snadné psát skripty, které závisí na nějakém programu, který nemusí být na jiném systému, nebo který závisí na konkrétní variantě Unixu nebo Linuxu. Proto jsou shellové skripty nejvhodnější pro programy, o kterých víte, že budou spuštěny pouze na jednom systému. Pokud se pokoušíte vytvořit něco přenosného a nechcete psát program C, nejlepší volbou je napsat v jiném skriptovacím jazyce, jako je Perl nebo Python.
Peek pod kapotou příkazového řádku Unix / Linux
Pod povrchem vaší příkazové řádky Unix / Linux je více energie. Tento článek by vás mohl inspirovat k nahlédnutí pod kapotu vašeho oblíbeného prostředí, abyste viděli, co můžete opravdu udělat. Pokud se chcete dostat do skriptování prostředí, možná byste se měli podívat na knihy Unix Power Tools a Learning the Bash Shell. Originální papír Stephena R. Bourneho na jeho skořápce také slouží jako dobrý úvod do světa skriptování prostředí, i když je starý.