22Jul

Koja je razlika između Bash, Zsh i drugih Linux Shells?

Većina Linux distribucija uključuje bash shell prema zadanim postavkama, ali možete se prebaciti i na drugu okružju okruženja. Zsh je posebno popularna alternativa, a tu su i druge ljuske, poput pepela, crtica, ribe i tcsh. Ali kakva je razlika, i zašto toliko ima?

Što učiniti Shells?

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

Prva oklopna okruženja bila su Thompson Shell, razvijena u Bell Labsu i izdana 1971. godine. Shell okruženja danas se baziraju na konceptu, dodajući niz novih značajki, funkcionalnosti i poboljšanja brzine.

Primjerice, Bash nudi nadogradnju naredbe i datoteka, napredne značajke skriptiranja, povijest naredbi, boje konfigurirane, naredbeni alias i niz drugih značajki koje nisu bile dostupne još 1971. kada je prva školjka puštena.

Školjka se također koristi u pozadini raznih servisa sustava. Linux distribucije uključuju mnoge funkcije napisane kao shell skripte. Te su skripte naredbe i druge napredne funkcije skriptiranja ljuske koje se pokreću kroz okruženje ljuske. Najpoznatiji progenitor suvremenih školjaka je Bourne ljuska - također poznata kao "sh" - koja je dobila ime po svom autora Stjepana Bournea koji je radio na AT & T BelluLabs. Izdana 1979. postala je zadana interpretacija naredbi u Unixu zbog podrške za zamjenu naredbe, cjevovode, varijable, testiranje uvjeta i petlje, zajedno s ostalim značajkama. Nije ponudila puno prilagodbe za korisnike, a nisu podržavale takve moderne slatkiše kao zamjenske znakove, završetak naredbe i funkcije školjki( iako je ovaj zadnji dodan).

C ljuska, ili "csh", razvijena je krajem sedamdesetih od strane Bill Joy na Kalifornijskom sveučilištu, Berkley. Dodao je mnogo interaktivnih elemenata pomoću kojih korisnici mogu kontrolirati svoje sustave, kao što su pseudonima( prečaci za duge naredbe), sposobnosti upravljanja poslovima, povijest naredbe i još mnogo toga. Izrađen je od C programskog jezika, koji je sam Unix operativni sustav napisan. To je također značilo da korisnici Bourne ljuske moraju naučiti C kako bi mogli unijeti naredbe u njemu. Osim toga, csh je imao dosta bugova koje su korisnici i kreatori morali udahnuti tijekom velikog vremenskog razdoblja. Ljudi su završili pomoću Bourne ljuske za skripte jer je rješavao neinteraktivne naredbe bolje, ali je zaglavio s C ljuskom za uobičajenu upotrebu.

S vremenom su mnogi ljudi popravili bugove i dodali značajke C shell-u, što je kulminiralo poboljšanom verzijom csh poznatog kao "tcsh".No, csh je još uvijek bio zadani u računalima temeljenima na Unixu i dodao je neke nestandardne značajke. David Korn iz Bell Labsa radio je na KornShellu ili "ksh", koji je pokušao poboljšati situaciju tako što je kompatibilan s jezikom Bourne ljuske, ali dodao je mnoge značajke iz šahovske ljuske. Puštena je 1983. godine, ali pod vlastitom licencom. Nije bio besplatan softver do 2000-ih, kada je bio izdan pod raznim licencama otvorenog izvora.

Rođenje bash

Prijenosni operativni sustav sučelje za Unix, ili POSIX, bio je još jedan odgovor na užurbane vlasničke CSS implementacije. Uspješno je stvorio standard za interpretaciju naredbe( između ostalog) i na kraju je odrazio mnoge značajke u KornShell. Istodobno, GNU projekt pokušava stvoriti slobodan, Unix-kompatibilan operacijski sustav. GNU Projekt je razvio besplatnu softversku ljusku koja je dio svog slobodnog operativnog sustava i nazvala je "Bourne Again Shell" ili "bash".

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

Noviji ljusci: pepel, crtica, zsh i ribe

Dok se Linux zajednica dogodila na Bashu godinama, programeri nisu prestalistvarajući nove ljuske kada je Bash prvi put pušten prije 28 godina.

Kenneth Almquist stvorio je Bourne ljuske klon poznat kao Almquish ljuska, Shell, "pepel", ili ponekad samo "sh".također je POSIX kompatibilan i postao zadana shema u BSD, druga grana Unixa. Pepela ljuska je lakša nego bash, što ga čini popularnim u ugrađenim Linux sustavima. Ako imate ugrađeni Android telefon s instaliranom BusyBoxom ili bilo koji drugi uređaj s BusyBox paketom softvera, upotrebljava kôd iz pepela.

Debian je razvio okruženje ljuske temeljeno na pepelu i nazvao ga "crticom".Osmišljen je da bude POSIX-kompatibilan i lagan, pa je brži od Bash, ali neće imati sve njegove značajke. Ubuntu koristi shemu ljuske kao zadanu ljusku za neinteraktivne zadatke, ubrzavajući skripte ljuske i druge zadatke koji se izvode u pozadini. Ubuntu i dalje koristi bash za interaktivne ljuske, međutim, tako da korisnici i dalje imaju potpuno opremljen interaktivno okruženje.

