22Jul

Mikä on ero Bashin, Zsh: n ja muiden Linux Shellsin välillä?

click fraud protection

Useimmat Linux-jakeluista sisältävät bash-kuori oletuksena, mutta voit myös siirtyä toiseen kuoriympäristöön. Zsh on erityisen suosittu vaihtoehto, ja siellä on muita kuoria, kuten tuhkaa, viivaa, kalaa ja tcsh. Mutta mikä on ero ja miksi siellä on niin paljon?

Mitä shellit tekevät?

Kun kirjaudut komentoriville tai käynnistät päätelaitteen ikkunan Linuxissa, järjestelmä käynnistää kuoriohjelman. Shellit tarjoavat tavallisen tavan laajentaa komentorivin ympäristöä.Voit vaihtaa oletuskuoren toiseen, jos haluat.

Ensimmäinen kuoriympäristö oli Thompson Shell, joka on kehitetty Bell Labsissa ja julkaistu vuonna 1971. Shell-ympäristöt ovat rakentaneet konseptia siitä lähtien, lisäämällä useita uusia ominaisuuksia, toimintoja ja nopeusparannuksia.

Esimerkiksi Bash tarjoaa komento- ja tiedostonimien täydennyksen, edistykselliset komentotiedosto-ominaisuudet, komentohistorian, konfiguroitavat värit, komennon aliaksit ja monia muita ominaisuuksia, joita ei ollut saatavana jo vuonna 1971, kun ensimmäinen kuori julkaistiin.

instagram viewer

Kuoria käytetään myös erilaisissa järjestelmäpalveluissa taustalla. Linux-jakeluihin sisältyy monia komentotiedostoina kirjoitettuja toimintoja. Nämä komentosarjat ovat komentoja ja muita edistyksellisiä komentojen komentotiedostoja, jotka suoritetaan shell-ympäristön kautta.

Shells leading to Bash: sh, csh, tsh ja ksh

Modernin kuoren merkittävin esi-isä on Bourne-kuori, joka tunnetaan myös nimellä "sh" - nimetty sen luojan Stephen Bournen mukaan, joka työskenteli AT & T: n BellissaLabs. Julkaistu vuonna 1979, siitä tuli Unixin komentotulkinnan oletuskomento, koska se tuki komentojen korvaamista, putkistoja, muuttujia, kunnon testausta ja silmukoitumista sekä muita ominaisuuksia. Se ei tarjoa paljon muokkausta käyttäjille, eikä se tue sellaisia ​​nykyaikaisia ​​hienouksia kuin aliaksia, komennon valmistumista ja kuoritoimintoja( vaikka viimeinen lisäsi lopulta).

C-kuori tai "csh" kehitettiin 70-luvun lopulla Bill Joy'ssa Kalifornian yliopistossa, Berkleyssä.Se lisäsi paljon vuorovaikutteisia elementtejä, joiden avulla käyttäjät voivat hallita järjestelmiään, kuten aliaksia( pikanäppäimet pitkille komennoille), työnhallintatoiminnot, komentohistoria ja paljon muuta. Se oli mallinnettu pois C-ohjelmointikieltä, johon Unix-käyttöjärjestelmä kirjoitettiin sisään. Tämä tarkoitti myös sitä, että Bourne-kuoren käyttäjät joutuivat oppimaan C: n, jotta he voisivat syöttää komentoja siihen. Lisäksi csh: llä oli melko vähän vikoja, joita käyttäjät ja tekijät joutuivat hankkimaan yhtä aikaa. Ihmiset päätyivät käyttämään Bourne-kuorta komentojonojen suhteen, koska se käsitteli muita kuin interaktiivisia komentoja paremmin, mutta juuttui C-kuoriin tavalliseen käyttöön.

Ajan myötä paljon ihmisiä korjasi bugit ja lisäsi ominaisuuksia C-kuoriin ja huipentui parannetulla csh: n versiolla "tcsh".Mutta csh oli edelleen oletus Unix-pohjaisissa tietokoneissa, ja se oli lisännyt joitain epälineaarisia ominaisuuksia. Bell Labsin David Korn työskenteli KornShellissä tai "ksh": ssa, joka yritti parantaa tilannetta kääntämällä takaisin Bourne-kuoren kielelle, mutta lisäämällä monia piirteitä csh-kuoresta. Se julkaistiin vuonna 1983, mutta lisenssillä.Se ei ollut vapaata ohjelmistoa vasta 2000-luvulla, jolloin se julkaistiin useissa avoimen lähdekoodin lisensseissä.

: n syntymä Portable Operating System Interface for Unix, tai POSIX, oli toinen vastaus hektisiin omistaviin csh-toteutuksiin. Se loi onnistuneesti komennon tulkinnan( muun muassa) ja lopulta paljasti paljon KornShell-ominaisuuksia. Samanaikaisesti GNU-projekti yritti luoda ilmainen, Unix-yhteensopiva käyttöjärjestelmä.GNU-projekti kehitti vapaan ohjelmistokehikon osaksi vapaan käyttöjärjestelmänsä ja nimesi sen "Bourne Again Shell" tai "bash".

Bash on parantunut vuosikymmeniin, kun se julkaistiin ensimmäisen kerran vuonna 1989, mutta se on edelleen tärkein kuori useimmissa Linux-jakeluissa tänään. Se on myös Apple-MacOS: n oletuskuvake ja se on saatavana asennettavaksi Microsoftin Windows 10: een.

Uudemmat säiliöt: tuhka, viiva, zsh ja kala

Vaikka Linux-yhteisö on asettunut Bashiin vuosien kuluessa, kehittäjät eivät pysähtyneetluomalla uusia kuoreita, kun Bash julkaistiin ensimmäisen kerran 28 vuotta sitten.

Kenneth Almquist loi Bourne-kuori-kloonin, joka tunnetaan nimellä Almquish-kuori, Shell, "tuhka" tai joskus vain "sh".se oli POSIX-yhteensopiva ja siitä tuli BSD: n oletuskuvake, joka on Unixin erilainen haara. Tuhkakuori on kevyempi kuin bash, joten se on suosittu upotetuissa Linux-järjestelmissä.Jos sinulla on juurrutettu Android-puhelin, jossa BusyBox on asennettu - tai mikä tahansa muu laite, jossa on BusyBox-ohjelmistopaketti - käyttää tuhkan koodia.

Debian kehitti kuoriympäristön tuhkan pohjalta ja kutsui sitä "viiva".Se on suunniteltu POSIX-yhteensopivaksi ja kevyeksi, joten se on nopeampi kuin Bash, mutta sillä ei ole kaikkia ominaisuuksia. Ubuntu käyttää dash-kuoriä sen oletushakuisena ei-interaktiivisille tehtäville, nopeuttaen komentosarjoja ja muita taustalla toimivia tehtäviä.Ubuntu käyttää silti interaktiivisten komentotulkkien käyttöä, joten käyttäjillä on yhä monipuolinen interaktiivinen ympäristö.

Yksi suosituimmista uudemmista kuoreista on Z-kuori tai "zsh".Vuonna 1990 perustettu Paul Falstad on zeppi Bourne-tyyppinen kuori, joka sisältää ominaisuuksia, joita löydät bashista ja vieläkin enemmän. Esimerkiksi zsh on oikeinkirjoituksen tarkistus, kyky tarkastella sisäänkirjautumisia / kirjautumisia, jotkut sisäänrakennetut ohjelmointiominaisuudet, kuten tavutekstit, tieteellisen merkinnän tuki syntaksissa, mahdollistaa liukulukuisen aritmeettisen ja enemmän ominaisuuksia.

Toinen uudempi kuori on Friendly Interactive Shell tai "kala", joka julkaistiin vuonna 2005. Se on ainutlaatuinen komentorivin syntaksi, joka on suunniteltu hieman helpompi oppia, mutta ei ole peräisin Bourne-kuori tai C-kuori. Se on mielenkiintoinen ajatus, mutta mitä opit kalojen käyttämisen avulla, ei välttämättä ole apua bash- ja muiden Bourne-johdosten käyttämisessä.

Mistä valita?(ja miksi Zsh on suosittu)

Sinun ei tarvitse valita kuorta. Käyttöjärjestelmäsi valitsee oletuskuvasi sinulle, ja valinta on lähes aina bash. Istu edessä Linux-jakeluun - tai jopa Maciin - ja sinulla on lähes aina bash-kuoriympäristö.Bashilla on melkoiset lisäominaisuudet, mutta luultavasti niitä ei käytetä, ellet ohjelmoi komentosarjoja.

Sulautetuissa Linux-järjestelmissä tai BSD-järjestelmissä pääset tuhkakuoriin. Mutta tuhka on Bourne-pohjainen kuori ja se on pitkälti yhteensopiva bashin kanssa. Kaikki tiedostosi käyttämäsi tieto siirretään tuhka- tai viivakoodin käyttämiseen, vaikka jotkin kehittyneet komentotiedostot eivät ole käytettävissä tässä kevyessä kuoressa.

Lähes jokainen kuori, jonka kohtaat, on Bourne-pohjainen ja toimii samalla tavoin - mukaan lukien zsh.

Siksi zsh on suosittu. Tämä uudempi kuori on yhteensopiva bashin kanssa, mutta siinä on useita ominaisuuksia. Zsh-kuori tarjoaa sisäänrakennetun kirjoituskorjauksen, parannetun komentorivin valmistumisen, kuormitettavat moduulit, jotka toimivat shellisi laajennuksina, globaaleja aliasteja, joiden avulla voit alias tiedostojen nimet tai jotain muuta komentorivillä vain komentojen sijaan jalisää teemoitusta. Se on kuin bash, mutta paljon lisäominaisuuksia, lisäominaisuuksia ja muokattavissa olevia vaihtoehtoja, jotka arvostaisit, jos käytät paljon aikaa komentorivillä.

Jos olet perehtynyt bash-ohjelmaan, voit vaihtaa zsh: ää ilman eri syntaksin oppimista - saat lisäominaisuuksia.jos olet perehtynyt zsh: iin, voit siirtyä bashiin ilman eri syntaksin oppimista - et vain pääse kyseisiin ominaisuuksiin.

"Oh My ZSH" on työkalu, joka auttaa sinua helpottamaan zsh-laajennuksia ja siirtymään premade-teemojen välillä nopeasti mukauttamalla zsh-kuoriasi käyttämättä tuntikausia.

Myös muita kuoria on. Esimerkiksi tcsh-kuori on vielä ympärillä ja on edelleen vaihtoehto. FreeBSD käyttää tsch: tä oletuksena juuri- ja tuhkana oletuksena vuorovaikutteisena kuorena. Jos käytät C-ohjelmointia säännöllisesti, tsch saattaa olla sinulle sopivampi. Kuitenkin se ei ole läheskään yhtä yleisesti käytetty bash tai zsh.

Kuinka vaihtaa kuoret

On helppo vaihtaa uusi kuori kokeilla sitä.Asenna kuori vain Linux-jakelun paketinhallinnasta ja kirjoita komento komentoriville.

Esimerkiksi sanokaamme haluatko kokeilla zsh Ubuntussa. Sinun olisi suoritettava seuraavat komennot asennettavaksi ja käynnistettäväksi sitten:

sudo apt asenna zsh zsh

Sinun olisi sitten istumassa zsh-kuoressa. Kirjoita "exit" kuoressa, jätä se ja palaa nykyiseen kuoriasi.

Tämä on vain tilapäistä.Aina kun avaat uuden pääteikkunan tai kirjaudut järjestelmään komentorivillä, näet oletuskuvasi. Jos haluat vaihtaa kuoria, jonka näet, kun kirjaudut kirjautumistunnukseksi - voit yleensä käyttää chsh: n tai "Change Shell" -komennon.

Tämän komennon käyttämistä varten sinun on ensin löydettävä koko reitti kuorelle, johon komento. Oletetaan esimerkiksi, että halusimme vaihtaa zsh-kuoriin. Käytimme seuraavaa komentoa:

joka zsh

Ubuntussa tämä kertoo, että zsh-binääri on tallennettu /usr/bin/ zsh: ssä.

Suorita seuraava komento, anna salasanasi ja sinua pyydetään valitsemaan uusi sisäänkirjautumissuoja:

chsh

Edellä olevan komennon mukaisesti annamme /usr/bin/ zsh: n. Zsh-kuori olisi sitten oletusarvo, kunnes suoritimme chsh-komennon ja muutimme sen takaisin.