22Jul

Koks skirtumas tarp Bash, Zsh ir kitų "Linux" korpusų?

click fraud protection

Daugumoje "Linux" paskirstymo failų yra numatytasis "bash shell", bet jūs taip pat galite perjungti į kitą aplanką.Zsh yra ypač populiari alternatyva, yra ir kitų kriauklių, tokių kaip pelenai, brūkšnys, žuvys ir tcsh. Bet koks skirtumas ir kodėl yra tiek daug?

Ką veikia kriauklės?

Kai prisijungiate prie komandinės eilutės arba paleidžiate Linux terminalo langą, sistema paleidžia apvalkalo programą.Korpusai siūlo standartinį komandų eilutės aplinkos išplėtimo būdą.Galite pakeisti numatytąjį apvalkalą kitam, jei jums patinka.

Pirmoji apvalkalo aplinka buvo "Thompson Shell", sukurta "Bell Labs" ir išleista 1971 m. "Shell" aplinkai nuo šiol buvo kuriama ši koncepcija, įtraukiant įvairias naujas funkcijas, funkcionalumą ir greitį.

Pavyzdžiui, "Bash" siūlo komandų ir failų vardų užbaigimą, išplėstines scenarijų funkcijas, komandų istoriją, konfigūruojamas spalvas, komandų slapyvardžius ir daugybę kitų funkcijų, kurių negalima naudoti dar 1971 m., Kai buvo išleistas pirmasis lukštas.

instagram viewer

Korpusas taip pat naudojamas fone naudojant įvairias sistemos paslaugas. Linux distribucijos apima daugybę funkcijų, parašytų kaip "shell" scenarijai.Šie scenarijai yra komandos ir kitos išplėstinės apvalkalo scenarijaus funkcijos vykdomos per aplinką apvalkalo.

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

Garsiausių šiuolaikinių kriauklių progenitorius yra Bourne lukštas, taip pat žinomas kaip "sh", kuris buvo pavadintas jo kūrėjo Stephen Bourne, kuris dirbo AT & T "Bell"Laboratorijos. Išleistas 1979 m., Jis tapo numatytuoju "Unix" komandos interpretuoju, nes jis palaiko komandų pakeitimą, vamzdynus, kintamuosius, būklės bandymus ir looping bei kitas funkcijas. Tai nepasiūlė daug vartotojo pritaikymo ir nepalaiko tokių šiuolaikiškų grakščių peilių kaip aliasai, komandų užbaigimas ir apvalkalo funkcijos( nors galiausiai šis galutinis variantas buvo pridėtas).

"C shell" arba "csh" buvo sukurtas 1970-ųjų pabaigoje Bill Joy Kalifornijos universitete Berklyje. Ji pridėjo daug interaktyvių elementų, su kuriais naudotojai galėtų valdyti savo sistemas, pvz., Slapyvardžius( ilgų komandų spartieji klavišai), darbo valdymo sugebėjimus, komandų istoriją ir dar daugiau. Jis buvo modeliuojamas iš C programavimo kalbos, kuria buvo parašyta pati "Unix" operacinė sistema. Tai taip pat reiškia, kad "Bourne" apvalkalo vartotojai turėjo išmokti C, kad jie galėtų įvesti komandas į jį.Be to, csh turėjo nemažai klaidų, kurias per ilgą laiką naudotojams ir kūrėjams reikėjo įstrigti.Žmonės galų gale naudojo scenarijus "Bourne shell", nes jis geriau tvarkė neinteraktyvus komandas, bet įstrigo su "C" apvalkalu, kad jis būtų įprastas.

Laikui bėgant, daugybė žmonių ištaisė klaidas ir pridėjo funkcijas prie "C" apvalkalo, baigiant pagerinta "csh" versija, vadinama "tcsh".Tačiau "csh" vis dar buvo numatytasis "Unix" kompiuteriuose ir pridėjo keletą nestandartinių funkcijų.Davidas Kornas iš "Bell Labs" dirbo "KornShell" arba "ksh", kuris bandė pagerinti padėtį, nes sugebėjo sugrįžti prie Bourne apvalkalo, bet pridūrė daugybę funkcijų iš csh apvalkalo. Jis buvo išleistas 1983 m., Tačiau pagal nuosavybės licenciją.Tai nebuvo nemokama programinė įranga iki 2000-ųjų, kai ji buvo paleista pagal įvairias atvirojo kodo licencijas.

"Bash

" gimimas. "Unix" arba "POSIX" nešiojamojo operacinės sistemos sąsaja buvo dar vienas atsakymas į saugius patentuotus "csh" diegimus. Jis sėkmingai sukūrė komandų vertimo standartą( be kitų dalykų) ir ilgainiui atspindi daugybę KornShell funkcijų.Tuo pat metu GNU projektas bandė sukurti nemokamą "Unix" suderinamą operacinę sistemą.GNU projektas sukūrė nemokamą programinę įrangą, kuri būtų jos nemokamos operacinės sistemos dalis, ir pavadino ją "Bourne Again Shell" arba "bash".

Bash buvo patobulintas per dešimtmečius nuo jo pirmojo leidimo 1989 m., Tačiau šiandien jis vis dar yra numatytasis "Linux" aplankas. Tai taip pat yra numatytasis "Apple MacOS" apvalkalas, kurį galima įdiegti "Microsoft" sistemoje "Windows 10.".

naujesnės kriauklės: ash, dash, zsh ir žuvis

Nors "Linux" bendruomenė pastaraisiais metais įsikūrė "Bash", kūrėjai nesustojokurti naujus kriauklės, kai Bash pirmą kartą buvo išleistas prieš 28 metus.

Kennethas Almquistas sukūrė "Bourne shell" kloną, žinomą kaip "Almquish shell", "Shell", "peleną" arba kartais tiesiog "sh".tai taip pat buvo suderinama su POSIX ir tapo BSD, kito Unix filialo, numatytuoju lukštais. Pelenų apvalkalas yra lengvesnis už bash, todėl jis yra populiarus įterptųjų Linux sistemose. Jei turite įdiegtą "Android" telefoną su "BusyBox" arba bet kokiu kitu prietaisu, kuriame yra programinės įrangos komplektas "BusyBox", jis naudoja kodą iš pelenų.

Debian sukūrė "shell" aplinką, kurios pagrindą sudaro pelenai, ir pavadino ją "brūkšniu".Jis sukurtas kaip suderinamas su POSIX ir lengvas, todėl jis yra greitesnis nei "Bash", bet jis neturės visų jo funkcijų.Ubuntu naudoja brūkšninį apvalkalo kaip numatytąjį neinteraktyvių užduočių lange, pagreitina skubos scenarijus ir kitas užduotis, veikiančias fone. Tačiau "Ubuntu" vis dar naudoja interaktyvių kriauklių "bash", taigi vartotojai vis dar turi pilną interaktyvų aplinką.

Vienas iš populiariausių naujesnių lukštų yra "Z shell" arba "zsh".1990 m. Sukurtas Paul Falstad, zsh yra Bourne stiliaus apvalkalas, kuriame yra funkcijos, kurias rasite "bash" ir dar daugiau. Pvz., "Zsh" turi rašybos tikrinimo funkciją, galimybę stebėti prisijungimus / išeiti iš naujo, kai kurias integruotas programavimo funkcijas, pvz., Baitų kodą, sintaksės mokslinius užrašus, taip pat leidžia naudoti kintamojo taško aritmetines funkcijas ir kitas funkcijas.

Dar viena naujesnė lukštai - tai "Friendly Interactive Shell" arba "fish", išleista 2005 m. Ji turi unikalią komandinės eilutės sintaksę, sukurtą taip, kad būtų šiek tiek lengviau išmokti, bet nėra nei iš Bourne apvalkalo, nei iš C korpuso. Tai įdomi mintis, bet tai, ką sužinosite naudodami žuvį, nebūtinai padės jums panaudoti bashą ir kitus iš Bourne pagamintus lukštus.

Kuris turėtų pasirinkti?(ir kodėl Zsh yra populiarus)

Jums nereikia pasirinkti korpuso. Jūsų operacinė sistema pasirenka jūsų numatytąjį apvalkalą, ir šis pasirinkimas beveik visada yra bash. Prisitaikykite prie "Linux" paskirstymo ar net "Mac", ir jūs beveik visada turėsite "bash shell" aplinką."Bash" turi keletą papildomų funkcijų, bet tikriausiai nenaudosite jų, nebent jūs sukursite shell scenarijus.

