Jaký je rozdíl mezi Bash, Zsh a jinými systémy Linux?

Obsah:

Video: Jaký je rozdíl mezi Bash, Zsh a jinými systémy Linux?

Video: Jaký je rozdíl mezi Bash, Zsh a jinými systémy Linux?
Video: TICWATCH PRO 5 Review: The BEST Wear OS Watch Yet?! // A Complete Guide 2023, Prosinec
Jaký je rozdíl mezi Bash, Zsh a jinými systémy Linux?
Jaký je rozdíl mezi Bash, Zsh a jinými systémy Linux?
Anonim
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č existuje tolik?
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č existuje tolik?

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 chcete.

První prostředí shellu bylo Thompson Shell vyvinuté v laboratořích Bell Labs a vydáno v roce 1971. Prostředí prostředí Shell od té doby stavělo na koncepci a přidalo ř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é funkce skriptování, historii příkazů, konfigurovatelné barvy, aliasy příkazů a řadu dalších funkcí, které nebyly k dispozici již v roce 1971, kdy byl první shell uvolněn.

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 pro skriptování skriptů, které běží skrze prostředí shellu.

Shells Leading až do Bash: sh, csh, tsh a ksh

Nejvýznamnějším původcem moderních skořápků 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í stavu a smyčkování spolu s dalšími funkcemi. Neposkytoval uživatelům 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 koncem 70. let Bill Joy na Kalifornské univerzitě v Berkley. Přidala mnoho interaktivních prvků, pomocí kterých mohou uživatelé ovládat 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 naučit C, aby mohli v něm zadávat příkazy. Kromě toho měl csh celkem několik chyb, které musely být vynakládány uživatelům i tvůrcům po delší dobu. Lidé skončili pomocí skriptu Bourne pro skripty, protože lépe zpracovávali neinteraktivní příkazy, ale při normálním použití se slepovali s pláštěm C.

V průběhu času hodně lidí opravilo chyby a přidalo funkce do shellu C, 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. Byl propuštěn 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.
V průběhu času hodně lidí opravilo chyby a přidalo funkce do shellu C, 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. Byl propuštěn 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 vytvořit bezplatný operační systém kompatibilní 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".
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 vytvořit bezplatný operační systém kompatibilní 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 desetiletích od jeho prvního vydání v roce 1989, ale je to stále standardní shell na většině distribucí Linuxu dnes. Je to také výchozí shell na 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 vyrovná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, Shell, "popel", nebo někdy jen "sh". to bylo také POSIX kompatibilní a stal se výchozí shell v BSD, jiné větvi 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 Android 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í se standardem POSIX a lehký, takže je rychlejší než Bash, ale nebude mít všechny jeho funkce. Ubuntu používá jako pomůcku pomlčku jako výchozí shell pro neinteraktivní úlohy, urychluje shell skripty a další úkoly spuštěné na pozadí.Ubuntu stále používá bash pro interaktivní shell, nicméně uživatelé mají stále plnohodnotné interaktivní prostředí.
Debian vyvinul shell prostředí založené na popelu a nazval ho "pomlčkou". Je navržen tak, aby byl kompatibilní se standardem POSIX a lehký, takže je rychlejší než Bash, ale nebude mít všechny jeho funkce. Ubuntu používá jako pomůcku pomlčku jako výchozí shell pro neinteraktivní úlohy, urychluje shell skripty a další úkoly spuštěné na pozadí.Ubuntu stále používá bash pro interaktivní shell, nicméně uživatelé mají stále plnohodnotné interaktivní prostředí.
Jeden z nejpopulárně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.
Jeden z nejpopulárně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, nemusí nutně pomoci při použití bash a dalších skořápků pocházejících z Bourne.
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, nemusí nutně pomoci při použití bash a dalších skořápků pocházejících z Bourne.

Které byste si měli vybrat? (a proč Zsh je populární)

Nemusíte vybírat shell. Váš operační systém si pro vás vybírá výchozí skořápku 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 nebudete používat, pokud nevypracujete 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řenášejí na použití popelníku nebo pomlčkového shellu, 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é slouží jako plug-iny pro váš shell, globální aliasy, které vám umožňují vytvářet názvy souborů aliasů nebo cokoli jiného na příkazovém řádku mí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 byste mohli ocenit, pokud strávíte spoustu času na příkazovém řádku.

Pokud jste obeznámeni s bash, můžete přepnout na zsh bez toho, abyste se naučili jinou syntax - získáte další funkce. pokud znáte zsh, můžete přepnout na bash bez toho, abyste se naučili jinou syntaxi - prostě nebudete mít k těmto funkcím přístup.

"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 trávili hodiny vylepšení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 trávili hodiny vylepšením.

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.

Řekněme například, že chcete zkusit zsh na Ubuntu. Pro instalaci a spuštění spusťte následující příkazy:

sudo apt install zsh zsh

Pak byste seděli v zsh shellu. Typ"

exit

Na shellu opustit ji a vrátit se k vaší aktuální shell.

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. Změna shellu, kterou vidíte při přihlašování jako přihlašovací shell, obvykle používáte
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. Změna shellu, kterou vidíte při přihlašování jako přihlašovací shell, obvykle používáte

chsh

nebo "Change Shell", příkaz.

Chcete-li použít tento příkaz, musíte nejprve najít úplnou cestu k shellu s příkazem. Například řekněme, že jsme se chtěli změnit na shell zsh. Spustili bychom následující příkaz:

which zsh

Na Ubuntu to nám říká, že binární zsh je uložen na / usr / bin / zsh.

Spusťte následující příkaz, zadejte 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.

Image
Image

Doporučuje: