Kakšna je razlika med Bash, Zsh in drugimi lupinami Linuxa?
Večina distribucij Linuxa privzeto vključuje lupino bash, vendar lahko preklopite tudi na drugo lupinsko okolje. Zsh je še posebej priljubljena alternativa in obstajajo tudi druge lupine, kot so pepel, pomišljaj, ribe in tcsh. Toda kakšna je razlika in zakaj jih je toliko?
Kaj delajo lupine?
Ko se prijavite v ukazno vrstico ali zaženete okno terminala v sistemu Linux, sistem zažene program shell. Lupine ponujajo standardni način razširitve okolja ukazne vrstice. Privzeto lupino lahko zamenjate z drugo, če želite.
Prvi lupinski prostor je bil Thompson Shell, razvit v Bell Labs in izdan leta 1971. Shell okolja od takrat gradijo na konceptu in dodajajo različne nove funkcije, funkcionalnosti in izboljšave hitrosti..
Na primer, Bash ponuja dokončanje ukazov in imen datotek, napredne funkcije skriptov, zgodovino ukazov, barve, ki jih je mogoče konfigurirati, vzdevke ukazov in številne druge funkcije, ki niso bile na voljo leta 1971, ko je bila izdana prva lupina..
Lupino uporabljamo tudi v ozadju z različnimi sistemskimi storitvami. Distribucije Linuxa vključujejo veliko funkcij, napisanih kot skripti lupine. Ti skripti so ukazi in druge napredne funkcije skriptnih ukazov, ki tečejo skozi lupinsko okolje.
Lupine, ki vodijo do Basha: sh, csh, tsh in ksh
Najvidnejši prednik sodobnih lupin je Bourneova lupina, znana tudi kot "sh", ki je dobila ime po svojem ustvarjalcu Stephenu Bournu, ki je delal v AT & T-jevem Bell Labsu. Izdan leta 1979, je postal privzeti ukazni tolmač v Unixu zaradi podpore za zamenjavo ukazov, cevovodov, spremenljivk, preizkušanje pogojev in zankanja, skupaj z drugimi funkcijami. Uporabnikom ni ponudila veliko prilagoditev in ni podpirala takšnih modernih podob, kot so vzdevki, dokončanje ukazov in ukazne lupine (čeprav je bila ta zadnja dodana).
C lupino, ali “csh”, je bil razvit v poznih 1970-ih Bill Joy na Univerzi v Kaliforniji, Berkley. Dodal je veliko interaktivnih elementov, s katerimi bi uporabniki lahko upravljali svoje sisteme, kot so vzdevki (bližnjice za dolge ukaze), sposobnosti za upravljanje opravil, zgodovino ukazov in drugo. Modeliran je bil iz programskega jezika C, v katerega je bil vpisan sam operacijski sistem Unix. To je pomenilo tudi, da so se uporabniki Bourneove lupine morali naučiti C, da bi lahko vnesli ukaze v njem. Poleg tega je csh imel kar nekaj napak, ki so jih morali uporabniki in ustvarjalci v velikem časovnem obdobju izločiti. Ljudje so končali z uporabo lupine Bourne za skripte, ker so bolje ravnali z neinteraktivnimi ukazi, vendar so obtičali z lupino C za normalno uporabo.
Sčasoma je veliko ljudi popravilo napake v ukazni lupini C in dodalo funkcije, ki so se končale z izboljšano različico csh, znano kot "tcsh". Toda csh je bil še vedno privzet v Unix računalnikih in je dodal nekaj nestandardnih funkcij. David Korn iz Bell Labs je delal na KornShell, ali "ksh", ki je poskušal izboljšati situacijo tako, da je bil nazaj kompatibilen z jezikom Bourneove lupine, vendar je dodal veliko funkcij iz lupine csh. Izdana je bila leta 1983, vendar pod lastniško licenco. Do leta 2000, ko je bila izdana pod različnimi odprtokodnimi licencami, to ni bilo prosto programje.
Rojstvo bash
Vmesnik prenosnega operacijskega sistema za Unix ali POSIX je bil še en odziv na grozljive lastniške implementacije csh. Uspešno je ustvaril standard za interpretacijo ukazov (med drugim) in na koncu zrcalil veliko funkcij v KornShell. Hkrati je projekt GNU poskušal ustvariti brezplačen operacijski sistem, združljiv z Unixom. Projekt GNU je razvil prosto programsko opremo, ki je del prostega operacijskega sistema in jo poimenovala »Bourne Again Shell« ali »Bash«.
Bash je bil izboljšan v desetletjih od njegove prve izdaje leta 1989, vendar je še vedno privzeta lupina na večini distribucij Linuxa danes. Prav tako je privzeta lupina na Appleovem MacOSu in je na voljo za namestitev na Microsoftovem Windows 10.
Novejše lupine: pepel, dash, zsh in ribe
Medtem ko se je Linuxova skupnost v preteklih letih ustalila na Bashu, razvijalci niso prenehali ustvarjati novih lupin, ko je bil Bash prvič izdan pred 28 leti.
Kenneth Almquist je ustvaril klon Bournejeve lupine, imenovan lupina Almquish, A Shell, »ash« ali včasih samo »sh«. bil je tudi kompatibilen s sistemom POSIX in postal je privzeta lupina v BSD, različni veji Unixa. Lupina pepela je bolj lahka kot bash, zaradi česar je priljubljena v vgrajenih sistemih Linux. Če imate zakoreninjen telefon Android z nameščenim programom BusyBox - ali katero koli drugo napravo s programsko opremo BusyBox - uporablja kodo iz ash.
Debian je razvil okolje lupine, ki temelji na pepelu in ga imenoval »dash«. Zasnovan je tako, da je skladen s POSIX in lahek, zato je hitrejši od Basha, vendar ne bo imel vseh njegovih funkcij. Ubuntu uporablja ukazno lupino kot privzeto lupino za neinteraktivne naloge, ki pospešujejo lupinske skripte in druge naloge, ki se izvajajo v ozadju. Ubuntu še vedno uporablja bash za interaktivne ukazne lupine, zato imajo uporabniki še vedno interaktivno okolje z vsemi funkcijami.
Ena izmed najbolj priljubljenih novejših lupin je Z shell ali "zsh". Ustvaril Paul Falstad leta 1990, zsh je lupina v slogu Bourneja, ki vsebuje funkcije, ki jih boste našli v bash, in še več. Na primer, zsh ima preverjanje črkovanja, sposobnost opazovanja prijav / odjav, nekatere vgrajene funkcije programiranja, kot so bajtna koda, podpora za znanstveno notacijo v skladnji, omogoča aritmetiko s plavajočo vejico in več funkcij..
Druga novejša lupina je prijazna interaktivna lupina, ali "riba", izdana leta 2005. Ima edinstveno sintakso v ukazni vrstici, ki je zasnovana tako, da jo je lažje naučiti, vendar ni izpeljana niti iz lupine Bourne niti iz C lupine. To je zanimiva ideja, toda tisto, kar se naučite z uporabo rib, vam ne bo nujno pomagalo, da uporabite bash in druge Bourneove lupine.
Katero bi morali izbrati? (in zakaj je Zsh priljubljen)
Ni vam treba izbrati ukazne lupine. Vaš operacijski sistem izbere privzeto lupino za vas in ta izbira je skoraj vedno bash. Sedite pred Linux distribucijo - ali celo Mac - in skoraj vedno boste imeli okolje bash lupine. Bash ima kar nekaj naprednih funkcij, vendar jih verjetno ne boste uporabljali, razen če programirate skripte ukaznih lupin.
Na vgrajenih sistemih Linuxa ali sistemih BSD boste imeli lupino pepela. Toda pepel je lupina, ki temelji na Bournu in je v veliki meri združljiva z bash. Vsako znanje, ki ga imate o uporabi basha, se bo preneslo v lupino pepela ali pomišljaja, čeprav nekatere napredne funkcije skriptiranja niso na voljo v tej lahki lupini.
Skoraj vsaka lupina, na katero boste naleteli, temelji na Bournu in deluje podobno - vključno z zsh.
Zato je zsh priljubljen. Ta novejša lupina je združljiva z bash, vendar vključuje več funkcij. Zaščitna lupina zsh ponuja vgrajeno popravek črkovanja, izboljšano dokončanje ukazne vrstice, naložljive module, ki delujejo kot vtičniki za vašo ukazno lupino, globalne vzdevke, ki omogočajo, da se namesto samo ukazov imenujejo datoteke ali karkoli drugega v ukazni vrstici več tematske podpore. To je kot bash, vendar z veliko dodatki, dodatnimi funkcijami in nastavljivimi možnostmi, ki jih boste cenili, če boste veliko časa preživeli v ukazni vrstici.
Če poznate bash, lahko preklopite na zsh, ne da bi se učili drugačne sintakse - pridobili boste dodatne funkcije. če ste seznanjeni z zsh, lahko preklopite na bash, ne da bi se učili drugačne sintakse - preprosto ne boste imeli dostopa do teh funkcij.
»Oh My ZSH« je orodje, ki vam pomaga lažje omogočiti vtičnike zsh in preklapljate med pripravljenimi temami, hitro prilagodite lupino zsh, ne da bi porabili veliko ur.
Obstajajo tudi druge lupine. Na primer, lupina tcsh je še vedno okrog in je še vedno možnost. FreeBSD uporablja tsch kot privzeto korensko lupino in ash kot privzeto interaktivno lupino. Če redno uporabljate programiranje C, je tsch morda bolje za vas. Vendar pa ni tako blizu, kot se običajno uporablja kot bash ali zsh.
Kako preklopiti med lupinami
Preprosto preklopite na novo lupino, da jo preizkusite. Samo namestite ukazno lupino iz upravitelja paketov za distribucijo Linuxa in vnesite ukaz za zagon ukazne lupine.
Na primer, recimo, da želite poskusiti zsh na Ubuntu. Če želite namestiti in zaženiti te ukaze, naredite naslednje:
sudo apt install zsh zsh
Nato bi sedel na zsh lupini. Vnesite » izhod
Na lupini, da jo zapustite in se vrnete v trenutno lupino.
To je samo začasno. Kadarkoli odprete novo okno terminala ali se prijavite v sistem v ukazni vrstici, boste videli privzeto lupino. Če želite spremeniti lupino, ki jo vidite, ko se prijavite znano kot prijavna lupina, lahko na splošno uporabite chsh
, ali »Spremeni lupino«, ukaz.
Če želite uporabiti ta ukaz, morate najprej najti celotno pot do ukazne lupine s tem ukazom. Na primer, recimo, da smo želeli spremeniti lupino zsh. Izvedli bomo naslednji ukaz:
ki zsh
Na Ubuntuju to pove, da je binarna datoteka zsh shranjena v / usr / bin / zsh.
Zaženite naslednji ukaz, vnesite svoje geslo in boste morali izbrati novo prijavno lupino:
chsh
V skladu z zgornjim ukazom smo vstopili / usr / bin / zsh
. Lupina zsh bi bila potem privzeta, dokler ne bi zagnali chsh
in ga spremenili nazaj.