Obsah:
- Čo je to škrupina?
- História a zaokrúhlenie mušlí
- Scripting
- Peek pod kapotou príkazového riadku Unix / Linux
Príkazový riadok v systémoch Unix a Linux je už veľmi výkonný, ale škrupiny sú ešte silnejším nástrojom, ako sa stretáva s okom. Môžete ich prispôsobiť a prepnúť ich na obsah svojho srdca, pokiaľ viete ako.
Čo je to škrupina?
Takmer každá príručka k systémom Unix a Linux má štandardnú schému obalu okolo operačného systému, ktorá pripomína nejaký druh cukroviniek. Shell v skutočnosti nie je nič iné ako rozhranie medzi operačným systémom, vrátane jadra, súborového systému a rôznych systémových volaní a užívateľa. Po mnoho rokov to bolo jediné interaktívne užívateľské rozhranie predtým, ako sa grafické užívateľské rozhrania stali bežnými v 80-tych rokoch. Grafické užívateľské rozhrania by sa tiež mohli považovať za typ shellu, pretože slúžia mnohým rovnakým funkciám: spúšťanie programov, konfigurácia systému a správa súborov.
Tieto skromné textové rozhrania majú prekvapujúcu silu. Jednak ide o plnohodnotné programovacie jazyky. Pred objavením ešte výkonnejších skriptovacích jazykov, ako je Python, boli škrupinové skripty ideálne na písanie programov, ktoré nevyhnutne nepotrebovali výkon C. Stále sú užitočné pre automatizáciu systémových úloh a pre rýchle prototypovanie.
Majú tiež množstvo funkcií, ktoré uľahčujú prácu s súbormi a vyhľadávanie súborov. Jedným z najčastejšie používaných je „zástupné znaky“ alebo „globbing“. Takmer všetci používatelia Unixu a Linuxu poznajú zástupné znaky „*“, aby sa zhodovali s ľubovoľnou postavou. Toto je vlastne práca shellu. Rôzne mušle majú ešte silnejšie možnosti.
Jednou z charakteristických čŕt Unixu je možnosť presmerovania vstupu a výstupu programu. Shell implementuje túto funkciu.
Shell je len ďalší program, takže ho môže vytvoriť každý programátor so správnymi schopnosťami. V priebehu rokov sa objavilo niekoľko veľkých škrupín.
História a zaokrúhlenie mušlí
Aj keď v počiatočných dňoch operačného systému existovalo niekoľko unixových škrupín, prvým, ktorý získal veľké uznanie mimo Bell Labs, bol Bourne Shell, pomenovaný po Stephanovi R. Bourne. Hlavnou inováciou shellu bolo, že podporoval funkcie štruktúrovaného programovania, čo umožnilo prvýkrát použiť shell ako skutočný programovací jazyk. Je to také nevyhnutné, že ho všetky moderné verzie Unixu a Linuxu stále používajú, hoci je to zvyčajne jedna z novších škrupín emulujúcich prostredie Bourne.
Ďalším hlavným plášťom bol C Shell, bežne skrátene „csh“. Táto škrupina bola vyvinutá v UC Berkeley a stala sa hlavnou súčasťou príchuti Unixu BSD. Ako už názov napovedá, jeho syntax je navrhnutá tak, aby sa podobala programovaciemu jazyku C, ale bola skutočne navrhnutá na interaktívne použitie.
Zahŕňal mechanizmus histórie, ktorý umožňoval používateľom vrátiť sa a opakovať všetky príkazy, ktoré vydali skôr, bez toho, aby museli prepisovať celý riadok a vylepšené riadenie úloh, čo uľahčilo vykonávanie viacerých úloh. (Pamätajte, že to bol čas, keď väčšina ľudí stále používala textové terminály.)
Ďalším hlavným plášťom bol Korn Shell, ktorý tiež vyšiel z Bell Labs. Škrupina bola mimochodom pomenovaná podľa Davida Korna, nie kapela. Hlavnou inováciou shellu Korn je zavedenie príkazového riadku, ktoré ešte viac rozširuje funkčnosť histórie. Používatelia sa môžu vrátiť a upraviť príkazy, ktoré zadali, pomocou príkazov podobných editorom vi alebo Emacs.
Z hlavných škrupín je Bourne Again Shell alebo bash najobľúbenejší od svojho zavedenia na konci 80. rokov. Táto škrupina, vyvinutá ako súčasť projektu GNU, zahŕňa inovácie škrupín C a Korn pri zachovaní kompatibility s škrupinou Bourne, odtiaľ názov. Je to „štandardný“ shell vo väčšine distribúcií Linuxu.
Z Shell (zsh), prvýkrát vydaný v roku 1990, je sen užívateľa príkazového riadku. Nielen, že má väčšinu ďalších hlavných funkcií, ktoré majú ostatné škrupiny, je to šialene prispôsobiteľné s množstvom výkonných funkcií. Jedným z najsilnejších je rekurzívne globovanie, ktoré používateľom umožňuje porovnávať názvy súborov v podadresároch pri vydávaní príkazov a nie súborov v aktuálnom pracovnom adresári. Skutočne pokročilí používatelia môžu tiež prispôsobiť možnosti dokončenia, zodpovedajúce súbory bez toho, aby ich museli písať úplne. A pre pisárov s tlstými prstami môže tiež opraviť pravopis. Tento shell je tak pokročilý, jeho stránka manuálu bola rozdelená do niekoľkých veľmi dlhých sekcií.
Scripting
Ako už bolo spomenuté, škrupiny nie sú iba rozhraniami príkazového riadku, ale výkonnými programovacími jazykmi. Krása skriptovania shellu spočíva v tom, že môžete použiť rovnaký jazyk pri pravidelnom interaktívnom používaní, ako aj v skriptoch, vďaka čomu je výučbová krivka oveľa plochejšia. Moderné škrupiny zahŕňajú všetky obvyklé vlastnosti programovacieho jazyka, vrátane riadenia toku, funkcií a premenných. Niektorí z nich majú dokonca pokročilé dátové štruktúry, ako sú asociatívne polia.
Napriek ich moci má programovanie v škrupinách niekoľko úskalí. Najväčší problém je, že je príliš ľahké písať skripty, ktoré závisia od nejakého programu, ktorý nemusí byť na inom systéme, alebo ktorý závisí od konkrétnej chuti Unixu alebo Linuxu. Preto sú shellové skripty najvhodnejšie pre programy, o ktorých viete, že sa budú spúšťať iba na jednom systéme. Ak sa snažíte vytvoriť niečo prenosné a nechcete písať program C, najlepšie je písať v inom skriptovacom jazyku, ako je Perl alebo Python.
Peek pod kapotou príkazového riadku Unix / Linux
Pod povrchom príkazového riadku Unix / Linux sa číši viac energie. Tento článok by vás mohol inšpirovať k nahliadnutiu pod kapotu svojho obľúbeného obalu, aby ste videli, čo môžete skutočne urobiť. Ak sa chcete dostať do skriptovania prostredia, môžete si pozrieť knihy Unix Power Tools a Learning the Bash Shell. Originálny dokument Štefana R. Bourneho o jeho škrupine tiež slúži ako dobrý úvod do sveta skriptovania škrupín, aj keď je starý.





