Mi a különbség a Bash, a Zsh és az egyéb Linux Shells között?

Tartalomjegyzék:

Mi a különbség a Bash, a Zsh és az egyéb Linux Shells között?
Mi a különbség a Bash, a Zsh és az egyéb Linux Shells között?

Videó: Mi a különbség a Bash, a Zsh és az egyéb Linux Shells között?

Videó: Mi a különbség a Bash, a Zsh és az egyéb Linux Shells között?
Videó: SAMSUNG Watch 5 pro - Egészséget nem tudsz venni, de egészségfigyelő órát igen #samsungwatch5, - YouTube 2024, Április
Anonim
A legtöbb Linux disztribúció alapértelmezés szerint tartalmazza a bash-parancsértelmezőt, de egy másik shell környezetre is átállhat. A Zsh egy különösen népszerű alternatíva, és vannak más héjak is, mint a hamu, a csepp, a hal és a tsh. De mi a különbség, és miért van ilyen sok?
A legtöbb Linux disztribúció alapértelmezés szerint tartalmazza a bash-parancsértelmezőt, de egy másik shell környezetre is átállhat. A Zsh egy különösen népszerű alternatíva, és vannak más héjak is, mint a hamu, a csepp, a hal és a tsh. De mi a különbség, és miért van ilyen sok?

Mit csinálnak a kagylók?

Amikor bejelentkezik a parancssorba, vagy elindít egy terminál ablakot Linuxon, a rendszer elindítja a shell programot. A Shells a parancssori környezet kiterjesztésének szabványos módját kínálja. Ha szeretne, cserélheti ki az alapértelmezett héjot egy másikra.

Az első héjkörnyezet a Thompson Shell volt, amelyet a Bell Labs fejlesztett ki és 1971-ben jelent meg. A Shell környezetek azóta építik a koncepciót, számos új funkciót, funkcionalitást és gyorsaságot javítva.

Például a Bash a parancs- és a fájlnév befejezését, a speciális szkriptfunkciókat, parancs-előzményeket, konfigurálható színeket, parancs-álneveket és számos olyan funkciót kínál, amelyek 1971-ben nem voltak elérhetők az első héj kiadásakor.

A héjot a háttérben különböző rendszerszolgáltatások is használják. A Linux disztribúciók számos funkciót tartalmaznak, mint shell parancsfájlokat. Ezek a parancsfájlok olyan parancsok és más fejlett parancsértelmezők, amelyek a shell környezetben futnak.

Bash-hez vezető shieldok: sh, csh, tsh és ksh

A modern héjak legjelentősebb előfutára a Bourne héj - az úgynevezett "sh" - nevét, amely Stephen Bourne alkotója, aki az AT & T Bell Labs-nél dolgozott. 1979-ben jelent meg, a Unix-ban alapértelmezett parancsértelmezővé vált, mivel támogatja a parancshelyettesítést, csővezetékeket, változókat, állapotfelmérést és hurkot, valamint más funkciókat. Nem sok testreszabást ajánlott fel a felhasználók számára, és nem támogatta az olyan modern finomításokat, mint az álnevek, a parancsok befejezése és a shell funkciók (bár ez utóbbi végül hozzáadódott).

A C shell, vagy a "csh", a 70-es évek végén dolgozták ki Bill Joy a Berkley-i Egyetemen. Számos olyan interaktív elemet adott hozzá, amellyel a felhasználók szabályozhatják rendszerüket, például aliasokat (hosszú parancsok gyorsbillentyűi), munkakezelési képességeket, parancstörténetet stb. A modellt a C programozási nyelvből vették fel, amelyet maga a Unix operációs rendszer írtak be. Ez azt is jelentette, hogy a Bourne-héj felhasználóinak meg kellett tanulniuk a C-t, hogy be tudjanak vezetni parancsokat. Ráadásul a csh-nek elég sok hibája volt, amelyet a felhasználók és az alkotók egyaránt nagyszerű időközönként kovácsoltak. Az emberek a Bourne héj használatával végezték el a szkripteket, mert jobban kezelte a nem interaktív parancsokat, de a C-héjhoz ragaszkodott a szokásos használathoz.

