Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?

Obsah:

Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?
Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?

Video: Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?

Video: Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?
Video: TICWATCH PRO 5 Review: The BEST Wear OS Watch Yet?! // A Complete Guide - YouTube 2024, Apríl
Anonim
Väčšina linuxových distribúcií obsahuje predvolený shell bash, ale môžete tiež prejsť na iné prostředí shell. Zsh je obzvlášť populárna alternatíva a existujú aj iné škrupiny, ako je popol, pomlčka, ryby a tcsh. Ale aký je rozdiel a prečo existuje toľko?
Väčšina linuxových distribúcií obsahuje predvolený shell bash, ale môžete tiež prejsť na iné prostředí shell. Zsh je obzvlášť populárna alternatíva a existujú aj iné škrupiny, ako je popol, pomlčka, ryby a tcsh. Ale aký je rozdiel a prečo existuje toľko?

Čo robia Shells?

Keď sa prihlásite na príkazovom riadku alebo spustite okno terminálu v systéme Linux, systém spustí program shell. Kryty ponúkajú štandardný spôsob rozšírenia prostredia príkazového riadku. Môžete vymeniť predvolený shell za iný, ak chcete.

Prvým prostredím prostredia bola shell Thompson Shell vyvinutá v laboratóriách Bell Labs a uvoľnená v roku 1971. Medzinárodné prostredie Shell sa na tomto koncepte stavia odvtedy a pridáva nové funkcie, funkčnosť a rýchlosť.

Napríklad Bash ponúka dokončenie príkazu a názvu súboru, pokročilé funkcie skriptovania, históriu príkazov, konfigurovateľné farby, aliasy príkazov a množstvo ďalších funkcií, ktoré neboli k dispozícii už v roku 1971, kedy bol prvý shell prepustený.

Obal sa používa aj na pozadí rôznymi systémovými službami. Distribúcie Linuxu obsahujú mnoho funkcií napísaných ako shell skripty. Tieto skripty sú príkazy a ďalšie pokročilé funkcie skriptovania pre shell prechádzajú prostredím shell.

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

Najvýznamnejším progenitorom moderných škrupín je škrupina Bourne - známa aj ako "sh" - ktorá bola pomenovaná podľa svojho tvorcu Stephena Bourne, ktorý pracoval v laboratóriách AT & T Bell. Vydanie v roku 1979 sa stalo predvoleným príkazom a tlmočníkom v systéme Unix kvôli podpore substitúcie príkazov, potrubí, premenných, podmienenému testovaniu a slučke spolu s ďalšími funkciami. Neponúkalo veľké prispôsobenie pre používateľov a nepodporovalo také moderné jemnosti ako aliasy, dokončenie príkazov a funkciu shell (aj keď táto posledná bola nakoniec pridaná).

C shell, alebo "csh", bol vyvinutý koncom 70-tych rokov Bill Joy na University of California, Berkley. Pridal viacero interaktívnych prvkov, pomocou ktorých môžu používatelia kontrolovať svoje systémy, ako napríklad aliasy (skratky pre dlhé príkazy), schopnosti riadenia pracovných miest, históriu príkazov a ďalšie. Bol vytvorený z programovacieho jazyka C, do ktorého bol napísaný samotný operačný systém Unix. To tiež znamenalo, že užívatelia shellov Bourne sa museli naučiť C, aby mohli v nich zadávať príkazy. Navyše, csh mal naozaj niekoľko chýb, ktoré museli byť vystavené užívateľom aj tvorcami počas dlhého časového obdobia. Ľudia skončili pomocou skriptov Bourne pre skripty, lebo lepšie spracovali neinteraktívne príkazy, ale pri bežnom používaní sa prilepili na shell C.

