Pagrindinis » kaip » Koks skirtumas tarp Bash, Zsh ir kitų „Linux Shells“?

    Koks skirtumas tarp Bash, Zsh ir kitų „Linux Shells“?

    Dauguma „Linux“ distributyvų pagal numatytuosius nustatymus turi „bash“ korpusą, tačiau taip pat galite pereiti į kitą apvalkalo aplinką. „Zsh“ yra ypač populiari alternatyva ir yra ir kitų korpusų, pavyzdžiui, pelenų, brūkšnių, žuvų ir tcsh. Bet koks skirtumas, ir kodėl yra tiek daug?

    Ką daro kriauklės??

    Kai prisijungiate prie komandinės eilutės arba paleisite terminalo langą „Linux“ sistemoje, sistema paleidžia „shell“ programą. Korpusai siūlo standartinį komandinės eilutės aplinkos išplėtimo būdą. Jei norite, galite pakeisti kitą numatytąjį apvalkalą.

    Pirmoji apvalkalo aplinka buvo „Thompson Shell“, sukurta „Bell Labs“ ir išleista 1971 metais. „Shell“ aplinka nuo šiol remiasi šia koncepcija, pridėdama įvairių naujų funkcijų, funkcionalumo ir greičio patobulinimų.

    Pvz., „Bash“ siūlo komandų ir failų pavadinimų užbaigimą, pažangias scenarijų funkcijas, komandų istoriją, konfigūruojamas spalvas, komandų slapyvardžius ir įvairias kitas funkcijas, kurios nebuvo pasiektos 1971 m..

    Apvalkalą fone taip pat naudoja įvairios sistemos paslaugos. „Linux“ platinimuose yra daug funkcijų, parašytų kaip „shell“ scenarijai. Šie scenarijai yra komandos ir kitos pažangios apvalkalo scenarijų funkcijos, veikiančios per apvalkalo aplinką.

    Korpusai, vedantys iki Bash: sh, csh, tsh ir ksh

    Geriausias šiuolaikinių kriauklių palikuonis yra „Bourne“ lukštas, taip pat žinomas kaip „sh“, kuris buvo pavadintas jo kūrėjo Stephen Bourne vardu, kuris dirbo „AT & T“ „Bell Labs“. Išleistas 1979 m., Jis tapo „Unix“ numatytuoju komandų interpretatoriumi, nes jis palaikė komandų pakeitimą, vamzdynus, kintamuosius, būklės testavimą ir kilpėjimą, taip pat dėl ​​kitų funkcijų. Jis nesuteikė daug pritaikymo naudotojams ir nepalaiko tokių šiuolaikinių „niceties“ kaip slapyvardžiai, komandų užbaigimo ir korpuso funkcijos (nors galiausiai šis paskutinis buvo pridėtas).

    C apvalkalą arba „csh“ 1970 m. Pabaigoje sukūrė Kalifornijos universitete Berkley Bill Joy. Ji pridėjo daugybę interaktyvių elementų, kuriais vartotojai galėjo valdyti savo sistemas, pavyzdžiui, slapyvardžius (ilgų komandų sparčiuosius klavišus), darbo valdymo gebėjimus, komandų istoriją ir kt. Jis buvo modeliuojamas ne C programavimo kalba, kuria buvo įrašyta „Unix“ operacinė sistema. Tai taip pat reiškė, kad „Bourne“ korpuso naudotojai turėjo išmokti C, kad jie galėtų įvesti komandas. Be to, „CSH“ turėjo nemažai klaidų, kurias vartotojai ir kūrėjai turėjo pertraukti per daug laiko. Žmonės baigėsi scenarijų „Bourne“ apvalkalu, nes jie geriau valdė neinteraktyvias komandas, bet įprasta naudoti „C“ apvalkalą.

    Laikui bėgant, daugelis žmonių fiksavo klaidas ir pridėjo funkcijų prie „C“ korpuso, kuris baigėsi patobulinta CSH versija, vadinama „tcsh“. Tačiau „CSH“ vis dar buvo „Unix“ pagrindu veikiančių kompiuterių numatytasis ir pridėjo keletą nestandartinių funkcijų. Davidas Kornas iš „Bell Labs“ dirbo „KornShell“ arba „ksh“, kuris bandė pagerinti situaciją, nes jis buvo suderinamas su „Bourne“ korpuso kalba, bet pridėjo daugybę funkcijų iš „CSH“ korpuso. Jis buvo išleistas 1983 m., Bet pagal licenciją. Tai nebuvo nemokama programinė įranga iki 2000-ųjų, kai ji buvo išleista pagal įvairias atviro kodo licencijas.

    Bash gimimas

    Nešiojama operacinės sistemos sąsaja „Unix“ arba „POSIX“ buvo dar vienas atsakas į drąsius nuosavybės teise priklausančius „CSH“ diegimus. Jis sėkmingai sukūrė komandų interpretavimo standartą (be kita ko) ir galiausiai atspindėjo daugybę „KornShell“ funkcijų. Tuo pačiu metu „GNU Project“ bandė sukurti nemokamą „Unix“ suderinamą operacinę sistemą. „GNU Project“ sukūrė nemokamą programinės įrangos apvalkalą, kuris bus jo nemokamos operacinės sistemos dalis, ir pavadino jį „Bourne Again Shell“ arba „bash“.

    Bashas buvo pagerintas per dešimtmečius nuo jo pirmojo išleidimo 1989 m., Tačiau jis vis dar yra šiandienos „Linux“ platinimo numatytasis korpusas. Tai taip pat yra numatytasis „Apple“ MacOS apvalkalas, kurį galima įdiegti „Microsoft“ „Windows 10“.

    Naujesni korpusai: pelenai, brūkšnys, zsh ir žuvys

    Nors „Linux“ bendruomenė per pastaruosius metus išsprendė „Bash“, kūrėjai nustojo kurti naujus korpusus, kai Bash pirmą kartą buvo išleistas prieš 28 metus.

    Kenneth Almquist sukūrė „Bourne“ lukšto kloną, vadinamą „Almquish shell“, „Shell“, „pelenais“ arba kartais tiesiog „sh“. ji taip pat buvo suderinama su POSIX ir tapo pagrindiniu „BSD“, skirtingo „Unix“ padalinio, korpusu. Pelenų apvalkalas yra lengvesnis nei bash, todėl jis populiarus įterptose Linux sistemose. Jei turite įsišaknijusį „Android“ telefoną, kuriame įdiegtas „BusyBox“, ar bet kurį kitą įrenginį su „BusyBox“ programinės įrangos paketu, naudokite kodą iš pelenų.

    Debianas sukūrė pelenais pagrįstą apvalkalo aplinką ir pavadino jį „brūkšniu“. Jis sukurtas taip, kad būtų suderinamas su POSIX ir lengvas, todėl jis yra greitesnis už „Bash“, bet jo funkcijos nebus. „Ubuntu“ naudoja „brūkšninio korpuso“ apvalkalą kaip numatytąjį neinteraktyvių užduočių apvalkalą, pagreitindamas „shell“ scenarijus ir kitas fone veikiančias užduotis. Tačiau „Ubuntu“ vis dar naudoja interaktyvius korpusus „bash“, todėl vartotojai vis dar turi interaktyvią aplinką.

    Vienas iš populiariausių naujesnių korpusų yra Z apvalkalas arba „zsh“. „Zsh“ sukūrė Paul Falstad 1990 m. Bourne stiliaus apvalkalą, kuriame yra funkcijų, kurias rasite „bash“ ir dar daugiau. Pavyzdžiui, „zsh“ turi rašybos tikrinimą, galimybę stebėti prisijungimus / atsijungimus, kai kurias įmontuotas programavimo funkcijas, pvz., Baitekodą, mokslinės notacijos sintaksėje palaikymą, leidžia plaukiojančiojo taško aritmetika ir daugiau funkcijų.

    Kitas naujesnis apvalkalas yra „Friendly Interactive Shell“ arba „fish“, išleistas 2005 metais. Jis turi unikalią komandinės eilutės sintaksę, kuri yra suprojektuota šiek tiek lengviau išmokti, bet nėra gauta nei iš „Bourne“ korpuso, nei C apvalkalo. Tai įdomi idėja, bet tai, ką išmoksite naudodamiesi žuvimi, nebūtinai padės jums naudoti bash ir kitus „Bourne“ kilusius korpusus.

    Kuris turėtumėte pasirinkti? (ir kodėl „Zsh“ yra populiarus)

    Jums nereikia pasirinkti apvalkalo. Jūsų operacinė sistema pasirenka jūsų numatytąjį apvalkalą, ir šis pasirinkimas yra beveik visada. Atsisėskite „Linux“ platinimo ar net „Mac“, ir beveik visada turėsite „bash shell“ aplinką. „Bash“ turi nemažai pažangių funkcijų, tačiau tikriausiai jų nenaudosite, nebent programuosite „shell“ scenarijus.

    Įdėtose Linux sistemose ar BSD sistemose galų gale bus pelenų apvalkalas. Bet pelenai yra „Bourne“ pagrindu pagamintas apvalkalas ir iš esmės yra suderinami su „bash“. Bet kokios žinios, kurias turėjote naudoti naudodamiesi „bash“, perkeliamos į pelenų ar brūkšnelių apvalkalą, nors kai kurios papildomos skriptų funkcijos šioje lengvoje korpuse nėra.

    Beveik kiekvienas apvalkalas, su kuriuo susidursite, yra „Bourne“ ir veikia panašiai, įskaitant „zsh“.

    Štai kodėl zsh yra populiarus. Šis naujesnis korpusas yra suderinamas su „bash“, bet apima daugiau funkcijų. „Zsh“ korpusas siūlo įmontuotą rašybos korekciją, patobulintą komandų eilutės užbaigimą, įkeliamus modulius, kurie veikia kaip jūsų korpuso papildiniai, visuotinius pseudonimus, kurie leidžia slapyvardžiami failų pavadinimais ar kitais komandų eilutėje, o ne tik komandomis, daugiau paramos. Tai tarsi „bash“, bet su daugybe papildomų funkcijų, papildomų funkcijų ir konfigūruojamų parinkčių, kuriuos galite įvertinti, jei praleidžiate daug laiko komandų eilutėje.

    Jei esate susipažinę su „bash“, galite pereiti prie „zsh“, nesimokydami kitokios sintaksės. jei esate susipažinę su „zsh“, galite pereiti prie „bash“, nesimokydami kitokios sintaksės, jūs tiesiog negalėsite naudotis šiomis funkcijomis.

    „Oh My ZSH“ - tai įrankis, padedantis lengviau įjungti „zsh“ įskiepius ir perjungti tarp „premade“ temų, greitai pritaikyti „zsh“ lukštą be išlaidų valandų..

    Taip pat yra ir kitų korpusų. Pavyzdžiui, tcsh apvalkalas vis dar yra aplink ir vis dar yra galimybė. „FreeBSD“ naudoja „tsch“ kaip numatytąjį šaknies korpusą ir kaip peleną kaip numatytąjį interaktyvų apvalkalą. Jei reguliariai naudojate C programavimą, „TSch“ gali būti geriau tinka jums. Tačiau tai nėra arti, kaip paprastai naudojama kaip bash arba zsh.

    Kaip perjungti tarp korpusų

    Jį lengva perjungti į naują apvalkalą, kad jį išbandytumėte. Tiesiog įdiekite apvalkalą iš „Linux“ platinimo paketo valdytojo ir įveskite komandą, kad paleistumėte apvalkalą.

    Pavyzdžiui, tarkime, kad norite išbandyti zsh Ubuntu. Jei norite įdiegti ir paleisti, paleiskite šias komandas:

    sudo apt install zsh zsh

    Tada jūs sėdėtumėte prie zsh korpuso. Tipas “ išeiti „Shell“ palikti jį ir grįžti į dabartinį apvalkalą.

    Tai tik laikina. Kai atidarysite naują terminalo langą arba prisijungsite prie sistemos komandų eilutėje, pamatysite numatytąjį apvalkalą. Jei norite pakeisti matomą apvalkalą, kai prisijungiate prie žiniatinklio prisijungimo apvalkalo, paprastai galite naudoti chsh , arba „Keisti korpusą“, komanda.

    Jei norite naudoti šią komandą, pirmiausia turėsite rasti visą kelią į jūsų apvalkalą su kokia komanda. Pavyzdžiui, tarkime, kad norėjome pakeisti zsh apvalkalą. Mes vykdysime šią komandą:

    kuri zsh

    „Ubuntu“ tai nurodo, kad zsh dvejetainis yra saugomas adresu / usr / bin / zsh.

    Paleiskite šią komandą, įveskite savo slaptažodį ir būsite paraginti pasirinkti naują prisijungimo apvalkalą:

    chsh

    Pagal pirmiau minėtą komandą mes įvestume / usr / bin / zsh . Tada zsh apvalkalas bus mūsų numatytasis, kol bėgome chsh komandą ir pakeitė jį atgal.