Mitä eroa on Bash, Zsh ja muut Linux-kuoret?
Useimmat Linux-jakelut sisältävät oletusarvoisesti bash-kuoren, mutta voit myös vaihtaa toiseen kuorimerkkiin. Zsh on erityisen suosittu vaihtoehto, ja on olemassa myös muita kuoret, kuten tuhka, viiva, kala ja tcsh. Mutta mikä ero on, ja miksi on niin paljon?
Mitä kuoret tekevät?
Kun kirjaudut komentoriville tai käynnistät terminaalin ikkunan Linuxissa, järjestelmä käynnistää kuoriohjelman. Kuoret tarjoavat tavallisen tavan laajentaa komentorivin ympäristöä. Voit vaihtaa oletuskuoren toiseen, jos haluat.
Ensimmäinen kuoriympäristö oli Bell Labsissa kehitetty Thompson Shell, joka julkaistiin vuonna 1971. Shell-ympäristöt ovat rakentaneet konseptia siitä lähtien lisäämällä erilaisia uusia ominaisuuksia, toimintoja ja nopeuden parannuksia.
Esimerkiksi Bash tarjoaa komento- ja tiedostonimen täydennyksen, kehittyneitä komentosarjojen ominaisuuksia, komentohistoriaa, määritettäviä värejä, komentojen aliaksia ja monia muita ominaisuuksia, jotka eivät olleet käytettävissä jo vuonna 1971, kun ensimmäinen kuori julkaistiin.
Kuoria käytetään myös taustalla erilaisilla järjestelmäpalveluilla. Linux-jakelut sisältävät monia funktioita, jotka on kirjoitettu shell-skripteiksi. Nämä skriptit ovat komentoja ja muita kehittyneitä shell-skriptointitoimintoja, jotka kulkevat kuoren ympäristössä.
Kuoret johtavat Bashiin: sh, csh, tsh ja ksh
Kaikkein merkittävin nykyaikaisen kuoren esijäsen on Bourne-kuori, joka tunnetaan myös nimellä "sh", joka nimettiin sen tekijän Stephen Bournen mukaan, joka työskenteli AT & T: n Bell Labsissa. Se julkaistiin vuonna 1979, ja siitä tuli Unixin oletusarvo-tulkki, koska se tuki komentojen korvaamista, putkistoja, muuttujia, kunnon testausta ja silmukointia sekä muita ominaisuuksia. Se ei tarjonnut käyttäjille paljon räätälöintiä eikä tukenut tällaisia moderneja nicetioita kuten aliaksia, komentojen suorittamista ja shell-toimintoja (vaikka tämä viimeksi lisättiin lopulta).
C-kuori eli “csh” kehitettiin 1970-luvun lopulla Bill Joy Kalifornian yliopistossa Berkleyssä. Se lisäsi paljon vuorovaikutteisia elementtejä, joiden avulla käyttäjät voivat hallita järjestelmiä, kuten aliaksia (pikakomentojen pikavalinnat), työnhallintakykyjä, komentohistoriaa ja paljon muuta. Se mallinnettiin C-ohjelmointikielestä, jota Unix-käyttöjärjestelmä itse kirjoitettiin. Tämä tarkoitti myös sitä, että Bournen kuoren käyttäjien oli opittava C: tä, jotta he voisivat syöttää komentoja siihen. Lisäksi CSH: llä oli melko vähän vikoja, jotka käyttäjien ja tekijöiden oli kyettävä estämään niin pitkään. Ihmiset käyttivät Bourne-kuoria skripteihin, koska se käsitteli muita kuin vuorovaikutteisia komentoja paremmin, mutta tarttui normaalikäyttöön C-kuoren kanssa.
Ajan mittaan monet ihmiset vahvistivat vikoja ja lisäsivät ominaisuuksia C-kuorelle, joka huipentui "tcsh" -nimisenä parannettuun CSH-versioon. Mutta csh oli edelleen Unix-pohjaisten tietokoneiden oletusarvo, ja se oli lisännyt joitakin epätyypillisiä ominaisuuksia. Bell Labsin David Korn työskenteli KornShellilla tai “ksh”: lla, joka yritti parantaa tilannetta olemalla taaksepäin yhteensopiva Bournen kuoren kielen kanssa, mutta lisännyt monia ominaisuuksia csh-kuoresta. Se julkaistiin vuonna 1983, mutta omistusoikeuden alaisena. Se ei ollut vapaa ohjelmisto 2000-luvulle saakka, kun se julkaistiin erilaisilla avoimen lähdekoodin lisensseillä.
Bashin syntymä
Kannettava käyttöjärjestelmän käyttöliittymä Unixille tai POSIX-järjestelmälle oli toinen vastaus hektisiin omiin csh-toteutuksiin. Se loi menestyksekkäästi standardin komentojen tulkinnalle (muun muassa) ja peili lopulta paljon KornShellin ominaisuuksia. Samalla GNU-projekti yritti luoda ilmaisen, Unix-yhteensopivan käyttöjärjestelmän. GNU-projekti kehitti vapaan ohjelmiston kuoren, joka on osa sen ilmaista käyttöjärjestelmää, ja nimesi sen "Bourne Again Shelliksi" tai "bash".
Bash on parantunut vuosikymmeninä sen ensimmäisen julkaisun jälkeen vuonna 1989, mutta se on edelleen useimpien Linux-jakelujen oletuskuori. Se on myös Applen MacOSin oletuskuori, ja se on käytettävissä asennettavaksi Microsoftin Windows 10 -käyttöjärjestelmään.
Uudemmat kuoret: tuhka, viiva, zsh ja kala
Vaikka Linux-yhteisö on asettunut Bashiin viime vuosina, kehittäjät eivät lopettaneet uusien kuorien luomista, kun Bash julkaistiin ensimmäisen kerran 28 vuotta sitten.
Kenneth Almquist loi Bourne-kuorokloonin, joka tunnetaan nimellä Almquish shell, A Shell, "tuhka" tai joskus vain "sh". se oli myös POSIX-yhteensopiva ja siitä tuli BSD: n, Unixin eri toimialan, oletuskuori. Tuhkakuoret ovat kevyempiä kuin bash, mikä tekee siitä suositun sulautetuissa Linux-järjestelmissä. Jos sinulla on juurtunut Android-puhelin, johon on asennettu BusyBox tai jokin muu laite, jossa on BusyBox-ohjelmistopaketti, se käyttää koodia tuhasta.
Debian on kehittänyt kuoren ympäristön, joka perustuu tuhkaan ja kutsui sitä "viivaksi". Se on suunniteltu POSIX-yhteensopivaksi ja kevyeksi, joten se on nopeampi kuin Bash, mutta sillä ei ole kaikkia sen ominaisuuksia. Ubuntu käyttää kojekuorta oletuskuorena ei-vuorovaikutteisiin tehtäviin, nopeuttamalla shell-skriptejä ja muita taustalla olevia tehtäviä. Ubuntu käyttää kuitenkin interaktiivisia kuoria varten bashia, joten käyttäjillä on edelleen täyden valikoiman interaktiivinen ympäristö.
Yksi suosituimmista uudemmista kuorista on Z-kuori tai “zsh”. Paul Falstadin vuonna 1990 perustama zsh on Bourne-tyylinen kuori, joka sisältää bash-ohjelmassa olevat ominaisuudet ja jopa enemmän. Esimerkiksi zsh: llä on oikeinkirjoituksen tarkistus, mahdollisuus katsella kirjautumisia / logouteja, jotkin sisäänrakennetut ohjelmointitoiminnot, kuten bytecode, tieteellisen notaation tuki syntaksissa, mahdollistavat kelluvan pisteen aritmeettisen ja lisää ominaisuuksia.
Toinen uudempi kuori on Friendly Interactive Shell eli “fish”, joka julkaistiin vuonna 2005. Siinä on ainutlaatuinen komentorivin syntaksi, joka on suunniteltu hieman helpommaksi oppia, mutta ei johdu Bourne-kuoresta tai C-kuoresta. Se on mielenkiintoinen ajatus, mutta se, mitä opit kalojen avulla, ei välttämättä auta sinua käyttämään bash- ja muita Bournen johdoksia.
Mikä pitäisi valita? (ja miksi Zsh on suosittu)
Sinun ei tarvitse valita kuoria. Käyttöjärjestelmäsi valitsee oletuskuoren sinulle, ja tämä valinta on lähes aina bash. Istu alas Linux-jakelu-tai jopa Mac-tietokoneeseen, ja sinulla on lähes aina bash shell -ympäristö. Bashillä on melko vähän kehittyneitä ominaisuuksia, mutta et todennäköisesti käytä niitä, ellet ohjelmoi shell-skriptejä.
Sulautetuissa Linux-järjestelmissä tai BSD-järjestelmissä pääset tuhkakuorelle. Mutta tuhka on Bourne-pohjainen kuori, ja se on suurelta osin yhteensopiva bash: n kanssa. Kaikki tiedot, joita sinulla on bash-toiminnon avulla, siirtyvät tuhka- tai viivakuoren avulla, vaikka jotkin kehittyneet komentosarjatoiminnot eivät ole käytettävissä tässä kevyessä kuoressa.
Lähes jokainen kuori, jonka kohtaat, on Bourne-pohjainen ja toimii samalla tavalla kuin zsh.
Siksi zsh on suosittu. Tämä uudempi kuori on yhteensopiva bash: n kanssa, mutta sisältää enemmän ominaisuuksia. Zsh-kuori tarjoaa sisäänrakennetun oikeinkirjoituksen korjauksen, parannetun komentorivin loppuunsaattamisen, ladattavat moduulit, jotka toimivat kuoren laajennuksina, maailmanlaajuiset aliakset, joiden avulla voit nimetä tiedostonimiä tai muuta komentorivillä vain komentojen sijaan, ja enemmän tukea. Se on kuin bash, mutta paljon lisätoimintoja, lisäominaisuuksia ja konfiguroitavia asetuksia saatat arvostaa, jos käytät paljon aikaa komentorivillä.
Jos olet perehtynyt bashiin, voit siirtyä zsh: iin ilman eri syntaksi oppimista. jos olet perehtynyt zshiin, voit siirtyä bash-laitteeseen ilman eri syntaksi oppimista - et vain pääse näihin ominaisuuksiin.
”Oh My ZSH” on työkalu, jonka avulla voit helpottaa zsh-laajennusten käyttöönottoa ja vaihtaa premade-teemoja keskenään..
Myös muita kuoret ovat. Esimerkiksi tcsh-kuori on edelleen noin ja on edelleen vaihtoehto. FreeBSD käyttää tsch: tä oletusjuurikuorena ja tuhkaa oletuksena interaktiivisena kuorena. Jos käytät C-ohjelmointia säännöllisesti, tsch saattaa olla sinulle sopivampi. Se ei kuitenkaan ole läheskään niin lähellä kuin bash tai zsh.
Miten vaihtaa kuorien välillä
On helppo siirtyä uuteen kuoreen kokeilemaan sitä. Asenna kuori Linux-jakelun paketinhallinnasta ja kirjoita komento käynnistääksesi kuoren.
Oletetaan esimerkiksi, että haluat kokeilla zsh: ia Ubuntuissa. Voit asentaa ja käynnistää seuraavat komennot:
sudo apt install zsh zsh
Sitten olisit istumassa zsh-kuoressa. Kirjoita " poistuminen
”Kuoressa, jos haluat jättää sen ja palata nykyiseen kuoriisi.
Tämä on vain väliaikainen. Kun avaat uuden päätelaitteen ikkunan tai kirjaudut järjestelmään komentorivillä, näet oletuskuoren. Voit vaihtaa näkyvän kuoren, kun kirjaudut sisäänkirjautumistunnuksessasi chsh
, tai “Vaihda kuori”, komento.
Jos haluat käyttää tätä komentoa, sinun on ensin löydettävä koko polku kuorellesi millä komennolla. Oletetaan esimerkiksi, että halusimme vaihtaa zsh-kuoreksi. Käyttäisimme seuraavan komennon:
joka zsh
Tämä kertoo Ubuntuissa, että zsh-binaari on tallennettu osoitteeseen / usr / bin / zsh.
Suorita seuraava komento, anna salasana ja sinua pyydetään valitsemaan uusi kirjautumistunnus:
chsh
Yllä olevan komennon mukaan me kirjoittaisimme / Usr / bin / zsh
. Zsh-kuori olisi sitten oletusarvo, kunnes suoritimme chsh
komento ja muutti sen takaisin.