Postupom času veľa ľudí opravilo chyby a pridal funkcie do shellu C, vyvrcholilo vylepšenou verziou csh známej ako "tcsh". Ale csh bol v štandardných počítačoch s Unixom a predtým pridal niektoré neštandardné funkcie. David Korn z laboratórií Bell Labs pracoval na KornShell, alebo "ksh", ktorý sa pokúsil zlepšiť situáciu tým, že je spätne kompatibilný s jazykom Bourne shell, ale pridáva mnoho funkcií z shell shell. Bolo vydané v roku 1983, ale pod vlastnou licenciou. To nebol slobodný softvér až do roku 2000, kedy bol prepustený pod rôznymi licenciami s otvoreným zdrojovým kódom.
Postupom času veľa ľudí opravilo chyby a pridal funkcie do shellu C, vyvrcholilo vylepšenou verziou csh známej ako "tcsh". Ale csh bol v štandardných počítačoch s Unixom a predtým pridal niektoré neštandardné funkcie. David Korn z laboratórií Bell Labs pracoval na KornShell, alebo "ksh", ktorý sa pokúsil zlepšiť situáciu tým, že je spätne kompatibilný s jazykom Bourne shell, ale pridáva mnoho funkcií z shell shell. Bolo vydané v roku 1983, ale pod vlastnou licenciou. To nebol slobodný softvér až do roku 2000, kedy bol prepustený pod rôznymi licenciami s otvoreným zdrojovým kódom.

Narodenie bash

Prenosné rozhranie operačného systému pre Unix alebo POSIX bolo ďalšou odpoveďou na hektické proprietárne implementácie csh. Úspešne vytvoril štandard pre interpretáciu príkazov (okrem iného) a nakoniec zrkadlil veľa funkcií v KornShell. Zároveň sa projekt GNU pokúšal vytvoriť bezplatný operačný systém kompatibilný s Unixom. Projekt GNU vyvinul slobodný softvérový shell ako súčasť svojho voľného operačného systému a nazval ho "Bourne Again Shell", alebo "bash".
Prenosné rozhranie operačného systému pre Unix alebo POSIX bolo ďalšou odpoveďou na hektické proprietárne implementácie csh. Úspešne vytvoril štandard pre interpretáciu príkazov (okrem iného) a nakoniec zrkadlil veľa funkcií v KornShell. Zároveň sa projekt GNU pokúšal vytvoriť bezplatný operačný systém kompatibilný s Unixom. Projekt GNU vyvinul slobodný softvérový shell ako súčasť svojho voľného operačného systému a nazval ho "Bourne Again Shell", alebo "bash".

Bash bol vylepšený v desaťročiach od jeho prvého vydania v roku 1989, ale stále je to predvolený shell na väčšine linuxových distribúcií. Je to tiež predvolený shell na MacOS spoločnosti Apple a je k dispozícii na inštaláciu na Windows 10 spoločnosti Microsoft.

Novšie škrupiny: popol, pomlčka, zsh a ryby

Zatiaľ čo Linuxová komunita sa v uplynulých rokoch usadila na Bash, vývojári neprestali vytvárať nové shell, keď bol Bash prvýkrát prepustený pred 28 rokmi.

Kenneth Almquist vytvoril klon Bourne shell známy ako Almquish shell, A Shell, "popol", alebo niekedy len "sh". bol tiež POSIX kompatibilný a stal sa predvoleným shellom v BSD, inej pobočke Unixu. Popol škrupiny je oveľa ľahší než bash, čo je populárne v systémoch s integrovanými systémami Linux. Ak máte nainštalovaný telefón s Androidom so systémom BusyBox nainštalovaným - alebo akékoľvek iné zariadenie so sériou softvéru BusyBox - používa sa kód z popola.

