Úvodná » ako » Aký je rozdiel medzi Bash, Zsh a inými Linuxovými shellmi?

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

    Väčšina linuxových distribúcií obsahuje predvolený shell bash, ale môžete tiež prepnúť do iného prostredia 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 je toľko?

    Čo robí 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 bolo zariadenie Thompson Shell, vyvinuté v laboratóriách Bell Labs a vydané v roku 1971. Medzinárodné prostredie Shell stavia na tejto koncepcii odvtedy, pridáva množstvo nových funkcií, funkčnosti a zlepšenia rýchlosti.

    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 tiež používa 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 shellu, ktoré prechádzajú prostredím shell.

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

    Najvýznamnejším progenitorom moderných škrupín je shell Bourne - tiež známy ako "sh" - ktorý bol pomenovaný podľa svojho tvorcu Stephena Bourne, ktorý pracoval v laboratóriách spoločnosti AT & T Bell. Uvoľnená v roku 1979 sa stala predvoleným príkazom a tlmočníkom v systéme Unix kvôli podpore substitúcie príkazov, potrubí, premenných, testovania stavu a slučky spolu s ďalšími funkciami. Neposkytol veľa prispôsobenia pre používateľov a nepodporoval také moderné jemnosti ako aliasy, dokončenie príkazov a funkcie shell (aj keď táto posledná bola nakoniec pridaná).

    C shell, alebo "csh", bol vyvinutý koncom sedemdesiatych rokov Bill Joy na University of California v Berkley. Pridal viacero interaktívnych prvkov, pomocou ktorých môžu používatelia kontrolovať svoje systémy, ako sú 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 používatelia obalu Bourne sa museli naučiť C, aby mohli zadávať príkazy v ňom. Navyše, csh mal naozaj niekoľko chýb, ktoré museli byť vystavené užívateľom aj tvorcami počas veľkého časového obdobia. Ľudia skončili pomocou skriptov Bourne pre skripty, pretože lepšie spracovali neinteraktívne príkazy, ale pri normálnom použití.

    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 Unixu predvolený a pridal niektoré neštandardné funkcie. David Korn z Bell Labs pracoval na KornShell, alebo "ksh", ktorý sa pokúsil zlepšiť situáciu tým, že bol spätne kompatibilný s jazykom shell Bourne, ale pridal mnoho funkcií z shell shell. Bolo vydané v roku 1983, ale pod vlastnou licenciou. To nebol slobodný softvér až do roku 2000, keď bol prepustený pod rôznymi licenciami s otvoreným zdrojom.

    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ý softwarový 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 komunita linuxov 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 shell Almquish, A Shell, "popol", alebo niekedy len "sh". bol tiež POSIX kompatibilný a stal sa štandardným shellom v BSD, inej pobočke Unixu. Popolček popela je oveľa ľahší ako bash, čo ju robí populárne v systémoch s integrovanými systémami Linux. Ak máte nainštalovaný telefón s Androidom s nainštalovaným systémom BusyBox - alebo akýmkoľvek iným zariadením s balíkom 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, takže užívatelia majú stále plnohodnotné interaktívne prostredie.

    Jeden z najpopulárnejších novších škrupín je Z shell, alebo "zsh". Vytvoril Paul Falstad v roku 1990, zsh je Bourne-shell štýl, ktorý obsahuje funkcie 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ším novším shellom 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ý nápad, 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 Linuxovú distribúciu - 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ť, pokiaľ nebudete programovať 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é funkcie skriptovania nie sú k dispozícii v tejto ľahkej škrupine.

    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 inej syntaxe - získate ďalšie funkcie. ak ste oboznámení s zsh, môžete prepnúť do bash bez toho, aby ste sa naučili inej syntaxe - 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áš zsh shell bez toho, aby ste trávili hodiny ladením veci.

    Existujú aj iné mušle. Napríklad, shell tcsh 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 zadajte 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 inštalovať zsh zsh

    Potom by ste sedeli v zsh shelle. Typ " východ "Na shell, aby ste ho opustili a vrátili sa do vášho aktuálneho 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ť chsh , alebo príkaz "Change Shell".

    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 prejsť na shell zsh. Spustili by sme nasledujúci príkaz:

    ktoré 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äť.