Mis vahe on Bash, Zsh ja teiste Linuxi kestade vahel?
Enamik Linuxi distributsioone sisaldavad vaikimisi bash shellit, kuid te võite ka teise kesta keskkonda minna. Zsh on eriti populaarne alternatiiv ja seal on ka teisi kestasid, nagu tuhk, kriips, kala ja tcsh. Aga milline on erinevus ja miks on nii palju?
Mida teevad kestad?
Kui logite sisse käsureale või käivitate Linuxi terminaliakna, käivitab süsteem shelliprogrammi. Karbid pakuvad standardset viisi käsurea keskkonna laiendamiseks. Võite soovi korral vahetada vaikekest teise.
Esimene ümbriskeskkond oli Bell Labsil välja töötatud Thompson Shell, mis ilmus 1971. aastal. Shell-keskkond on selle kontseptsiooni aluseks olnud, lisades mitmeid uusi funktsioone, funktsionaalsust ja kiiruse parandusi.
Näiteks pakub Bash käsu- ja failinime lõpetamist, täiustatud skriptimisfunktsioone, käskude ajalugu, konfigureeritavaid värve, käsu varjunimesid ja mitmesuguseid muid funktsioone, mis ei olnud saadaval juba 1971. aastal, kui esimene kest vabastati.
Kooret kasutatakse taustal ka erinevate süsteemiteenuste abil. Linuxi distributsioonid sisaldavad mitmeid funktsioone, mis on kirjutatud shelliskriptidena. Need skriptid on käsklused ja muud täiustatud shelliskriptifunktsioonid, mis kulgevad läbi shellikeskkonna.
Koored, mis viivad kuni Bashini: sh, csh, tsh ja ksh
Kaasaegsete kestade kõige silmapaistvam eelkäija on Bourne'i koor, mida tuntakse ka kui “sh”, mis sai nimeks tema looja Stephen Bourne'i, kes töötas AT & T Bell Labs'is. 1979. aastal välja antud, sai temast Unixi käsurealt tõlgendaja, kuna see toetas käskude asendamist, torustikke, muutujaid, seisunditesti ja silmusjuhtimist koos teiste funktsioonidega. See ei pakkunud kasutajatele palju kohandusi ning ei toetanud selliseid kaasaegseid naljeid nagu varjunimed, käsu lõpetamise ja kestuse funktsioonid (kuigi viimane lisati lõpuks).
C shell ehk “csh” töötati välja 1970ndate lõpul Bill Joy'i poolt California ülikoolis Berkley. See lisas palju interaktiivseid elemente, millega kasutajad saaksid oma süsteeme juhtida, nagu varjunimed (otseteed pikkade käskude jaoks), tööjuhtimise võimed, käskude ajalugu ja palju muud. See oli modelleeritud C programmeerimiskeelest, mida Unixi operatsioonisüsteem ise kirjutas. See tähendas ka seda, et Bourne'i kesta kasutajad pidid õppima C-d, et nad saaksid selles käske sisestada. Lisaks sellele oli cshil palju vigu, mida kasutajad ja loojad pidid kinni pidama nii suure aja jooksul. Inimesed kasutasid skriptide jaoks Bourne'i kesta, sest see käsitles paremini mitte-interaktiivseid käske, kuid jäi tavapäraseks kasutamiseks C-kestaga kinni.
Aja jooksul kinnitasid paljud inimesed C-kesta vigu ja lisasid funktsioone, mis kulmineerusid täiustatud versiooniga „tcsh”. Kuid csh oli endiselt Unixi põhistes arvutites vaikimisi seadistatud ja lisanud mõned mittestandardsed funktsioonid. Bell Labsilt David Korn töötas KornShelli või „ksh” -i juures, mis püüdis olukorda parandada, kuna ta oli Bourne'i kesta keelega tagurpidi ühilduv, kuid lisades csh shellilt palju funktsioone. See ilmus 1983. aastal, kuid omandiõiguse alusel. See ei olnud vaba tarkvara kuni 2000-ndate aastate lõpuni, kui see ilmus erinevate avatud lähtekoodiga litsentside alusel.
Bashi sünd
Kaasaskantav operatsioonisüsteemi liides Unixile või POSIX-ile oli järjekordne vastus kirglikele varaliste CSH rakendustele. See lõi edukalt käsu tõlgendamise standardi (muu hulgas) ja peegeldas lõpuks palju KornShelli funktsioone. Samal ajal üritas GNU projekt luua tasuta Unixiga ühilduva operatsioonisüsteemi. GNU projekt lõi tasuta tarkvarakesta, mis on osa selle tasuta operatsioonisüsteemist ja nimetas selle „Bourne Again Shelliks” või “bash”.
Bashit on paranenud aastakümneid pärast selle esimest avaldamist 1989. aastal, kuid see on ikka veel enamiku Linuxi distributsioonide vaikimisi kest. See on ka Apple'i MacOS-i vaikekate ja see on installimiseks saadaval Microsofti Windows 10-s.
Uuemad kestad: tuhk, kriips, zsh ja kala
Kuigi Linuxi kogukond on Bash'iga juba aastaid lahendanud, ei lõpetanud arendajad uute karpide loomist, kui Bash oli esmakordselt 28 aastat tagasi.
Kenneth Almquist lõi Bourne'i kooreklooni, mis on tuntud kui Almquish shell, A Shell, "tuhk" või mõnikord lihtsalt "sh". see oli ka POSIX-ühilduv ja sai BSD-s, mis on Unixi erinev haru, vaikekesta. Tuha kest on kergem kui bash, mis muudab selle populaarseks sisseehitatud Linuxi süsteemides. Kui teil on juurdunud Android-telefon BusyBoxiga installitud või mõni muu seade BusyBoxi tarkvarakomplektiga, siis kasutatakse koodi tuhast.
Debian töötas välja tuhkale tugineva kesta keskkonna ja nimetas seda "kriipsuks". See on loodud POSIX-ühilduvaks ja kergeks, nii et see on kiirem kui Bash, kuid tal ei ole kõiki selle omadusi. Ubuntu kasutab vaikekoopana vaikimisi kesta mitte-interaktiivsete ülesannete jaoks, kiirendades shelliskripte ja muid taustal töötavaid ülesandeid. Ubuntu kasutab siiski interaktiivsete kestade jaoks bashit, nii et kasutajatel on endiselt täisfunktsionaalne interaktiivne keskkond.
Üks populaarsemaid uuemaid kestasid on Z-kest või „zsh”. Zsh on Paul Falstadi poolt 1990. aastal loodud Bourne'i stiilis kest, mis sisaldab bash-i funktsioone ja isegi rohkem. Näiteks on zshil õigekirjakontroll, võimalus vaadata sisselogimisi / logoute, mõned sisseehitatud programmeerimisfunktsioonid, näiteks bytecode, teadusliku notatsiooni tugi süntaksis, võimaldab ujuva punkti aritmeetikat ja rohkem funktsioone.
Teine uuem kest on Friendly Interactive Shell ehk “fish”, mis ilmus 2005. aastal. Sellel on ainulaadne käsurea süntaks, mis on mõeldud veidi lihtsamaks õppimiseks, kuid ei ole saadud Bourne'i või C-kestast. See on huvitav idee, kuid see, mida õpid kalade abil, ei pruugi aidata teil kasutada bash'i ja teisi Bourne'ist pärinevaid kestasid.
Milline peaks valima? (ja miks Zsh on populaarne)
Te ei pea valima kesta. Teie operatsioonisüsteem valib teie jaoks vaikekesta ja see valik on peaaegu alati bash. Istuge Linuxi levitamise või isegi Maci ees ja peate peaaegu alati bash shell-keskkonnas. Bashil on üsna vähe täiustatud funktsioone, kuid tõenäoliselt ei kasuta neid, kui te ei kirjuta shelliskripte.
Sisseehitatud Linuxi süsteemides või BSD süsteemides jõuad sa tuhakoorega. Aga tuhk on Bourne'i põhine kest ja on suuresti ühilduv bashiga. Kõik teadmised, mis teil on bash'i kasutamisel, kantakse üle tuhka või kriipsukesta kasutades, kuigi mõningaid täiustatud skriptimisfunktsioone ei ole selles kerge kestaga saadaval..
Peaaegu iga ümbris, millega sa kokku puutute, on Bourne'i baasil ja töötab sarnaselt zsh-ga.
Sellepärast on zsh populaarne. See uuem kest on ühilduv bashiga, kuid sisaldab rohkem funktsioone. Zsh shell pakub sisseehitatud õigekirja parandust, täiustatud käsurea lõpetamist, laaditavaid mooduleid, mis toimivad teie shellile lisandmoodulitena, globaalseid varjunimesid, mis võimaldavad alias failide nimesid või midagi muud käsurealt asendada, ja rohkem abi. See on nagu bash, kuid palju lisasid, lisafunktsioone ja konfigureeritavaid suvandeid võite mõista, kui veedate palju aega käsureal.
Kui te olete bashiga tuttav, saate te vahetada zsh-ile ilma erinevate süntaksi õppimiseta - saate lihtsalt lisafunktsioone. kui sa oled tuttav zsh-ga, võite minna bash-ile ilma erinevate süntaksi õppimata, sa lihtsalt ei pääse nendele funktsioonidele juurde.
“Oh My ZSH” on tööriist, mis aitab teil zsh-pluginaid hõlpsamalt sisse lülitada ja vahetada esmaste teemade vahel, kohandades kiiresti zsh-kesta ilma, et kulutaks tunde..
On ka teisi kestasid. Näiteks on tcsh kest veel ringi ja on veel valik. FreeBSD kasutab vaikimisi root shellina tsch-i ja vaikimisi interaktiivse kestana tuhka. Kui kasutate regulaarselt C-programmeerimist, võib tsch olla teile sobivam. Kuid see pole peaaegu üldse nagu bash või zsh.
Kuidas vahetada kestasid
Uuele koorule on lihtne seda proovida. Lihtsalt installige shell oma Linuxi distributsiooni paketthaldurilt ja tippige käsk käivitamiseks.
Oletame näiteks, et soovite proovida zsh-i Ubuntu. Saate installida ja käivitada järgmised käsud:
sudo apt install zsh zsh
Siis istuksite zsh koorega. Tüüp " väljumist
"Koorega lahkumiseks ja praeguse kestale naasmiseks.
See on lihtsalt ajutine. Kui avate uue terminali akna või logite sisse oma süsteemi käsurealt, näete oma vaikekestat. Kui näete oma sisselogimise tunnusena oma sisselogimise all, siis saate seda tavaliselt kasutada chsh
, või “Muuda kesta”, käsk.
Selle käsu kasutamiseks peate kõigepealt leidma oma käsu täieliku tee selle käsu abil. Oletame näiteks, et me soovime muuta zsh-kestaks. Käiksime järgmine käsk:
mis zsh
Ubuntu puhul ütleb see, et zsh binaar salvestatakse aadressil / usr / bin / zsh.
Käivitage järgmine käsk, sisestage oma parool ja teil palutakse valida uus sisselogimiskest:
chsh
Ülaltoodud käsu kohaselt me siseneksime / usr / bin / zsh
. Zsh koor oleks siis meie vaikimisi, kuni me jooksime chsh
käsk ja muutis selle tagasi.