Jaký je rozdíl mezi Bash, Zsh a dalšími Shells Linuxu?
Většina distribucí Linuxu obsahuje standardní shell bash, ale můžete také přepnout do jiného prostředí shellu. Zsh je obzvláště populární alternativou a existují i další mušle, jako je popel, pomlčka, ryby a tcsh. Ale jaký je rozdíl a proč je tolik lidí?
Co dělají Shells?
Při přihlašování na příkazovém řádku nebo spuštění terminálu v systému Linux spustí systém shell program. Shells nabízí standardní způsob rozšíření prostředí příkazové řádky. Výchozí shell můžete vyměnit za jiný, pokud se vám líbí.
První prostředí shellu bylo Thompson Shell, které bylo vyvinuto v laboratořích Bell Labs a vydáno v roce 1971. Prostředí prostředí Shell se od té doby staví na koncepci a přidává řadu nových funkcí, funkčnosti a zlepšení rychlosti.
Například Bash nabízí dokončení příkazu a názvu souboru, pokročilé skriptovací funkce, historii příkazů, konfigurovatelné barvy, aliasy příkazů a řadu dalších funkcí, které nebyly k dispozici již v roce 1971, kdy byl vydán první shell.
Skořápka se také používá na pozadí různými systémovými službami. Distribuce Linuxu obsahují mnoho funkcí napsaných jako shell skripty. Tyto skripty jsou příkazy a další pokročilé funkce skriptování skriptů, které procházejí prostředím shellu.
Shells Leading až do Bash: sh, csh, tsh a ksh
Nejvýznamnějším původcem moderních skořápek je shell Bourne - známý také jako "sh" - který byl pojmenován podle svého tvůrce Stephena Bourne, který pracoval v laboratořích AT & T Bell. Vydáno v roce 1979, stalo se výchozím příkazem-tlumočníkem v Unixu díky podpoře výměny příkazů, potrubí, proměnných, testování podmínek a smyčkování spolu s dalšími funkcemi. Neposkytoval uživatelům příliš mnoho přizpůsobení a nepodporoval takové moderní techniky, jako jsou aliasy, dokončení příkazu a funkce shellu (ačkoli tento poslední byl nakonec přidán).
C shell, nebo "csh", byl vyvinut v pozdních sedmdesátých létech Bill Joy na Kalifornské univerzitě, Berkley. Přidala mnoho interaktivních prvků, pomocí kterých mohou uživatelé řídit své systémy, jako jsou aliasy (zkratky pro dlouhé příkazy), schopnosti správy pracovních pozic, historie příkazů a další. Byl vytvořen z programovacího jazyka C, který byl napsán samotným operačním systémem Unixu. To také znamenalo, že uživatelé shellu Bourne se museli učit C, aby mohli zadávat příkazy. Kromě toho měl csh málo chyb, které musely být vystaveny uživatelům i tvůrcům po delší dobu. Lidé skončili pomocí skriptu Bourne pro skripty, protože se lépe zabývali neinteraktivními příkazy, ale přilepili se k shellu C pro běžné použití.
Časem se hodně lidí opravilo chyby a přidalo se funkce do shellu C, což vyvrcholilo vylepšenou verzí csh známou jako "tcsh". Ale csh byl stále standardní v počítačích se systémem Unix a přidal některé nestandardní funkce. David Korn z Bell Labs pracoval na KornShell nebo "ksh", který se snažil zlepšit situaci tím, že byl zpětně kompatibilní s jazykem shellu Bourne, ale přidal mnoho funkcí z shell shell. Byla vydána v roce 1983, ale pod licencí vlastníka. Nebyl to svobodný software až do roku 2000, kdy byl propuštěn pod různými licencemi s otevřeným zdrojovým kódem.
Narození bash
Přenosné rozhraní operačního systému pro Unix nebo POSIX bylo další reakcí na hektické proprietární implementace csh. Úspěšně vytvořil standard pro interpretaci příkazů (mimo jiné) a nakonec zrcadlil spoustu funkcí v KornShell. Současně se projekt GNU pokoušel o vytvoření volného operačního systému kompatibilního s Unixem. Projekt GNU vyvinul svobodný softwarový shell jako součást svého volného operačního systému a nazval ho "Bourne Again Shell" nebo "bash".
Bash byl vylepšen v několika desetiletích od jeho prvního vydání v roce 1989, ale je to stále standardní shell na většině distribucí Linuxu. Je to také výchozí shell pro MacOS společnosti Apple a je k dispozici pro instalaci na Windows 10 společnosti Microsoft.
Novější Shells: popel, pomlčka, zsh a ryby
Zatímco komunita Linuxu se v uplynulých letech vypořádává s Bashem, vývojáři nepřestali vytvářet nové shelly, když Bash byl poprvé propuštěn před 28 lety.
Kenneth Almquist vytvořil shell Bourne shell známý jako Almquish shell, A Shell, "popel", nebo někdy jen "sh". to bylo také POSIX kompatibilní a stal se výchozí shell v BSD, jiný větev Unixu. Skořápka popela je mnohem lehčí než bash, což ji dělá populární u vestavěných systémů Linux. Máte-li nainstalovaný telefon s Androidem s nainstalovaným BusyBoxem - nebo jakékoliv jiné zařízení s sadou programů BusyBox - používá se kód z popelu.
Debian vyvinul shell prostředí založené na popelu a nazval ho "pomlčkou". Je navržen tak, aby byl kompatibilní s POSIX a lehký, takže je rychlejší než Bash, ale nebude mít všechny jeho funkce. Ubuntu používá jako pomůcku pomlčka shell jako výchozí shell pro neinteraktivní úlohy, urychluje shell skripty a další úkoly běžící na pozadí. Ubuntu stále používá bash pro interaktivní shell, nicméně uživatelé mají stále plnohodnotné interaktivní prostředí.
Jeden z nejoblíbenějších novějších shellů je Z shell, nebo "zsh". Vytvořil Paul Falstad v roce 1990, zsh je shell ve stylu Bourne, který obsahuje funkce, které najdete v bash, plus ještě více. Například zsh má kontrolu pravopisu, schopnost sledovat přihlášení / odhlášení, některé vestavěné programovací funkce jako bytecode, podpora vědecké notace v syntaxi, umožňuje plovoucí aritmetiku a další funkce.
Další novější shell je Friendly Interactive Shell nebo "ryba", která byla vydána v roce 2005. Má jedinečnou syntaxi příkazového řádku, která je navržena tak, aby byla trochu jednodušší učit se, ale nebyla odvozena ani od shellu Bourne, ani od shellu C. Je to zajímavý nápad, ale to, co se naučíte pomocí ryb, vám nemusí nutně pomoci s použitím bash a jiných skořápků pocházejících z Bourne.
Které byste si měli vybrat? (a proč je Zsh populární)
Nemusíte vybírat shell. Váš operační systém si pro vás vybírá výchozí shell a tato volba je téměř vždy bash. Posaďte se před Linuxovou distribucí - nebo dokonce Mac - a téměř vždy budete mít prostředí bash shellu. Bash má poměrně málo pokročilých funkcí, ale pravděpodobně je nepoužíváte, pokud nebudete programovat shell skripty.
Na vestavěných systémech Linux nebo BSD skončíte s popelovým obalem. Ale popel je shell Bourne a je do značné míry kompatibilní s bash. Jakékoli znalosti, které máte od používání bash, se přenesou na použití popelníku nebo pomlčky, ačkoli některé pokročilé skriptovací funkce nejsou k dispozici v tomto lehkém shellu.
Téměř každý shell, se kterým se setkáte, je založen na Bourne a pracuje podobně - včetně zsh.
Zsh je proto populární. Tento novější shell je kompatibilní s bash, ale obsahuje další funkce. Zsh shell nabízí vestavěnou opravu pravopisu, vylepšené dokončení příkazového řádku, načtené moduly, které fungují jako plug-iny pro váš shell, globální aliasy, které umožňují vytvářet jména aliasových souborů nebo cokoli jiného na příkazovém řádku namísto příkazů a více tematická podpora. Je to jako bash, ale s mnoha doplňky, dalšími funkcemi a konfigurovatelnými možnostmi, které byste ocenili, kdybyste strávili spoustu času na příkazovém řádku.
Pokud jste s bash obeznámeni, můžete přepnout na zsh bez toho, abyste se naučili jinou syntax - získáte další funkce. pokud jste zsh znal, můžete přepnout na bash bez toho, abyste se naučili jinou syntaxi - prostě nebudete mít přístup k těmto funkcím.
"Oh My ZSH" je nástroj, který vám pomůže snadněji povolit zsh plug-iny a přepínat mezi premade themes, rychle přizpůsobit váš shell zsh, aniž byste strávili hodiny vylepšováním věcí.
Jsou i další mušle. Například tcsh shell je stále kolem a je stále volbou. FreeBSD používá tsch jako výchozí kořenový shell a popel jako výchozí interaktivní shell. Používáte-li programování C pravidelně, může být tsch vhodnější pro vás. Nicméně, není to tak blízko, jak se běžně používá jako bash nebo zsh.
Jak přepínat mezi Shells
Je snadné přejít na nový shell a vyzkoušet to. Stačí nainstalovat shell z správce balíčků distribuce systému Linux a zadejte příkaz pro spuštění shellu.
Například řekněme, že chcete zkusit zsh na Ubuntu. Pro instalaci a spuštění spusťte následující příkazy:
sudo apt nainstalovat zsh zsh
Pak byste seděli v zsh shellu. Typ " výstup
"Na shellu, aby to opustil a vrátil se do vašeho současného shellu.
To je jen dočasné. Kdykoli otevřete nové okno terminálu nebo se přihlásíte do systému na příkazovém řádku, zobrazí se výchozí shell. Chcete-li změnit schránku, kterou vidíte při přihlášení do vašeho přihlašovacího shellu, můžete obecně použít chsh
, nebo "Change Shell", příkaz.
Chcete-li použít tento příkaz, musíte nejprve najít úplnou cestu k shellu pomocí příkazu. Například, řekněme, že jsme chtěli změnit na shell zsh. Spustili bychom následující příkaz:
který zsh
Na Ubuntu to nám říká, že binární zsh je uložena na / usr / bin / zsh.
Spusťte následující příkaz, zadejte své heslo a budete vyzváni k výběru nového přihlašovacího shellu:
chsh
Podle výše uvedeného příkazu bychom vstoupili / usr / bin / zsh
. Zsh shell by pak byl náš výchozí, dokud jsme neudělali chsh
příkaz a změňte jej zpět.