Debian vyvinul shell prostredia založené na popole a nazval ho "pomlčkou". Je navrhnutý tak, aby bol POSIX kompatibilný a ľahký, takže je rýchlejší ako Bash, ale nebude mať všetky jeho funkcie. Ubuntu používa pomlčkový shell ako svoj predvolený shell pre neinterakčné úlohy, urýchľuje shell skripty a iné úlohy bežiace na pozadí.Ubuntu stále používa bash pre interaktívne shell, avšak používatelia majú stále plnohodnotné interaktívne prostredie.
Debian vyvinul shell prostredia založené na popole a nazval ho "pomlčkou". Je navrhnutý tak, aby bol POSIX kompatibilný a ľahký, takže je rýchlejší ako Bash, ale nebude mať všetky jeho funkcie. Ubuntu používa pomlčkový shell ako svoj predvolený shell pre neinterakčné úlohy, urýchľuje shell skripty a iné úlohy bežiace na pozadí.Ubuntu stále používa bash pre interaktívne shell, avšak používatelia majú stále plnohodnotné interaktívne prostredie.
Jeden z najpopulárnejších novších shellov je Z shell, alebo "zsh". Vytvoril Paul Falstad v roku 1990, zsh je shell v štýle Bourne, ktorý obsahuje funkcie, ktoré nájdete v bash, plus ešte viac. Napríklad zsh má kontrolu pravopisu, možnosť sledovať prihlásenia / odhlásenia, niektoré zabudované programovacie funkcie ako bytecode, podpora syntaxe vedeckého zápisu, umožňuje aritmetiku s pohyblivou rádovou čiarkou a ďalšie funkcie.
Jeden z najpopulárnejších novších shellov je Z shell, alebo "zsh". Vytvoril Paul Falstad v roku 1990, zsh je shell v štýle Bourne, ktorý obsahuje funkcie, ktoré nájdete v bash, plus ešte viac. Napríklad zsh má kontrolu pravopisu, možnosť sledovať prihlásenia / odhlásenia, niektoré zabudované programovacie funkcie ako bytecode, podpora syntaxe vedeckého zápisu, umožňuje aritmetiku s pohyblivou rádovou čiarkou a ďalšie funkcie.
Ďalšou novšou škrupinou je Friendly Interactive Shell alebo "ryba", ktorá bola vydaná v roku 2005. Má jedinečnú syntax príkazového riadku, ktorá je navrhnutá tak, aby bola o niečo ľahšie sa naučiť, ale nie je odvodená ani z shellu Bourne, ani z shell C. Je to zaujímavá myšlienka, ale to, čo sa naučíte pomocou rýb, nebude nevyhnutne pomôcť vám použiť bash a iné mušty odvodené od Bourne.
Ďalšou novšou škrupinou je Friendly Interactive Shell alebo "ryba", ktorá bola vydaná v roku 2005. Má jedinečnú syntax príkazového riadku, ktorá je navrhnutá tak, aby bola o niečo ľahšie sa naučiť, ale nie je odvodená ani z shellu Bourne, ani z shell C. Je to zaujímavá myšlienka, ale to, čo sa naučíte pomocou rýb, nebude nevyhnutne pomôcť vám použiť bash a iné mušty odvodené od Bourne.

Ktoré ste si vybrali? (a prečo je Zsh populárny)

Nemusíte si vybrať shell. Váš operačný systém vyberá pre vás svoj predvolený shell a táto voľba je takmer vždy bash. Posaďte sa pred distribúciu Linuxu - alebo dokonca Mac - a budete mať takmer vždy prostredie bash shell. Bash má pomerne málo pokročilých funkcií, ale pravdepodobne ich nebudete používať, ak nevypracujete shell skripty.

Na vstavaných systémoch Linux alebo systémoch BSD skončíte s popolom škrupiny. Ale popol je shell Bourne a je do značnej miery kompatibilný s bash. Akékoľvek vedomosti, ktoré máte od používania bash, sa prenášajú na použitie popola alebo pomlčky, hoci niektoré pokročilé skriptovacie funkcie nie sú v tomto ľahkom plášti dostupné.

Takmer každý shell, s ktorým sa stretnete, je založený na Bourne a pracuje podobne - vrátane zsh.

