22Jul

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

click fraud protection

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 existuje 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 bola shell Thompson Shell vyvinutá v laboratóriách Bell Labs a uvoľnená v roku 1971. Prostredníctvom koncepcie Shell sa na tomto koncepte stagnovali dodatočné 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 iných funkcií, ktoré neboli k dispozícii už v roku 1971, kedy bol prvý shell prepustený.

instagram viewer

Shell 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 pre shell prechádzajú prostredím shell.

Najväčší progenitor modernej škrupiny je škrupina Bourne - známa aj ako "sh" - ktorá bola pomenovaná podľa svojho tvorcu Stephena Bourne, ktorý pracoval v spoločnosti AT & T's BellLabs. 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, 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 funkcie shell( aj keď táto posledná bola nakoniec pridaná).

C shell, alebo "csh", bol vyvinutý koncom 70-tych rokov Bill Joy na Kalifornskej univerzite v 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 pomerne málo 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, pretože lepšie manipulovali s neinteraktívnymi príkazmi, ale pri normálnom používaní sa prilepili na shell C.

V priebehu času veľa ľudí opravilo chyby a pridalo sa funkcie do shellu C, ktoré vyvrcholili 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 bol spätne kompatibilný s jazykom Bourne shell, 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, 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".

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 Apple MacOS a je k dispozícii na inštaláciu na Windows 10. Microsoft

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

Zatiaľ čo komunita Linuxu sa usadila na Bash v nasledujúcich rokoch, vývojári sa nezastavilivytvorenie nových nábojov, 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.

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ší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á 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 Zsh je 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 k dispozícii.

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

Preto je zsh populárny. Tento novší shell je kompatibilný s bash, ale obsahuje ďalšie funkcie. Zsh shell ponúka vstavanú opravu pravopisu, zdokonalené dokončenie príkazového riadku, načítateľné moduly, ktoré slúžia 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 aviac 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 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í.

Existujú aj iné škrupiny. 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 skrinkami

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. Spustili by ste nasledujúce príkazy na inštaláciu a spustenie:

sudo apt nainštalovať zsh zsh

Potom by ste sedeli v zsh shelle. Zadajte príkaz "exit" 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 vo všeobecnosti použiť príkaz chsh alebo "Change Shell".

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

ktorý zsh

Na Ubuntu to nám hovorí, že binárne zsh je uložené v /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 zadali /usr/bin/ zsh. Objaví sa zsh shell potom, ako sme spustili príkaz chsh a zmenili ho späť.