22Jul

Mis vahe on Bash'i, Zshi ja teiste Linuxi kestade vahel?

Enamik Linuxi distributsioone sisaldab vaikimisi bash-shelli, kuid võite ka teise shellikeskkonnaga üle minna. Zsh on eriti populaarne alternatiiv ja seal on ka teisi kestasid nagu tuhk, kriips, kala ja tcsh. Kuid mis vahe on ja miks on nii palju inimesi?

Mida shellid teevad?

Kui logite sisse käsurealt või käivitage Linuxi terminali aken, käivitab süsteem shelliprogrammi. Korpused pakuvad standardmeetodit käsurea keskkonna laiendamiseks. Kui soovite, võite vahetada teise klahvi.

Esimene koondkeskkond oli Thompson Shell, mis töötati välja Bell Labsis ja mis ilmus 1971. aastal. Shelli keskkond on sellest ajast alates üles ehitanud, lisades erinevaid uusi funktsioone, funktsionaalsust ja kiiruse parandusi.

Näiteks pakub Bash käsu ja faili nime täiustamist, täiustatud skriptimisfunktsioone, käsku ajalugu, konfigureeritavaid värve, käsku varjunimede ja mitmesuguseid muid funktsioone, mis ei olnud veel kättesaadavad 1971. aastal, kui esimene kleebis oli välja antud.

Koori kasutatakse ka erinevate süsteemiteenuste taustal. Linuxi distributsioonid hõlmavad paljusid shellipõhiseid skripte. Need skriptid on käsud ja shelli keskkonda läbivad teised täiustatud shelli skriptimisfunktsioonid.

koorid, mis juhivad kuni Bashini: sh, csh, tsh ja ksh

Kõige silmapaistvam kaasaegsete kestade eelkäija on Bourne shell, tuntud ka kui "sh", mis sai nime selle looja Stephen Bourne nime all, kes töötas AT & T BellisLaborid. Välja antud 1979. aastal sai see UNIX-i vaikimisi käsu-tõlk, kuna ta toetas käsu asendamist, torustikku, muutujaid, tingimuste testimist ja loopimist koos muude funktsioonidega. See ei paku kasutajatele palju kohandamist ega toetanud selliseid tänapäevaseid peegeldusi nagu varjunimed, käsu lõpuleviimine ja shellifunktsioonid( kuigi see viimane oli lõpuks lisatud).

C-shell või "csh" töötati välja 1970. aastate lõpus Bill Joy'ga California ülikoolis Berkley. See lisab palju interaktiivseid elemente, mille abil saavad kasutajad oma süsteeme juhtida, nagu aliased( pikkade käskude otseteed), töö haldamise võimeid, käskude ajalugu ja palju muud. See modelleeriti C-programmeerimiskeelest, millele Unix-i operatsioonisüsteem ise oli kirjutatud. See tähendas ka seda, et Bourne'i shelli kasutajad pidid õppima C-d, et nad saaksid sisestada käske. Lisaks oli csh üsna vähe vigu, mida kasutajad ja loojad peavad pikka aega kasutama. Inimesed jõudsid skriptide Bourne'i shelli kasutades, sest ta haldas mitte-interaktiivseid käske paremini, kuid jäi tavalise kasutusega C-kestale kinni.

Aja jooksul on paljud inimesed fikseerinud vead ja lisasid funktsioonid C-kestale, mis lõpeb parema csh-i versiooniga tuntud kui tcsh-ga. Kuid csh oli ikka Unix-põhistes arvutites vaikimisi ja lisanud mõningaid ebastandardseid funktsioone. Bell Klaasilaborist pärit David Korn töötas KornShellil või "ksh", kes püüdis olukorda parandada Bourne'i shelli keelega tagurpidi ühilduvas versioonis, kuid lisades csh shellile palju funktsioone. See ilmus 1983. aastal, kuid omandatud litsentsi all. See ei olnud vaba tarkvara kuni 2000ndateni, mil see vabastati erinevate avatud lähtekoodiga litsentside all.

Bash

sünniaeg Unixi või POSIXi portatiivse operatsioonisüsteemi liides oli teine ​​vastus ärevuses olevatele csh-rakendustele. See lõi edukalt käsu tõlgendamise standardi( muu hulgas) ja lõpuks peegeldas palju funktsioone KornShellis. Samal ajal üritas GNU-projekt luua tasuta Unix-i ühilduva operatsioonisüsteemi. GNU-projekt arendas oma vaba operatsioonisüsteemi osaks oleva vaba tarkvarakasti ja nimetas selle "Bourne Again Shell" või "bash".

Bash on aastakümnete jooksul alates selle esmakordsest vabastamisest 1989. aastal täiustatud, kuid see on endiselt vaikimisi enamus Linuxi distributsioonidest täna. See on ka Apple MacOS-i vaikimisi kleebis ja see on installimiseks saadaval Microsofti Windows 10-le.

uuemad kestad: tuhk, dash, zsh ja kala

Kuigi Linuxi kogukond on aastaid asustanud Bashiga, ei suutnud arendajad enam peatadaluues uusi korve, kui Bash esimest korda 28 aastat tagasi ilmus.

Kenneth Almquist lõi Bourne shelli klooni nimega Almquish shell, A shell, "tuhk" või mõnikord lihtsalt "sh".see oli ka POSIX-i ühilduv ja sai UNIX-i erineva haru BSD-i vaikeseks. Tuhapakk on kergem kui bash, mis muudab selle populaarseks manustatud Linuxi süsteemides. Kui teil on sisseehitatud Android-telefon BusyBox-i või mõne muu seadmega, millel on tarkvara BusyBox-komplekt, kasutab ta tuhast pärinevat koodi.

Debian arendas tuhale rajatud shellikeskkonna ja nimetas seda "dash".Selle eesmärk on olla POSIX-ile vastav ja kerge, seega on see kiirem kui Bash, kuid tal pole kõiki funktsioone. Ubuntu kasutab dash-i shelli kui mitte-interaktiivsete ülesannete vaikeseadet, taustal skriptide ja muude ülesannete kiirendamist. Kuid Ubuntu kasutab ikkagi interaktiivsete kestade jaoks bashit, nii et kasutajatel on endiselt täisfunktsionaalne interaktiivne keskkond.

Üks populaarsemaid uuemaid kestasid on Z shell või zsh.1990. aastal loodud Paul Falstadi poolt loodud zsh on Bourne-tüüpi kest, mis sisaldab funktsioone, mida leiate bashist ja veelgi rohkem. Näiteks zshil on õigekirjakontroll, võime vaadata sisselogimisi / logoutsi, mõningaid sisseehitatud programmeerimisfunktsioone, nagu baitide kood, süntaksil teaduslike märkide toetus, ujukoma aritmeetika ja rohkem funktsioone.

Veel uuem koormus on 2005. aastal välja antud sõbralik interaktiivne shell või "kala". Sellel on unikaalne käsurea süntaks, mille eesmärk on natuke lihtsam õppida, kuid ei tule mitte Bourne'i shellist ega C-kestast. See on huvitav mõte, kuid see, mida õpid läbi kalade kasutamise kaudu, ei pruugi tingimata aidata teil kasutada Bashi ja teisi Bourne päritolu kestusi.

, mida peaksite valima?(ja miks Zsh on populaarne)

Teil pole vaja kestat valida. Teie operatsioonisüsteem valib teie vaikeseadete ja see valik on peaaegu alati bash. Istuge Linuxi leviala või isegi Mac-i ees ja peaaegu alati on teil bash-shelli keskkond. Bashil on üsna vähe täiendavaid funktsioone, kuid te tõenäoliselt neid ei kasuta, kui te ei paku shelliskripte.

Sisseehitatud Linuxi süsteemides või BSD-süsteemides jõuate tuhapaika. Kuid tuhk on Bourne-põhine kest ja on suures osas kooskõlas bashiga. Kõik bashist saadud teadmised võtavad kasutusele tuha või kriips koti, kuigi mõned selle skemaarse skriptimise funktsioonid pole saadaval.

Peaaegu iga kohe, millega te satute, on Bourne-põhine ja töötab samamoodi - sh zsh.

Sellepärast on zsh populaarne. See uuem shell sobib bashiga, kuid sisaldab rohkem funktsioone. Zsh-shell pakub sisseehitatud õigekirjakorrektsiooni, täiustatud käsurea lõpetamist, laaditavaid mooduleid, mis toimivad teie shelli pistikprogrammidena, globaalsed varjundid, mis võimaldavad lihtsalt käskude asemel nimede failide nimesid või midagi muud käsureal, jarohkem temaatilist toetust. See on nagu bash, kuid sellel on palju lisasid, lisafunktsioone ja konfigureeritavaid valikuid, mida võiksite hinnata, kui te kulutate käsureal palju aega.

Kui tunnete bashit, võite minna zshile ilma, et oleksite õppinud teistsugust süntaksi - lihtsalt saadate lisavõimalusi.kui oled zshiga tuttav, võite minna bashile ilma, et oleksite õppinud teistsugust süntaksi - just neil omadustel pole juurdepääsu.

"Oh My ZSH" on tööriist, mis aitab teil zsh-lisandmooduleid hõlpsamini sisse lülitada ja vahetada premade teemasid, kohandades oma zsh-i koti kiiresti, ilma et kulutaksite tundide tõhustamist.

on ka teisi kestasid. Näiteks on tcsh-i shell ikka veel ja see on ikkagi valik. FreeBSD kasutab vaikimisi interaktiivset shellit tsch kui selle default root shell ja ash. Kui kasutate C-programme regulaarselt, võib see teile sobida paremini. Kuid see on peaaegu sama, mida tavaliselt kasutatakse bashiks või zshiks.

Kuidas vahetada kestade vahel

Kergesti on uuele kestale üle minna, et seda proovida. Lihtsalt paigaldage oma Linuxi jaotus pakettide haldurist kleebi ja tippige shell käivitamiseks käsk.

Näiteks ütleme, et soovite proovida zshit Ubuntu. Käivitad järgmised käsklused selle installimiseks ja selle käivitamiseks:

sudo apt install zsh zsh

Seejärel asuksite zsh-shellis. Tippige käsku "exit", et jätta see välja ja naasta oma praeguse kestale.

See on ajutine. Kui avate uue terminali akna või logite oma süsteemisse käsureale, näete oma vaikekoori. Kursori muutmiseks, mida näete sisselogimise ajal, nimetatakse teie sisselogimiskraaniks, saate üldjuhul kasutada käsku chsh või "Change Shell".

Selle käsu kasutamiseks peate esmalt leidma oma käsurea täieliku tee, millise käsuga. Näiteks ütleme, et soovime muuta zsh-i shelli. Oleksime käivitanud järgmise käsu:

mis zsh

Ubuntu kohta annab see meile teada, et zsh-binaar on salvestatud /usr/bin/ zsh-i.

Käivitage järgmine käsk, sisestage oma parool ja sulle palutakse valida uus sisselogimislaht:

chsh

Vastavalt ülaltoodud käsule sisestame /usr/bin/ zsh. Seejärel peaks zsh-shell olema meie vaikimisi, kuni me käivitame käsu chsh ja muutnud selle tagasi.