Dėl įterptųjų Linux sistemų ar BSD sistemų jūs pateksite į pelenų apvalkalą.Bet pelenai yra "Bourne" pagrindu pagaminta apvalkale ir labiausiai suderinama su "bash".Bet kokios žinios, kurias turėsite naudoti bash, perkelia į pelenų ar brūkšnelių apvalkalą, nors šiame lengvame apvalkale nėra keletas išplėstinių scenarijų funkcijų.

Beveik kiekvienas lukštas, su kuriuo susidūrėte, yra Bourne ir veikia panašiai, įskaitant zsh.

Štai kodėl zsh yra populiarus.Šis naujesnis apvalkalas suderinamas su "bash", bet apima ir daugiau funkcijų."Zsh shell" turi integruotą rašybos korekciją, patobulintą komandinės eilutės užbaigimą, įkeliamus modulius, kurie veikia kaip įskiepiai jūsų apvalkale, visuotinėse aliase, leidžiančiose pervadinti failų pavadinimus ar dar ką nors iš komandinės eilutės, o ne komandas, irdaugiau teminės paramos. Tai yra kaip bash, bet su daugybe priedų, papildomų funkcijų ir konfigūruojamų parinkčių, kurias galėtumėte vertinti, jei komandinėje eilutėje praleisite daug laiko.

Jei esate susipažinęs su bash, galite pereiti į zsh nesimokydami kitokios sintaksės - jūs tiesiog gausite papildomų funkcijų.Jei esate susipažinę su "zsh", galite pereiti į "bash" nesimokydami kito sintakso - jūs tiesiog neturite prieigos prie šių funkcijų.

"Oh My ZSH" yra įrankis, kuris padeda jums lengviau įjungti zsh įskiepius ir perjungti iš anksto sukurtas temas, greitai pritaikyti savo "zsh" apvalkalo, nenaudojant valandų, kad būtų lengviau keisti dalykus.

Taip pat yra ir kitų korpusų.Pavyzdžiui, tcsh apvalkalas vis dar yra ir vis dar yra pasirinkimas. FreeBSD naudoja tsch kaip numatytąjį šakninį kodą ir peleną kaip numatytąjį interaktyvųjį apvalkalą.Jei reguliariai naudojate "C" programas, tsch gali būti jums tinkamesnis. Tačiau tai nėra arti, kaip dažnai naudojama kaip bash arba zsh.

Kaip pereiti tarp korpusų

Lengvai pereiti prie naujo korpuso, kad jį išbandyti. Tiesiog įdiekite "shell" iš "Linux" paskirstymo paketų tvarkytuvo ir įveskite komandą, kad paleistumėte "shell".

Pavyzdžiui, tarkime, kad norite išbandyti zsh į Ubuntu. Norėtumėte paleisti šias komandas, kad įdiegtumėte ir paleistumėte:

sudo apt install zsh zsh

Tuomet tu sėdi zsh lukštu.Įveskite "išeiti" prie lukšto, kad paliktumėte jį ir grįžtumėte į savo dabartinį lukštą.

Tai tik laikina. Kai atidarysite naują terminalo langą arba prisijungsite prie savo sistemos komandų eilutėje, pamatysite numatytąjį aplanką.Jei norite pakeisti įklimpą, kurį matote prisijungdami, žinoma kaip prisijungimo lange, galite paprastai naudoti chsh arba "Change Shell" komandą.

Norėdami naudoti šią komandą, pirmiausia turėsite rasti visą kelią į savo apvalkalą, su kuria komanda. Pavyzdžiui, tarkime, mes norėjome pakeisti zsh apvalkalu. Mes paleisime šią komandą:

, kuri zsh

"Ubuntu", tai nurodo, kad bininė zsh yra saugoma /usr/bin/ zsh.

Vykdykite toliau pateiktą komandą, įveskite savo slaptažodį ir būsite paraginti pasirinkti naują prisijungimo apvalkalą:

chsh

Pagal pirmiau pateiktą komandą turėtume įvesti /usr/bin/ zsh. Tada zsh lukštas bus mūsų numatytoji vieta, kol mes paleisime komandą chsh ir pakeisime ją atgal.