Što je Bash Shell i zašto je toliko važan za Linux?

Ilustracija prijenosnog računala koja prikazuje terminal s redovima teksta.

fatmawati achmad zaenuri/Shutterstock.com



Bash školjka je stara preko 30 godina i još uvijek je jaka. Što radi, odakle je došao i zašto je još uvijek najčešća ljuska na Linux sustavima?

Što je školjka?

Kada otvorite prozor terminala i upišete naredbe, nešto mora uzeti ono što ste upisali, shvatiti što ste namjeravali i pokrenuti zadatke koje ste tražili. Softver koji to čini je ljuska. Školjka je interpretator naredbi. Skenira ono što ste upisali i odabire naredbe, nazive direktorija, nazive datoteka i imena programa tako da može shvatiti što pokušavate postići.





Što je TTY na Linuxu? (i kako koristiti naredbu tty) POVEZANO Što je TTY na Linuxu? (i kako koristiti naredbu tty) Ljudi često koriste izraze terminalski prozori, naredbeni redak i ljuska naizmjenično, ali to su tri različite stvari. Prozor terminala je softverski prikaz fizičkog teletip terminal . Omogućuje vam vezu s računalom. Da biste učinili bilo što korisno, morate moći upisivati ​​upute u naredbeni redak. Naredbeni redak osigurava ljuska, a prozor terminala omogućuje vam pristup ljusci.

Školjke vam također omogućuju da grupišete kolekciju naredbi u tekstualnu datoteku koja se zove skripta. Sve naredbe u skripti se izvršavaju umjesto vas svaki put kada pokrenete skriptu. Skripte pružaju učinkovitost, ponovljivost i praktičnost.



Prvi Unix školjka je bila Thompsonova školjka , pod nazivom |_+_|. Napisao ju je Ken Thompson , koji je vjerojatno najvažniji član izvornih očeva osnivača Unixa Bell Labs . Thompsonova ljuska korištena je kao zadana ljuska Unixa do i uključujući Unix verziju 6. Zamijenjena je Bourne školjka u verziji 7 Unixa 1979.

POVEZANO: Što je Unix i zašto je to važno?

Bourne Shell

Bourneova ljuska, napisala Stephen Bourne , bio je nadograđena zamjena za Thompsonovu školjku. Čak je počela koristiti istu naredbu kao Thompsonova ljuska, |_+_|, kako bi se održala kompatibilnost unatrag s postojećim skriptama. Kompatibilnost unatrag bila je važna, ali su uključene nove značajke koje su pružale mnogo funkcionalnosti koje i danas koristimo.



Oglas

Bourneova ljuska bila je interaktivna ljuska i skriptni jezik. Podržao je izvršavanje zadataka u prednjem planu i pozadini i elementarnu kontrolu poslova. Dodane su cijevi i preusmjeravanje, zajedno s poboljšanjima u rukovanju petljama.

Školjka je sada sadržavala neke ugrađene naredbe, što znači da nije trebala sve proslijediti vanjskim uslužnim programima, što je čini učinkovitijom. Bourneova školjka je čak podržavala ovdje dokumenti, elegantan način automatizacije slanja podataka u naredbe.

Bourneova školjka podigla je ljestvicu i postala novi standard.

POVEZANO: Kako koristiti 'Ovdje dokumente' u Bashu na Linuxu

Rođenje Basha

Godine 1984., kada je GNU projekt najavio svoju namjeru da napravi besplatan klon Unixa - napisan od temelja i s a novo, dopušteno licenciranje — timu je bila potrebna školjka. Kada volonter koji je radio na ljusci za GNU projekt više puta nije uspio isporučiti ništa, Brian Fox imao zadatak napisati klon Bourneove ljuske.

Nazvano je Bourne Again Shell , ili Bash. Ovo je djelomično bilo kao počast Stephenu Bourneu, a dijelom zbog igre riječi. Nakon izlaska 1989. Chet Ramey pridonio je nekim ispravcima grešaka u Bashu. Na kraju je postao suodržavatelj ljuske Bash. Danas je još uvijek održavatelj projekta Bash.

Linus Torvalds , kreator Linux kernela, rekao je da su prva dva programa koja je pokrenuo na svom novom kernelu 1991. Bash i |_+_|, GNU-ov prevodilac . Uparivanje GNU uslužnih programa s jezgrom Linuxa bilo je obostrano korisno. Operativni sustav GNU trebao je kernel, a jezgra Linuxa trebala je sve ostalo što čini klon Unixa.

Oglas

Budući da je Bash standardna GNU ljuska, postala je standardna ljuska u svim GNU/Linux distribucijama. Linux je procvjetao do te mjere da sada podupire zapanjujuća količina modernog svijeta . Bash školjka također je surfala tim valom uspjeha.

Bash uključuje i poboljšava skup značajki Bourneove ljuske, ali je također uzeo inspiraciju iz drugih školjki, kao što je C ljuska (|_+_|) i KornShell (|_+_|). Na primjer, proširenje tilde |_+_| na vrijednost koja se nalazi u |_+_| varijabla okruženja dolazi iz C ljuske, a |_+_| naredba koja poziva zadani uređivač naredbi u povijest zapovijedanja dolazi iz KornShell-a.

Bash je predstavio konfiguracijske datoteke kao što su datoteke .bashrc i .bash_profile . Uređivanje naredbenog retka na Bashu daleko je nadmašilo mogućnosti prethodnih školjki. Manipulacija prethodno izvršenim naredbama u povijesti naredbi bila je poboljšana verzija značajke C shells bang history. Proširenje zagrade bila je značajka koja je nedostajala u Bourne ljusci koja je implementirana u Bash kao nadskup funkcionalnosti pronađene u C ljusci. Nizovi su poboljšani uklanjanjem ograničenja njihove veličine. Proširenje parametara u naredbenom retku omogućuje korisnicima da prilagode svoj Bash prompt.

Bash ljuska nastoji biti usklađena s POSIX P1003.2/ISO 9945.2 Shell i uslužni programi standard.

POVEZANO: Je li Linux ubio komercijalni Unix?

Zašto je Bash još uvijek važan

Apple MacBook Pro djelomično zatvoren i svijetli u mraku.

Omar Turšić/Shutterstock.com

Bash ne bi mogao izdržati ovoliko dugo - više od 30 godina - kao zadana ljuska Linuxa da nije bio dorastao poslu. Zbog svog dugog vijeka trajanja i ogromne baze korisnika, Bash je zreo i vrlo stabilan. Dostupne su mnoge alternativne školjke, od veterana kao što su C shell i KornShell do novijih školjki poput Z ljuska (|_+_|) i Prijateljska interaktivna školjka (|_+_|). I Z shell i Fish shell imaju neke značajke koje Bash nema, kao i vjerojatno bolje načine za postizanje nekih od istih stvari koje Bash radi. Pa zašto je Bash još uvijek dominantna školjka?

Od svih Linux strojeva kojima sam ikad pozvan da ih administriram, ne sjećam se nijednog koji nije imao Bash kao ljusku. Unix strojevi, da, ali Linux kutije, ne. Svaki put je Bash. To vam poznavanje omogućuje da brzo pristupite poslu i odmah budete učinkoviti. Bash već poznajete, tako da nema krivulje učenja. Ne smetaju vas male razlike u sintaksi zbog kojih se vrtite u krug pokušavajući shvatiti zašto nešto ne funkcionira. Vrijeme provedeno u smišljanju na čemu bi zavjet trebala biti ovaj shell je mrtvo vrijeme, pa je u interesu poslovanja klijenta koristiti dobro poznatu i široko korištenu ljusku.

Oglas

Korištenje ljuske koja je — ili se jako trudi biti — kompatibilna s POSIX-om važna je za mnoge Linux distribucije, ali ono što je važnije je kompatibilnost s prethodnim izdanjima. Očito je neprivlačno praviti izmjene koje bi mogle pokvariti postojeće skripte. Privlačan ili ne, ponekad jednostavno morate zagristi metak. 3. rujna 1967. Švedska je promijenila vožnju lijevom desnom stranom. U 4.50 sati sav promet je morao stati, polako krenuti na drugu stranu ceste i još jednom stati. U 5:00 sati promet bi se mogao nastaviti, a sada svi voze desno.

Hoće li Bash ikada biti zamijenjen?

Ono što bi sada moglo izgledati nezamislivo, može se dogoditi kasnije. Osim ako se ne želimo držati uvjerenja da ćemo svi koristiti Bash do sudnjeg dana, istina je vjerojatno da će jednog dana Bash biti zamijenjen kao zadana Linux ljuska - bez obzira radi li se o GNU standardnoj ljusci ili ne. Ili će to možda biti Bash, ali poboljšan daleko izvan ljuske koju danas koristimo. No, što god zauzme mjesto današnjeg Basha, morat će biti u potpunosti (ili gotovo) kompatibilno unatrag ili će biti vrijedno preokreta, kakve god koristi bile.

Ovo nije bez presedana. Od verzija 10.15 od macOS , Apple je odbacio Bash i usvojio Z shell kao zadanu ljusku. Apple ima problema s GNU Općom javnom licencom (GPL) v.3. Nažalost, to je licenca koju Bash koristi. Posljednja verzija Basha izdana pod GPL v.2 bila je verzija 3.2 iz 2007. Trenutna verzija je 5.1. Apple je zaostajao gotovo desetljeće i pol. Jedini način na koji je Apple mogao uključiti ažuriranu ljusku bez prelaska na GPL v.3 bio je prelazak na drugu ljusku. Za Apple je to bilo vrijedno preokreta. (Međutim, još uvijek možete vratite se na Bash na macOS-u ako ti je draže!)

Postoji ogromna razlika između radne stanice naprednog korisnika i poslovnog Linux poslužitelja kojim morate upravljati na daljinu preko SSH veze . Od gotovo 1,5 milijuna Amazon EC2 hostiranih poslužitelja, preko 93% koristi Linux . Gotovo 75% web poslužitelja koriste Linux . Organizacije poput Red Hata, Amazona i Googlea koriste Linux u svojoj kući.

Teško je zamisliti kakve bi prednosti mogla ponuditi nova školjka koja bi opravdala takvu vrstu globalnog preokreta. Zato je Bash zacementiran na mjestu.

Čak i Microsoft sada nudi način da pokrenite Bash ljusku temeljenu na Linuxu u sustavu Windows 10 !

PROČITAJTE SLJEDEĆE Fotografija profila Davea McKaya Dave McKay
Dave McKay je prvi put koristio računala kada je bušena papirna traka bila u modi i od tada se bavi programiranjem. Nakon više od 30 godina u IT industriji, sada je stalni tehnološki novinar. Tijekom svoje karijere radio je kao freelance programer, voditelj međunarodnog tima za razvoj softvera, voditelj projekta IT usluga, a nedavno i kao službenik za zaštitu podataka. Njegovo pisanje objavili su howtogeek.com, cloudsavvyit.com, tenterpriser.com i opensource.com. Dave je Linux evanđelist i zagovornik otvorenog koda.
Pročitajte cijelu biografiju

Zanimljivi Članci