Zsh je preto populárny. Tento novší shell je kompatibilný s bash, ale obsahuje ďalšie funkcie. Zsh shell ponúka vstavanú korekciu pravopisu, zdokonalené dokončenie príkazového riadku, načítateľné moduly, ktoré fungujú ako plug-iny pre váš shell, globálne aliasy, ktoré vám umožňujú aliasové názvy súborov alebo čokoľvek iného na príkazovom riadku namiesto len príkazov a viac tematickej podpory. Je to ako bash, ale s množstvom doplnkov, doplnkov a konfigurovateľných možností, ktoré by ste mohli oceniť, keby ste strávili veľa času na príkazovom riadku.

Ak poznáte bash, môžete prejsť na zsh bez toho, aby ste sa naučili inú syntax - získate ďalšie funkcie. ak ste oboznámení s zsh, môžete prepnúť do bash bez toho, aby ste sa naučili inú syntax - jednoducho nebudete mať prístup k týmto funkciám.

"Oh My ZSH" je nástroj, ktorý vám pomôže ľahšie povoliť zsh plug-iny a prepínať medzi premade témami, rýchlo prispôsobiť váš shell zsh bez toho, aby ste trávili hodiny vylepšovaním vecí.
"Oh My ZSH" je nástroj, ktorý vám pomôže ľahšie povoliť zsh plug-iny a prepínať medzi premade témami, rýchlo prispôsobiť váš shell zsh bez toho, aby ste trávili hodiny vylepšovaním vecí.

Existujú aj iné mušle. Napríklad tcsh shell je stále okolo a je stále možnosťou. FreeBSD používa tsch ako svoj predvolený koreňový shell a popol ako svoj štandardný interaktívny shell. Ak používate programovanie C pravidelne, tsch môže byť pre vás vhodnejší. Avšak, to nie je tak blízko, ako bežne používané ako bash alebo zsh.

Ako prepínať medzi shellmi

Je ľahké prepnúť na nový shell a vyskúšať to. Stačí nainštalovať shell zo správcu balíkov distribúcie systému Linux a napíšte príkaz spustiť shell.

Povedzme napríklad, že chcete vyskúšať zsh na Ubuntu. Na inštaláciu a spustenie by ste spustili nasledujúce príkazy:

sudo apt install zsh zsh

Potom by ste sedeli v zsh shelle. Typ"

exit

Na schránke, aby ste ju opustili a vrátili sa do vašej aktuálnej shell.

Toto je len dočasné. Kedykoľvek otvoríte nové okno terminálu alebo sa prihlásite do systému na príkazovom riadku, uvidíte predvolený shell. Ak chcete zmeniť shell, ktorý vidíte, keď sa prihlásite ako svoj prihlasovací shell, môžete všeobecne použiť
Toto je len dočasné. Kedykoľvek otvoríte nové okno terminálu alebo sa prihlásite do systému na príkazovom riadku, uvidíte predvolený shell. Ak chcete zmeniť shell, ktorý vidíte, keď sa prihlásite ako svoj prihlasovací shell, môžete všeobecne použiť

chsh

alebo "Change Shell", príkaz.

Ak chcete použiť tento príkaz, musíte najprv nájsť úplnú cestu k vášmu shellu s tým príkazom. Povedzme napríklad, že sme chceli zmeniť na shell zsh. Spustili by sme nasledujúci príkaz:

which zsh

Na Ubuntu to hovorí, že binárne zsh je uložené na / usr / bin / zsh.

Spustite nasledujúci príkaz, zadajte svoje heslo a zobrazí sa výzva na výber nového prihlasovacieho shellu:

chsh

Podľa vyššie uvedeného príkazu by sme vstúpili

/usr/bin/zsh

Zsh shell by potom bol náš predvolený, kým sme bežali

chsh

príkaz a zmeniť ho späť.

Odporúča: