22Jul
Večina distribucij Linuxa vključuje bash lupino po privzetku, lahko pa preklopite tudi na drugo okolje lupine. Zsh je še posebej priljubljena alternativa in obstajajo druge lupine, kot so pepel, pomišljaj, ribe in tcsh. Toda kakšna je razlika, in zakaj obstaja toliko?
Kaj delajo školjke?
Ko se prijavite v ukazno vrstico ali zaženete terminalsko okno v Linuxu, sistem zažene program lupine.Školjke ponujajo standarden način razširitve okolja ukazne vrstice. Privzeto lupino lahko zamenjate za drugo, če želite.
Prvo okolje lupine je bila Thompson Shell, razvita v Bell Labs in izdana leta 1971. Shell okolje že od takrat temelji na konceptu in dodaja številne nove funkcije, funkcionalnost in izboljšave hitrosti.
Na primer, Bash ponuja zaključek imena ukaza in datoteke, napredne funkcije skriptov, zgodovino ukazov, nastavljive barve, vzdevke ukazov in različne druge funkcije, ki leta 1971 niso bile na voljo, ko je bila izdana prva lupina.
Lupina uporablja tudi v ozadju različne sistemske storitve. Linux distribucije vključujejo veliko funkcij, napisanih kot skripti lupine. Ti skripti so ukazi in druge napredne ukazne skriptne funkcije, ki se izvajajo v okolju lupine.
lupine, ki vodijo do Bash-a: sh, csh, tsh in ksh
Najpomembnejši progenitor sodobnih školjk je lupina Bourne-znan tudi kot "sh", ki je bila poimenovana po njegovem ustvarjalcu Stephenu Bournu, ki je delal v AT & T BelluLabs. Izdan leta 1979 je v Unixu postal privzeti ukazni prevajalec zaradi svoje podpore za zamenjavo ukazov, piping, spremenljivke, testiranje pogojev in zanke ter druge funkcije. Za uporabnike ni ponudila veliko prilagoditev in ni podpirala takšnih sodobnih segmentov kot vzdevke, zaključek ukaza in funkcije lupine( čeprav je bil ta zadnji dodan).
C shell, ali "csh", je bil razvit v poznih sedemdesetih letih, Bill Joy na Univerzi v Kaliforniji, Berkley. Dodal je veliko interaktivnih elementov, s katerimi lahko uporabniki nadzorujejo svoje sisteme, kot so vzdevki( bližnjice za dolge ukaze), možnosti za upravljanje zaposlitve, zgodovina ukazov in še več.Modeliran je bil od programskega jezika C, na katerega je bil napisan sam operacijski sistem Unix. To pomeni tudi, da so uporabniki lupine Bourne morali učiti C, da bi lahko vanj vnesli ukaze. Poleg tega je imela csh kar nekaj hroščev, ki so jih morali uporabniki in ustvarjalci v veliki večini časov. Ljudje so končali z uporabo lupine Bourne za skripte, ker je bolje ravnala z neinteraktivnimi ukazi, vendar je obdržala s C lupino za normalno uporabo.
Sčasoma je veliko ljudi odpravilo napake in dodalo funkcije v lupino C, ki je dosegla vrhunsko različico csh-a, znane kot "tcsh".Toda csh je bil še vedno privzeto v računalniku, ki temelji na Unixu, in dodal nekaj nestandardnih funkcij. David Korn iz Bell Labs je delal na KornShell ali "ksh", ki je poskušal izboljšati stanje tako, da je bil nazaj združljiv z jezikom Bourneove lupine, vendar je dodal številne funkcije iz csh lupine. Izdana je bila leta 1983, vendar je bila v lasti licence. To ni bila brezplačna programska oprema do leta 2000, ko je bila izdana pod različnimi licencami odprtokodnih programov.
Rojstvo bash
Vmesnik prenosnega operacijskega sistema za Unix ali POSIX je bil še en odgovor na izvedljive csh implementacije. Uspešno je ustvaril standard za tolmačenje ukazov( med drugim) in sčasoma zrcalil veliko funkcij v KornShellu. Hkrati je projekt GNU poskušal ustvariti brezplačen, združljiv operacijski sistem Unix. Projekt GNU je razvil brezplačno programsko opremo, ki je del svojega brezplačnega operacijskega sistema in jo je poimenoval "Bourne Again Shell" ali "bash".
Bash je bil izboljšan v desetletjih od njegove prve izdaje leta 1989, vendar je še danes privzeta lupina večine distribucij Linuxa. To je tudi privzeta lupina na Apple MacOS-u in je na voljo za namestitev v operacijskem sistemu Microsoft Windows 10.
Novejša lupina: ash, dash, zsh in rib
Medtem ko se je skupnost Linux obračunala na Bash v letih, odkar se razvijalci niso ustaviliustvarjanje novih lupin, ko je bil Bash prvič sproščen pred 28 leti.
Kenneth Almquist je ustvaril klon lupine Bourne, znane kot lupina Almquish, Shell, "pepel" ali včasih le "sh".bila je tudi združljiva z POSIX in postala privzeta lupina v BSD, drugem veji Unixa. Pepelna lupina je lažja od bash, zaradi česar je priljubljena pri vgrajenih sistemih Linux.Če imate nameščen zakoreninjen Android telefon z nameščenim BusyBox-ali katero koli drugo napravo s programsko opremo BusyBox programske opreme, uporablja kodo iz pepela.
Debian je razvil lupinarsko okolje, ki temelji na pepelu, in ga imenoval "dash".Zasnovan je tako, da je POSIX kompatibilen in lahek, zato je hitrejši kot Bash, vendar ne bo imel vseh svojih lastnosti. Ubuntu uporablja lupino pomišljaja kot privzeto lupino za neinteraktivne naloge, pospešuje skripte lupine in druge naloge, ki se izvajajo v ozadju. Ubuntu še vedno uporablja bash za interaktivne lupine, zato imajo uporabniki še vedno popolnoma funkcionalno interaktivno okolje.
Ena izmed najbolj priljubljenih novejših lupin je Z lupino ali "zsh".Ustvaril ga je Paul Falstad leta 1990, zsh je bourne-style shell, ki vsebuje funkcije, ki jih boste našli v bash, plus še več.Na primer, zsh ima preverjanje črkovanja, možnost gledanja logins / logoutov, nekaj vgrajenih programskih funkcij, kot so bytecode, podpora znanstvenemu zapisu v sintaksi, omogoča aritmetiko s plavajočo vejico in več funkcij.
Še ena novejša lupina je prijazna interaktivna lupina ali "riba", ki je izdana leta 2005. Ima edinstveno sintakso ukazne vrstice, ki je zasnovana tako, da se je lažje naučiti, vendar ni izpeljana iz lupine Bourne ali C.To je zanimiva ideja, toda tisto, kar se naučite s pomočjo rib, vam ne bo nujno pomagalo uporabiti bash in druge lupine iz Bourneja.
Katero bi morali izbrati?(in zakaj je Zsh priljubljen)
Ni vam treba izbrati lupine. Vaš operacijski sistem izbere privzeto lupino za vas in ta izbira je skoraj vedno prazna. Sedite pred distribucijo Linuxa ali celo Mac-om in skoraj vedno imate okolje shell-ja. Bash ima kar nekaj naprednih funkcij, vendar jih verjetno ne boste uporabljali, če programirate skriptne lupine.
Na vgrajenih sistemih Linux ali sistemih BSD boste končali z lupino pepela. Ampak pepel je lupina na osnovi Bourne in je v veliki meri združljiva z bash. Vsako znanje, ki ga imate pri uporabi bash, se prenese na uporabo pepela ali dash lupine, čeprav nekatere napredne funkcije skriptov 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. Zsh lupina ponuja vgrajeno korekcijo črkovanja, izboljšan zaključek ukazne vrstice, naložljive module, ki delujejo kot plug-ins za vašo lupino, globalne vzdevke, ki vam omogočajo, da namesto imena datotek ali kaj drugega v ukazni vrstici namesto zgolj ukazov inveč tematske podpore. To je kot bash, vendar z veliko dodatki, dodatnimi funkcijami in nastavljivimi možnostmi, ki jih lahko cenite, če v ukazni vrstici porabite veliko časa.
Če poznate bash, lahko preklopite na zsh, ne da bi se naučili drugačne sintakse - pridobili boste dodatne funkcije.če poznate zsh, lahko preklopite na bash, ne da bi se naučili drugačne sintakse - preprosto ne boste imeli dostopa do teh funkcij.
"Oh My ZSH" je orodje, ki vam omogoča lažje vključevanje vtičnikov zsh in preklapljanje med premornimi temami, hitro prilagajanje zsh-lupine brez porabe ur, ki se tičejo stvari.
Obstajajo tudi druge lupine. Na primer, lupina tcsh še vedno obstaja in je še vedno možnost. FreeBSD uporablja tsch kot privzeto osnovno lupino in pepel kot privzeta interaktivna lupina.Če redno uporabljate programiranje C, je lahko tsch bolj primeren za vas. Vendar pa ni nikjer blizu, ki se običajno uporablja kot bash ali zsh.
Kako preklopiti med lupine
Preprosto preklopite na novo lupino, da jo preizkusite. Namestite lupino iz upravitelja paketov distribucije Linuxa in vnesite ukaz za zagon lupine.
Na primer, recimo, da želite poskusiti zsh na Ubuntu. Za namestitev in zagon bi zagnali naslednje ukaze:
sudo apt namestite zsh zshNato boste sedeli v zsh lupini. Vnesite »izhod« v lupini, da jo zapustite in se vrnete v svojo trenutno okno.
To je samo začasno. Kadarkoli odprete novo terminalsko okno ali se prijavite v sistem v ukazni vrstici, boste videli privzeto lupino.Če želite spremeniti lupino, ki jo vidite, ko se prijavite v znani obliki kot prijavna lupina, lahko na splošno uporabite ukaz chsh ali "Change Shell".
Če želite uporabiti ta ukaz, boste najprej morali najti popolno pot do vaše lupine s tem ukazom. Recimo, na primer, želimo se spremeniti v zsh lupino. Bili bomo naslednji ukaz:
, ki zshNa Ubuntu, to nam pove, da je zsh binarno shranjeno v /usr/bin/ zsh.
Zaženite naslednji ukaz, vnesite geslo in vas bo pozvala, da izberete novo prijavno lupino:
chshV skladu z zgornjim ukazom bi vnesli /usr/bin/ zsh. Lupina zsh bi bila potem privzeta, dokler ne bi zagnali ukaza chsh in jo spremenili nazaj.