Jedna od najpopularnijih novijih školjki je Z shell, ili "zsh".Izrađen je Paul Falstad 1990. godine, zsh je ljuska u Bourne stilu koja sadrži značajke koje ćete naći u bashu, plus još više. Na primjer, zsh ima provjeru pravopisa, sposobnost gledanja prijava / odjavljivanja, neke ugrađene programske značajke poput bytekod, podrška znanstvenoj notaciji u sintaksi, omogućuje aritmetiku s pomičnim zarezom i više značajki.

Još jedna novijih ljusaka je Friendly Interactive Shell ili "fish", objavljen 2005. godine. Ima jedinstvenu sintaksu naredbene linije koja je dizajnirana da bude malo lakše naučiti, ali nije izvedena iz Bourne ljuske ili C ljuske, To je zanimljiva ideja, ali ono što naučite pomoću ribe neće vam nužno pomoći da upotrijebite bash i druge ljuske iz Bournea.

Koji biste trebali odabrati?(i zašto Zsh je popularan)

Ne morate odabrati ljusku. Vaš operativni sustav odabire vašu zadanu ljusku za vas, a taj je izbor gotovo uvijek bash. Sjedi ispred Linux distribucije - ili čak Mac - a gotovo uvijek imate okruženje oklopa basha. Bash ima dosta naprednih značajki, ali ih vjerojatno nećete koristiti, osim ako programirate skriptne ljuske.

Na ugrađenim Linux sustavima ili BSD sustavima, završit ćete s ljuskom pepela. No, pepeo je Bourne-based shell i uglavnom je kompatibilan s bash. Svako znanje koje imate iz korištenja bash će se prebaciti na korištenje ljuske pepela ili crtica, iako neke napredne značajke skripti nisu dostupne u ovoj laganoj ljusci.

Gotovo svaka ljuska koju ćete susresti je Bourne-based i radi slično, uključujući zsh.

Zah je popularan. Ova novija shema je kompatibilna s bash, ali uključuje i više značajki. Zsh ljuska nudi ugrađenu korekciju pravopisa, poboljšanje završetka naredbenog retka, učitani moduli koji djeluju kao dodatke za vašu ljusku, globalni alias koji vam omogućuju pseudonim imena datoteka ili bilo što drugo na naredbenom retku umjesto samo naredbi iviše tematske podrške. To je kao bash, ali s mnogo dodataka, dodatnih značajki i mogućih mogućnosti koje biste mogli prilagoditi, možda biste cijenili ako provodite dosta vremena na naredbenom retku.

Ako ste upoznati s bash, možete se prebaciti na zsh bez učenja druge sintakse - dobit ćete 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 plug-ins i prebacite se među premade teme, brzo prilagodite svoj zsh ljuske bez trošenja sati ugađati stvari.

Postoje i druge ljuske. Na primjer, tcsh ljuska još uvijek je okolo i još je uvijek opcija. FreeBSD koristi tsch kao zadanu korijensku ljusku i pepeo kao zadanu interaktivnu ljusku. Ako redovito koristite C programiranje, tsch bi vam mogao biti bolji. Međutim, to je nigdje uobičajeno kao bash ili zsh.

Kako se prebacivati ​​između školjki

Jednostavno se prebaciti na novu ljusku da biste je isprobali. Instalirajte ljusku iz upravitelja paketa Linux distribucije i upišite naredbu za pokretanje ljuske.

Na primjer, recimo da želite pokušati zsh na Ubuntu. Pokrenite sljedeće naredbe za instalaciju, a zatim ga pokrenite:

sudo apt instalirajte zsh zsh

Tada biste sjedili kod zsh ljuske. Upišite "izlaz" na ljusku kako biste ga ostavili i vratili se na trenutnu ljusku.

Ovo je privremeno. Kad god otvorite novi prozor terminala ili se prijavite u svoj sustav u naredbenom retku, vidjet ćete svoju zadanu ljusku. Da biste promijenili ljusku koju vidite kada se prijavite kao poznata kao ljuska za prijavu, općenito možete upotrijebiti naredbu chsh ili "Change Shell".

Da biste koristili ovu naredbu, prvo ćete morati pronaći cijeli put do vaše ljuske s kojom naredbom. Na primjer, recimo da smo željeli promijeniti zsh shemu. Mi ćemo pokrenuti sljedeću naredbu:

koji zsh

Na Ubuntu, ovo govori da je zsh binarni pohranjen na /usr/bin/ zsh.

Pokrenite sljedeću naredbu, unesite svoju lozinku i od vas će se tražiti da odaberete novu ljusku za prijavu:

chsh

Prema gore navedenoj naredbi unosimo /usr/bin/ zsh. Zsh ljuska bi onda bila naša propust dok ne pokrenemo naredbu chsh i vratimo ga.