Az idő múlásával sok ember javított hibákat és hozzáadott funkciókat a C shell-hoz, ami egy csh "tcsh" néven ismert jobb verzióját eredményezte. De a csh még mindig az alapértelmezett volt a Unix-alapú számítógépeken, és néhány nem szabványos funkciót is tartalmazott. A Bell Labs David Korn a KornShell-en vagy a "ksh" -on dolgozott, amely a Bourne héj nyelvével ellentétes módon próbálta javítani a helyzetet, de számos funkciót hozott a csh shell-ből. 1983-ban szabadon engedték, de szabadalmi engedéllyel. Nem volt szabad szoftver a 2000-es évekig, amikor különféle nyílt forráskódú licencek alatt szabadult fel.
Az idő múlásával sok ember javított hibákat és hozzáadott funkciókat a C shell-hoz, ami egy csh "tcsh" néven ismert jobb verzióját eredményezte. De a csh még mindig az alapértelmezett volt a Unix-alapú számítógépeken, és néhány nem szabványos funkciót is tartalmazott. A Bell Labs David Korn a KornShell-en vagy a "ksh" -on dolgozott, amely a Bourne héj nyelvével ellentétes módon próbálta javítani a helyzetet, de számos funkciót hozott a csh shell-ből. 1983-ban szabadon engedték, de szabadalmi engedéllyel. Nem volt szabad szoftver a 2000-es évekig, amikor különféle nyílt forráskódú licencek alatt szabadult fel.

A bash születése

A Unix vagy a POSIX hordozható operációs rendszer interfész egy másik válasz a hektikus, sajátos csh implementációkra. Sikeresen létrehozott egy szabványt a parancs értelmezésére (többek között) és végül tükrözte a KornShell számos funkcióját. Ugyanakkor a GNU Project megpróbált egy szabad, Unix-kompatibilis operációs rendszert létrehozni. A GNU Project szabad szoftveres héjat fejlesztett ki, amely a szabad operációs rendszer részét képezte, és "Bourne Again Shell" -nek vagy bashnek nevezte.
A Unix vagy a POSIX hordozható operációs rendszer interfész egy másik válasz a hektikus, sajátos csh implementációkra. Sikeresen létrehozott egy szabványt a parancs értelmezésére (többek között) és végül tükrözte a KornShell számos funkcióját. Ugyanakkor a GNU Project megpróbált egy szabad, Unix-kompatibilis operációs rendszert létrehozni. A GNU Project szabad szoftveres héjat fejlesztett ki, amely a szabad operációs rendszer részét képezte, és "Bourne Again Shell" -nek vagy bashnek nevezte.

A Bash az 1989-es első kiadása óta eltelt évtizedekben javult, de ez még mindig az alapértelmezett shell a legtöbb Linux disztribúcióban. Ez az alapértelmezett héj az Apple MacOS-ban, és elérhető a Microsoft Windows 10 operációs rendszeren történő telepítéshez.

Újabb kagylók: hamu, kötőjel, zsh és hal

Míg a Linux közösség az évek során telepedett le a Bash-ral, a fejlesztők nem hagytak abba az új kagylók létrehozását, amikor a Bash 28 évvel ezelőtt jelent meg.

Kenneth Almquist létrehozott egy Bourne-héj-klónt, amely Almquish shell, A Shell, "hamu" néven ismert, vagy néha csak "sh". ez is POSIX kompatibilis volt, és az alapértelmezett héjává vált a BSD-ben, a Unix egy másik ágában. A hamutartó héj könnyebb, mint a bash, ami népszerűvé teszi a beágyazott Linux rendszerekben. Ha van gyökerező Android telefonja a BusyBox telepítve - vagy más eszköz a BusyBox szoftvercsomaggal - kódot használ a hamutól.

A Debian héj-környezetet fejlesztett ki a hamut, és "kötőjelnek" nevezte. Úgy tervezték, hogy POSIX-kompatibilis és könnyű, így gyorsabb, mint a Bash, de nem lesz minden tulajdonsága. Az Ubuntu alapértelmezett héjként használja a kötőjelhüveget nem interaktív feladatokhoz, felgyorsítja a parancsfájlokat és a háttérben futó egyéb feladatokat.Az Ubuntu még mindig az interaktív héjokhoz használja a bash parancsot, így a felhasználók még mindig rendelkeznek a teljes funkcionalitású interaktív környezetgel.
A Debian héj-környezetet fejlesztett ki a hamut, és "kötőjelnek" nevezte. Úgy tervezték, hogy POSIX-kompatibilis és könnyű, így gyorsabb, mint a Bash, de nem lesz minden tulajdonsága. Az Ubuntu alapértelmezett héjként használja a kötőjelhüveget nem interaktív feladatokhoz, felgyorsítja a parancsfájlokat és a háttérben futó egyéb feladatokat.Az Ubuntu még mindig az interaktív héjokhoz használja a bash parancsot, így a felhasználók még mindig rendelkeznek a teljes funkcionalitású interaktív környezetgel.
Az egyik legnépszerűbb újabb kagyló a Z shell vagy a "zsh". A Paul Falstad által 1990-ben létrehozott zsh egy Bourne-stílusú shell, amely a bash-ben található funkciókat tartalmazza, és még többet. Például, a zsh a helyesírás-ellenőrzést, a bejelentkezéshez való hozzáférés figyelését, néhány beépített programozási funkciót, például a bytecode-ot, a tudományos jelölés szintaktikai támogatását, lebegőpontos aritmetikai és több funkciót tesz lehetővé.
Az egyik legnépszerűbb újabb kagyló a Z shell vagy a "zsh". A Paul Falstad által 1990-ben létrehozott zsh egy Bourne-stílusú shell, amely a bash-ben található funkciókat tartalmazza, és még többet. Például, a zsh a helyesírás-ellenőrzést, a bejelentkezéshez való hozzáférés figyelését, néhány beépített programozási funkciót, például a bytecode-ot, a tudományos jelölés szintaktikai támogatását, lebegőpontos aritmetikai és több funkciót tesz lehetővé.
Egy másik újabb shell a 2005-ben kiadott Friendly Interactive Shell vagy a "fish". Ez egy egyedi parancssori szintaxis, amelyet úgy terveztek, hogy egy kicsit könnyebb megtanulni, de nem származik Bourne shell vagy C shell-ból. Ez egy érdekes ötlet, de a halak által megtanult halak nem feltétlenül segítenek a bash és más Bourne-eredetű kagylók használatában.
Egy másik újabb shell a 2005-ben kiadott Friendly Interactive Shell vagy a "fish". Ez egy egyedi parancssori szintaxis, amelyet úgy terveztek, hogy egy kicsit könnyebb megtanulni, de nem származik Bourne shell vagy C shell-ból. Ez egy érdekes ötlet, de a halak által megtanult halak nem feltétlenül segítenek a bash és más Bourne-eredetű kagylók használatában.

Melyiket választja? (és miért népszerű a Zsh)

Nem kell választania egy shellet. Az operációs rendszer választja az Ön alapértelmezett héját, és ez a választás szinte mindig bash. Ülj le egy Linux disztribúció előtt, vagy akár egy Mac-et, és majdnem mindig van egy bash shell környezeted. A Bash számos fejlett funkcióval rendelkezik, de valószínűleg nem fogja használni őket, hacsak nem parancsfájlokat programozunk.

Beágyazott Linux rendszereken vagy BSD rendszereken a végén a hamu kagyló lesz. De a hamu Bourne-alapú héj, és nagyjából kompatibilis a bash-szal. A bash használatával kapcsolatos ismeretek hamis vagy dash-héj használatával továbbíthatók, bár néhány speciális szkript funkció nem érhető el ebben a könnyű héjban.

Majdnem minden héj, amelyen találkozol, Bourne-alapú és hasonlóan működik - beleértve a zsh-et is.

Ezért a zsh népszerű. Ez az újabb héj kompatibilis a bash programmal, de több funkciót is tartalmaz. A zsh héj beépített helyesírási korrekcióval, jobb parancssori befejezéssel, betölthető modulokkal működik, amelyek a shell beépülő moduljaként működnek, olyan globális álnevek, amelyek lehetővé teszik a fájlnevek álnevét vagy bármit a parancssorban, csak parancsok helyett. több tematikus támogatás. Ez olyan, mint a bash, de sok extrával, további funkciókkal és konfigurálható lehetőségekkel értékelheti, ha sok időt töltesz a parancssorban.

Ha ismeri a bash-et, akkor átválthat zsh-ra anélkül, hogy más szintaxist tanulna - csak további funkciókat szerezhet. Ha ismeri a zsh-et, akkor a bash-re változtathat anélkül, hogy más szintaxist tanulna - csak nem fér hozzá ezekhez a funkciókhoz.

"Oh My ZSH" egy olyan eszköz, amely segít könnyebben engedélyezni a zsh plug-ineket, és váltani a premade témák között, gyorsan testreszabhatja a zsh shellját anélkül, hogy órákat kellene csípnie.
"Oh My ZSH" egy olyan eszköz, amely segít könnyebben engedélyezni a zsh plug-ineket, és váltani a premade témák között, gyorsan testreszabhatja a zsh shellját anélkül, hogy órákat kellene csípnie.

Vannak még más héjak is. Például a tcsh shell még mindig körül van, és még mindig lehet opció. A FreeBSD alapértelmezett gyökérhéjként és hamutartalmú tsch -ként használja az alapértelmezett interaktív shell-ot. Ha rendszeresen használja a C programozást, akkor a tsch jobban illik hozzád. Azonban nem olyan közel, mint a bash vagy a zsh.

Hogyan lehet átkapcsolni a kagylók között?

Könnyű átváltani egy új héjra, hogy kipróbálhassa. Csak telepítse a shell-t a Linux disztribúció csomagkezelőjéből, és írja be a parancsot a shell elindításához.

Tegyük fel például, hogy szeretné kipróbálni a zsh-et az Ubuntuban. A következő parancsokat futtathatja a telepítéshez, majd indítsa el:

sudo apt install zsh zsh

Akkor egy zsh-héjban ülsz. Típus"

exit

A héjban hagyja, és visszatér az aktuális héjához.

Ez csak ideiglenes. Amikor megnyit egy új terminál ablakot, vagy bejelentkezik a rendszerbe a parancssorban, megjelenik az alapértelmezett shell. A héj megváltoztatásához, amikor bejelentkezik a bejelentkezési héjként történő bejelentkezéskor, általában a
Ez csak ideiglenes. Amikor megnyit egy új terminál ablakot, vagy bejelentkezik a rendszerbe a parancssorban, megjelenik az alapértelmezett shell. A héj megváltoztatásához, amikor bejelentkezik a bejelentkezési héjként történő bejelentkezéskor, általában a

chsh

vagy a "Shell módosítása" paranccsal.

Ennek a parancsnak a használatához először meg kell találnia a teljes elérési utat a parancsértelmezővel. Tegyük fel például, hogy a zsh-héjra akarunk váltani. A következő parancsot futtattuk:

which zsh

Az Ubuntuban ez azt jelzi, hogy a zsh binárist a / usr / bin / zsh fájlban tároljuk.

Futtassa a következő parancsot, írja be a jelszavát, és felszólítja Önt, hogy válasszon egy új bejelentkezési parancssort:

chsh

A fenti parancs szerint belépünk

/usr/bin/zsh

. A zsh shell akkor az alapértelmezésünk, amíg nem futunk

chsh

parancsot, és megváltoztatta.

Ajánlott: