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

Sisällysluettelo:

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

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

Video: Mikä on ero Bashin, Zsh: n ja muiden Linux Shellsin välillä?
Video: 5 - Настроек в iOS 15 которые нужно ВКЛЮЧИТЬ! - YouTube 2024, Marraskuu
Anonim
Useimmissa Linux-jakeluissa oletuksena on bash-kuori, 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?
Useimmissa Linux-jakeluissa oletuksena on bash-kuori, 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 sisään komentorivillä 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ä erilaisia uusia ominaisuuksia, toimintoja ja nopeusparannuksia.

Esimerkiksi Bash tarjoaa komento- ja tiedostonimien täydennykset, 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.

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

Nykyaikaisten kuorien merkittävin esi-isä on Bourne-kuori, joka tunnetaan nimellä "sh", joka on nimetty AT & T: n Bell Labs -yrityksen palveluksessa työskentelevän tekijän Stephen Bournen nimestä. Julkaistu vuonna 1979, se 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ä paljon 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 parannetusta csh: n versiosta, joka tunnetaan nimellä "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 kieleen, 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ä.
Ajan myötä paljon ihmisiä korjasi bugit ja lisäsi ominaisuuksia C-kuoriin ja huipentui parannetusta csh: n versiosta, joka tunnetaan nimellä "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 kieleen, 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ä.

Syntyminen bash

Unixin tai POSIXin kannettava käyttöjärjestelmäliitäntä oli toinen vastaus hektisiin omistaviin csh-toteutuksiin. Se loi onnistuneesti komennon tulkinnan (muun muassa) ja lopulta paljastui 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".
Unixin tai POSIXin kannettava käyttöjärjestelmäliitäntä oli toinen vastaus hektisiin omistaviin csh-toteutuksiin. Se loi onnistuneesti komennon tulkinnan (muun muassa) ja lopulta paljastui 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 vuosikymmeninä sen ensimmäisestä julkaisusta vuonna 1989, mutta se on edelleen tärkein kuori useimmissa Linux-jakeluissa tänään. Se on myös Apple-MacOS: n oletushaku, ja se on saatavana asennettavaksi Microsoftin Windows 10: een.

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

Linux-yhteisö on asettunut Bashiin vuosien kuluessa, mutta kehittäjät eivät lopettaneet uusien kuvien luomista, kun Bash julkaistiin 28 vuotta sitten.

Kenneth Almquist loi Bourne-kuorikloonin, 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, joka perustuu tuhkaan 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ö.
Debian kehitti kuoriympäristön, joka perustuu tuhkaan 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.
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 "fish", 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ä.
Toinen uudempi kuori on Friendly Interactive Shell tai "fish", 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ä.

Mitkä valitsit? (ja miksi Zsh on suosittu)

Sinun ei tarvitse valita kuoria. 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 ja lisää 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 bashiin, voit vaihtaa zsh: ää ilman oppimista eri syntaksista - 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, jonka avulla voit helpommin käyttää zsh-laajennuksia ja vaihtaa preemaattisten teemojen välillä nopeasti mukauttamalla zsh-kuoriasi käyttämättä tuntikausia.
"Oh My ZSH" on työkalu, jonka avulla voit helpommin käyttää zsh-laajennuksia ja vaihtaa preemaattisten teemojen välillä nopeasti mukauttamalla zsh-kuoriasi käyttämättä tuntikausia.

On myös muita kuoria. 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 Shellin välillä

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

Oletetaan esimerkiksi, että haluat kokeilla zsh Ubuntussa. Voit suorittaa seuraavat komennot ja käynnistää sen seuraavasti:

sudo apt install zsh zsh

Sitten istuisit 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 sisään tunnetuksi kirjautumiskuvaksi, voit yleensä käyttää sitä
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 sisään tunnetuksi kirjautumiskuvaksi, voit yleensä käyttää sitä

chsh

tai "Muuta Shell", komento.

Jotta voit käyttää tätä komentoa, sinun on ensin löydettävä koko polku kuoriisi johon komento. Oletetaan esimerkiksi, että halusimme vaihtaa zsh-kuoriin. Käytimme seuraavaa komentoa:

which zsh

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

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

chsh

Yllä mainitun komennon mukaan pääsemme

/usr/bin/zsh

. Zsh-kuori olisi sitten oletusarvo, kunnes juoksimme

chsh

komento ja muuttanut sen takaisin.

Suositeltava: