22Jul

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

click fraud protection

A legtöbb Linux disztribúció alapértelmezés szerint tartalmazza a bash parancsértelmezőt, de átállhat egy másik shell környezetre is. 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, amelyet a Bell Labs fejlesztett ki és 1971-ben jelent meg. A Shell környezetek azóta építik a koncepciót, és számos új funkciót, funkcionalitást és gyorsaságnövelést adnak hozzá.

A Bash például parancs és fájlnév kiegészítést, fejlett parancsfájlokat, parancs-előzményeket, konfigurálható színeket, parancs-álneveket és számos más olyan szolgáltatást tartalmaz, amelyek 1971-ben nem voltak elérhetők az első shell kiadásakor.

instagram viewer

A shell-et a háttérben különböző rendszerszolgáltatások 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. Az

Shells vezetője a Bash-hez: sh, csh, tsh, és ksh

A modern kagylók legjelentősebb előfutára a Bourne héj, amelyet "sh" -ként is neveznek - nevezetesen Stephen Bourne, az AT & T BellLabs.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 alakult ki Bill Joy a Kaliforniai Egyetem, Berkley. 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 zárta. 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 bash

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. Az

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 rendszerre történő telepítéséhez.

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

Míg a Linux közösség a Bash-ban telepedett le azóta, a fejlesztők nem álltak megúj héjakat hoztak létre, amikor Bash-et először 28 évvel ezelőtt adták ki.

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 hamutartalom alapján, é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 teljeskörű interaktív környezetet használnak.

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. 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.

Melyik válasszon?(és miért Zsh népszerű)

Nem kell választania a shell-ot. 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 hamutartó.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 shell, 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 alias vagy bármi mást 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-t, 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. Az

"Oh My ZSH" egy olyan eszköz, amely segít könnyebben engedélyezni a zsh plug-ineket és átkapcsolni 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á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. Például, mondjuk azt szeretnénk, hogy próbálj ki zsh-et az Ubuntuban. A következő parancsokat futtathatja a telepítéshez, majd indítsa el:

sudo apt telepítése zsh zsh

A zsh-héjban ülne.Írja be a "kilépés" parancsot a héjba, hogy hagyja el, és térjen vissza az aktuális shelljéhez.

Ez csak ideiglenes. Amikor megnyit egy új terminál ablakot, vagy bejelentkezik a rendszerbe a parancssorban, megjelenik az alapértelmezett parancsértelmező.A héj megváltoztatásához, amikor bejelentkezik bejelentkezéskor, akkor általában a chsh vagy a "Shell módosítása" parancsot használhatja.

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:

, amely zsh

Az Ubuntuban ez azt jelzi, hogy a zsh bináris az /usr/bin/ zsh-n tárolt.

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

chsh

A fenti parancs szerint megadjuk az /usr/bin/ zsh parancsot. A zsh shell akkor az alapértelmezésünk, amíg a chsh parancsot el nem futtattuk, és megváltoztattuk.