If-Koubou

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

Koja je razlika između Bash, Zsh i drugih Linux Shells? (Kako da)

Većina Linux distribucija uključuje bash shell prema zadanim postavkama, ali možete se prebaciti i na drugu okruženja 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.

Na primjer, 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 već 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.

Shells Vodeći do Bash: sh, csh, tsh, i ksh

Najistaknutiji predak suvremenih školjaka je Bourne ljuska, poznata i kao "sh", koja je dobila ime po svom tvorcu Stephenu Bourneu koji je radio na AT & T Bell Labs. Izdana 1979. postala je zadana interpretacija naredbi u Unixu zbog podrške za zamjenu naredbe, cijevi, varijable, testiranje stanja i petlje, zajedno s drugim 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 pseudonime (prečice 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.

Tijekom vremena mnogi su ljudi prilagodili 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čelja za Unix, ili POSIX, bio je još jedan odgovor na užurbane vlasničke implementacije csh. 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 dalje zadana shema na većini Linux distribucija danas. To je također zadana ljuska na Appleovom macOS-u i dostupna je za instalaciju na Microsoftovom sustavu Windows 10.

Novije ljuske: pepel, crtica, zsh i riba

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

Kenneth Almquist stvorio je Bourne ljuske klon poznat kao ljuska Almquish, Shell, "pepel", ili ponekad samo "sh". također je POSIX kompatibilan i postao zadana shema u BSD, druga grana Unixa. Pločica pepela 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 školjaka je Z ljuska 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 mogućnosti.

Još jedna novijih ljusaka je Friendly Interactive Shell, ili "fish", izdana 2005. godine. Ona ima jedinstvenu sintaksu naredbene linije koja je dizajnirana da bude malo lakše naučiti, ali nije izvedena ni iz Bourne ljuske niti 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 je Zsh 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.

Zato je zsh 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 i viš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 s premade u teme, brzo prilagodite svoj zsh shell bez trošenja sati ugađati stvari.

Ima i drugih školjaka. 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

Lako 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 isprobati zsh na Ubuntu. Da biste instalirali i pokrenuli sljedeće naredbe, pokrenite sljedeće:

sudo apt instalirajte zsh zsh

Onda biste sjedili kod zsh ljuske. Upišite " Izlaz "Na ljusci ostaviti ga i vratiti se na vašu trenutnu ljusku.

Ovo je samo 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 chsh , ili "Change Shell", naredbu.

Da biste upotrijebili ovu naredbu, najprije morate pronaći put do svoje ljuske s kojom naredbom. Na primjer, recimo da smo željeli promijeniti zsh shemu. Mi ćemo pokrenuti sljedeću naredbu:

koji zsh

Na Ubuntu, ovo nam govori da je zsh binarni spremljen u / 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 gornjoj zapovijedi, ulazili bismo / Usr / bin / zsh , Zsh ljuska bi onda bila naša propust dok ne pokrenemo chsh naredbu i vratio ga.