Početna » kako da » Koja je razlika između Bash, Zsh i ostalih Linux ljuski?

    Koja je razlika između Bash, Zsh i ostalih Linux ljuski?

    Većina Linux distribucija podrazumijeva bash shell, ali možete se prebaciti i na drugi shell. Zsh je osobito popularna alternativa, a postoje i druge ljuske, kao što su pepeo, crtica, riba i tcsh. Ali koja je razlika, i zašto ih ima toliko?

    Što rade školjke??

    Kada se prijavite u naredbenom retku ili pokrenete prozor terminala na Linuxu, sustav pokreće ljuski program. Ljuske nude standardni način proširenja okruženja naredbenog retka. Možete zamijeniti zadanu ljusku za drugu, ako želite.

    Prvi okruženje ljuske bilo je Thompson Shell, razvijen u Bell Labsu i objavljen 1971. godine. Od tada Shell okruženja gradi na konceptu, dodajući niz novih značajki, funkcionalnosti i poboljšanja brzine.

    Primjerice, Bash nudi dovršavanje naredbi i datoteka, napredne značajke skriptiranja, povijest naredbi, boje koje se mogu konfigurirati, aliase naredbi i niz drugih značajki koje nisu bile dostupne 1971. kada je prva ljuska izdana.

    Ljuska se također koristi u pozadini pomoću raznih usluga sustava. Linux distribucije uključuju mnoge funkcije pisane kao skripte ljuske. Ove skripte su naredbe i druge napredne funkcije skriptiranja ljuske koje se izvode kroz okruženje ljuske.

    Ljuske koje vode do basa: sh, csh, tsh i ksh

    Najistaknutiji praotac modernih školjki je Bourneova školjka - također poznata kao "sh" - koja je nazvana po svom tvorcu Stephenu Bourneu koji je radio u AT & T Bell Labsu. Objavljen 1979. godine, postao je zadani naredbeni-interpretator u Unixu zbog podrške za zamjenu naredbi, cjevovoda, varijabli, testiranje uvjeta i petlje, zajedno s drugim značajkama. Korisnicima nije nudila mnogo prilagođavanja i nisu podržavali moderne slatkiše kao pseudonime, dovršavanje naredbi i funkcije ljuske (iako je ova posljednja dodana).

    C-ljuska, ili “csh”, razvijena je krajem 70-ih godina prošlog stoljeća Bill Joyom na Sveučilištu California, Berkley. Dodao je mnogo interaktivnih elemenata kojima korisnici mogu kontrolirati svoje sustave, kao što su pseudonimi (prečaci za duge naredbe), sposobnosti upravljanja zadacima, povijest naredbi i drugo. To je modelirano od programskog jezika C, u kojem je i sam operativni sustav Unixa. To je također značilo da su korisnici Bourneove školjke morali učiti C kako bi mogli unijeti naredbe u njemu. Osim toga, csh je imao dosta grešaka koje su korisnici i kreatori morali izrađivati ​​tijekom velikog vremenskog razdoblja. Ljudi su završili s Bourneovom ljuskom za skripte jer je bolje postupala s neinteraktivnim naredbama, ali se zaglavila s C ljuskom za normalnu upotrebu.

    S vremenom su mnogi ljudi popravili greške i dodali značajke C ljusci, što je kulminiralo poboljšanom verzijom csh poznatom kao "tcsh". Ali csh je još uvijek bio zadani u Unix računalima i dodao je neke nestandardne značajke. David Korn iz Bell Labsa radio je na KornShell, ili “ksh”, koji je pokušao poboljšati situaciju tako što je bio kompatibilan s jezikom Bourneove ljuske, ali je dodao mnoge značajke iz csh ljuske. Izdana je 1983., ali pod vlasničkom licencom. To nije bio besplatan softver do 2000-ih, kada je objavljen pod raznim open-source licencama.

    Rođenje basha

    Interfejs Portable Operating System za Unix ili POSIX bio je još jedan odgovor na hectic proprietary csh implementacije. Uspješno je stvorio standard za interpretaciju naredbi (između ostalog) i na kraju se odrazio na mnoge značajke u KornShell-u. U isto vrijeme, GNU projekt je pokušavao stvoriti besplatan operativni sustav kompatibilan s Unixom. GNU projekt je razvio ljusku slobodnog softvera da bude dio njenog slobodnog operativnog sustava i nazvao je "Bourne Again Shell" ili "bash".

    Bash je poboljšan u desetljećima od svog prvog izdanja 1989. godine, ali je još uvijek zadana ljuska na većini Linux distribucija danas. Također je zadana ljuska na Appleovom MacOS-u, a dostupna je za instalaciju na Microsoftovu Windows 10.

    Novije ljuske: pepeo, crtica, zsh i riba

    Dok se Linux zajednica u tim godinama naselila na Bash, programeri nisu prestali stvarati nove ljuske kada je Bash prvi put objavljen prije 28 godina.

    Kenneth Almquist je stvorio klon Bourneove ljuske poznat kao Almquish shell, A Shell, "ash", ili ponekad samo "sh". također je POSIX kompatibilan i postao je zadana ljuska u BSD-u, različitoj grani Unixa. Ljuska pepela je lakša od basha, što ga čini popularnim u ugrađenim Linux sustavima. Ako imate ukorijenjeni Android telefon s instaliranim BusyBoxom - ili bilo koji drugi uređaj sa softverom BusyBox - koristi kod iz pepela.

    Debian je razvio okruženje ljuske temeljeno na pepelu i nazvalo ga “crtica”. Dizajniran je da bude POSIX kompatibilan i lagan, tako da je brži od Basha, ali neće imati sve njegove značajke. Ubuntu koristi obrub crtica kao zadanu ljusku za ne-interaktivne zadatke, ubrzavajući skripte i druge zadatke koji se izvode u pozadini. Ubuntu još uvijek koristi bash za interaktivne ljuske, pa korisnici još uvijek imaju interaktivnu okolinu s puno mogućnosti.

    Jedna od najpopularnijih novijih ljuski je Z shell ili "zsh". Izradio Paul Falstad 1990. godine, zsh je shell-stil u Bourneu koji sadrži značajke koje ćete naći u bash-u, plus još više. Na primjer, zsh ima provjeru pravopisa, mogućnost gledanja prijave / odjave, neke ugrađene značajke programiranja kao što je bajt kod, podrška za znanstvenu notaciju u sintaksi, dopušta aritmetiku s pomičnim zarezom i više značajki.

    Još jedna novija ljuska je Friendly Interactive Shell, ili "fish", izdana 2005. godine. Ona ima jedinstvenu sintaksu naredbenog retka koja je dizajnirana da bude malo lakša za učenje, ali nije izvedena ni iz Bourneove ljuske ni od C shell-a. To je zanimljiva ideja, ali ono što naučite kroz korištenje ribe ne mora nužno pomoći u korištenju basha i drugih školjki iz Bourneovih proizvoda.

    Koje biste izabrali? (i zašto je Zsh popularan)

    Ne morate odabrati ljusku. Vaš operativni sustav odabire zadanu ljusku za vas i taj je izbor gotovo uvijek bash. Sjednite ispred Linux distribucije - ili čak Mac-a i gotovo uvijek ćete imati okruženje bash shell. Bash ima nekoliko naprednih značajki, ali ih vjerojatno nećete koristiti ako ne programirate skripte.

    Na ugrađenim Linux sustavima ili BSD sustavima završit ćete s ljuskom pepela. No, pepeo je Bourne-based ljuske i uglavnom je kompatibilan s bash. Sva znanja koja imate o korištenju basha prenijet će se na korištenje pepela ili crtice, iako neke napredne značajke skriptiranja nisu dostupne u ovoj laganoj ljusci.

    Gotovo svaka ljuska na koju ćete naići je bazirana na Bourneu i radi slično - uključujući zsh.

    Zato je zsh popularan. Ova novija ljuska kompatibilna je s bash, ali uključuje više značajki. Ljuska zsh nudi ugrađenu ispravku pravopisa, poboljšano dovršavanje naredbenog retka, module koji se mogu učitati i koji služe kao dodatci za vašu ljusku, globalna pseudonima koja vam omogućuju da zamijenite imena datoteka ili bilo što drugo na naredbenom retku, a ne samo naredbe, i više tematske podrške. To je kao bash, ali s puno dodataka, dodatnih značajki i konfigurabilnih opcija koje možete cijeniti ako provodite puno vremena u naredbenom retku.

    Ako ste upoznati s bash-om, možete se prebaciti na zsh bez učenja druge sintakse - samo ćete dobiti dodatne značajke. ako ste upoznati s zsh, možete se prebaciti na bash bez učenja druge sintakse - jednostavno nećete imati pristup tim značajkama.

    "Oh My ZSH" je alat koji vam pomaže da lakše omogućite zsh dodatke i prebacujete se između zamišljenih tema, brzo prilagodite svoj zsh ljusku bez trošenja sati.

    Postoje i druge školjke. Na primjer, tcsh ljuska je još uvijek u blizini i još uvijek je opcija. FreeBSD koristi tsch kao zadanu root školjku i ash kao zadanu interaktivnu ljusku. Ako redovito koristite programiranje C, tsch bi vam mogao biti prikladniji. Međutim, to nije ni približno kao što se obično koristi kao bash ili zsh.

    Kako prebaciti između ljuske

    Lako je prebaciti se na novu ljusku da biste je isprobali. Samo instalirajte ljusku iz upravitelja paketa za Linux distribuciju i upišite naredbu za pokretanje ljuske.

    Na primjer, recimo da želite probati zsh na Ubuntuu. Da biste instalirali, pokrenuli biste sljedeće naredbe:

    sudo apt install zsh zsh

    Ti bi onda sjedio za zsh ljuskom. Upišite " Izlaz "Na ljusci da ga napuste i vrate se u vašu trenutnu ljusku.

    Ovo je samo privremeno. Kad god otvorite novi prozor terminala ili se prijavite u sustav u naredbenom retku, vidjet ćete zadanu ljusku. Da biste promijenili ljusku koju vidite kada se prijavite kao poznati kao ljuska za prijavu, možete općenito koristiti chsh , ili "Promijeni ljusku", naredba.

    Da biste koristili ovu naredbu, najprije morate pronaći punu stazu do ljuske s naredbom. Na primjer, recimo da smo htjeli preći na zsh ljusku. Pokrenuli bismo sljedeću naredbu:

    koji zsh

    Na Ubuntuu, to nam govori da je zsh binarno spremljeno na / usr / bin / zsh.

    Pokrenite sljedeću naredbu, unesite zaporku i od vas će se tražiti da odaberete novu prijavnu ljusku:

    chsh

    Prema gornjoj naredbi, ušli bismo / Usr / bin / zsh . Zsh ljuska bi tada bila naša zadana postavka dok ne pokrenemo chsh naredbu i promijenio natrag.