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

Turinys:

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

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

Video: Koks skirtumas tarp Bash, Zsh ir kitų
Video: TICWATCH PRO 5 Review: The BEST Wear OS Watch Yet?! // A Complete Guide - YouTube 2024, Balandis
Anonim
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?
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 "Shells"?

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, kuri prideda daugybę naujų funkcijų, funkcionalumo ir greičio pagerinimo.

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.

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

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

Garsiausias šiuolaikinių kriauklių protegentas yra "Bourne shell", 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 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 lukštais arba "csh" buvo sukurtas 1970-ųjų pabaigoje Billas Joy Kalifornijos universitete, Berklis. 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 panaudojo 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 prideda funkcijų prie "C" apvalkalo, pasiekusi pagerintą "csh" versiją, vadinamą "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.
Laikui bėgant, daugybė žmonių ištaisė klaidas ir prideda funkcijų prie "C" apvalkalo, pasiekusi pagerintą "csh" versiją, vadinamą "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.

Gimimo bosas

Nešiojamojo operacinės sistemos sąsaja Unix ar POSIX 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".
Nešiojamojo operacinės sistemos sąsaja Unix ar POSIX 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., Bet šiandien jis vis dar yra numatytasis lange daugumoje Linux disko. Tai taip pat yra numatytasis "Apple MacOS" apvalkalas, kurį galima įdiegti "Microsoft" "Windows 10".

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

Nors "Linux" bendruomenė pastaraisiais metais apsigyveno "Bash", nuo tada, kai "Bash" buvo išleista prieš 28 metus, kūrėjai nesustojo kurti naujų kriauklių.

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ė apvalkalo 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ą.
Debian sukūrė apvalkalo 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štais yra "Z shell" arba "zsh". 1990 m. Sukurtas Paul Falstad, zsh yra Bourne stiliaus apvalkalas, kuriame yra funkcijos, kurias rasite "bash" ir dar daugiau. Pavyzdžiui, zsh turi rašybos tikrinimo funkciją, galimybę stebėti prisijungimus / išeiti iš naujo, kai kurias integruotas programavimo funkcijas, pvz., Baitų kodą, sintaksės mokslinės žymos palaikymą, taip pat leidžia naudoti kintamos reikšmės aritmetines funkcijas ir kitas funkcijas.
Vienas iš populiariausių naujesnių lukštais yra "Z shell" arba "zsh". 1990 m. Sukurtas Paul Falstad, zsh yra Bourne stiliaus apvalkalas, kuriame yra funkcijos, kurias rasite "bash" ir dar daugiau. Pavyzdžiui, zsh turi rašybos tikrinimo funkciją, galimybę stebėti prisijungimus / išeiti iš naujo, kai kurias integruotas programavimo funkcijas, pvz., Baitų kodą, sintaksės mokslinės žymos palaikymą, taip pat leidžia naudoti kintamos reikšmės aritmetines funkcijas ir kitas funkcijas.
Kitas naujesnis lukštais yra "Friendly Interactive Shell" arba "fish", išleistas 2005 m. Jis turi unikalią komandinės eilutės sintaksę, kuri sukurta taip, kad ją būtų 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.
Kitas naujesnis lukštais yra "Friendly Interactive Shell" arba "fish", išleistas 2005 m. Jis turi unikalią komandinės eilutės sintaksę, kuri sukurta taip, kad ją būtų 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.

Įdiegtose "Linux" sistemose ar BSD sistemose jūs susidursite su pelenų apvalkalu. 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 papildomų scenarijaus 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, ir daugiau 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 negalėsite naudotis šiomis funkcijomis.

"Oi mano ZSH" yra įrankis, kuris padeda jums lengviau įjungti zsh įskiepius ir perjungti iš anksto sukurtas temas, greitai pritaikyti zsh langelį be laiko praleidžiant dalykų tweaking.
"Oi mano ZSH" yra įrankis, kuris padeda jums lengviau įjungti zsh įskiepius ir perjungti iš anksto sukurtas temas, greitai pritaikyti zsh langelį be laiko praleidžiant dalykų tweaking.

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 perjungti tarp korpusų

Nesunku pereiti prie naujos apvalkalo, kad išbandytumėte. 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ėdami įdiegti ir paleisti ją, paleiskite šias komandas:

sudo apt install zsh zsh

Tuomet sėdėtės zsh lukštuose. Tipas"

exit

Prie lukšto palikite jį ir grįžkite į 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, paprastai galite naudoti
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, paprastai galite naudoti

chsh

arba "Keisti 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ą:

which zsh

Apie "Ubuntu" tai sako, kad binārs zsh yra saugomas / usr / bin / zsh.

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

chsh

Pagal pirmiau pateiktą komandą mes norėtume įvesti

/usr/bin/zsh

. Tada zsh lukštas bus mūsų numatytasis, kol mes paleisime

chsh

komandą ir pakeitė jį atgal.

Rekomenduojamas: