Homepage » hogyan kell » Mi a különbség a Bash, a Zsh és a többi Linux kagyló között?

    Mi a különbség a Bash, a Zsh és a többi Linux kagyló között?

    A legtöbb Linux disztribúció alapértelmezés szerint tartalmazza a bash shell-et, de másik héjkörnyezetre is átválthat. A Zsh különösen népszerű alternatíva, és vannak más kagylók, mint például hamu, kötőjel, hal és tcsh. 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álablakot a Linuxon, a rendszer elindítja a shell programot. A kagylók szabványos módot biztosítanak a parancssorkörnyezet kiterjesztésére. Ha úgy tetszik, kicserélheti az alapértelmezett héját egy másikra.

    Az első héjkörnyezet a Bell Labs-ben kifejlesztett és 1971-ben kiadott Thompson Shell volt. A Shell környezetei már azóta épülnek, és számos új funkciót, funkcionalitást és sebességjavítást alkalmaznak.

    Például a Bash parancs és fájlnév befejezését, a fejlett parancsfájl-funkciókat, a parancstörténetet, a konfigurálható színeket, a parancs álneveit és számos más olyan funkciót kínál, amely 1971-ben nem érhető el, amikor az első héj megjelent.

    A héjat a háttérben különböző rendszerszolgáltatások is használják. A Linux disztribúciók számos funkciót írtak le shell parancsfájlként. Ezek a parancsfájlok parancsok és más fejlett shell script funkciók futnak át a shell környezetben.

    A Bash felé vezető kagylók: sh, csh, tsh és ksh

    A modern kagyló legjelentősebb elődje a Bourne-héj, melyet „sh” néven is ismertek. Stephen Bourne, aki az AT & T Bell Labs-ben dolgozik. 1979-ben kiadták, ez lett az Unix alapértelmezett parancsértelmezője, mivel támogatja a parancsok helyettesítését, csövezését, változóit, állapotfelmérését és hurokozását, valamint más funkciókat. Nem ajánlott sokat testreszabást a felhasználóknak, és nem támogatta az ilyen modern nicetie-ket mint álneveket, parancs befejezését és a shell funkciókat (bár ez utóbbi végül hozzáadva).

    A C-héjat vagy a „csh” -et 1970-es évek végén fejlesztette ki Bill Joy, a Kaliforniai Egyetemen, Berkley-ben. Számos interaktív elemet adott hozzá, amelyekkel a felhasználók irányíthatják a rendszerüket, mint például az álnevek (hosszú parancsok parancsikonjai), a munkakezelési képességek, a parancstörténet és még sok más. A C programozási nyelvből modellezték, amelyet maga a Unix operációs rendszer írt be. Ez azt is jelentette, hogy a Bourne-héj felhasználóinak C-t kellett tanulniuk, hogy beléphessenek a parancsokba. Ezen túlmenően a csh-nek nagyon sok hibája volt, amelyeket a felhasználóknak és az alkotóknak nagy idő alatt ki kellett küzdeniük. Az emberek végül a Bourne-hez használták a parancsfájlokat, mert jobban kezelték a nem interaktív parancsokat, de normál használat esetén a C-héjjal ragadt..

    Idővel sok ember rögzítette a hibákat, és hozzáadott funkciókat adott a C-héjhoz, és a csh továbbfejlesztett változata, a „tcsh” néven ismert. De a csh még mindig az alapértelmezett volt a Unix-alapú számítógépeken, és hozzáadott néhány nem szabványos funkciót. David Korn a Bell Labs-től dolgozott a KornShell-nél vagy a „ksh” -en, amely megpróbálta javítani a helyzetet, ha visszafelé kompatibilis volt a Bourne héj nyelvével, de számos funkciót adott hozzá a csh héjból. 1983-ban adták ki, de tulajdonjog alapján. A 2000-es évekig nem volt szabad szoftver, amikor különböző nyílt forráskódú licencek alapján adták ki.

    A bash születése

    A hordozható operációs rendszer interfész Unix számára, vagy a POSIX egy másik válasz volt a hektikus szabadalmaztatott csh implementációkra. Sikeresen létrehozott egy szabványt a parancsértelmezéshez (többek között), és végül a KornShell számos funkcióját tükrözte. Ugyanakkor a GNU Project megpróbálta létrehozni egy ingyenes, Unix-kompatibilis operációs rendszert. A GNU Project egy szabad szoftvercsomagot fejlesztett ki az ingyenes operációs rendszer részeként, és „Bourne Again Shell” -nek, vagy „bash” -nek nevezte..

    A Bash-et az első kiadás óta 1989-ben javították, de ma is a legtöbb Linux disztribúció alapértelmezett héja. Az Apple MacOS alapértelmezett héja, és a Microsoft Windows 10 rendszerre telepíthető.

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

    Míg a Linux közösség az elmúlt években telepedett le a Bash-en, a fejlesztők nem hagyották abba az új héjak létrehozását, amikor Bash először megjelent 28 évvel ezelőtt.

    Kenneth Almquist létrehozott egy Bourne héjklónot, amelyet Almquish héjnak, A Shell-nek, „hamu” -nak vagy néha csak „sh-nek” neveznek. ez is POSIX-kompatibilis volt, és az alapértelmezett héj lett a BSD-ben, egy másik Unix ágban. A hamu héja könnyebb, mint a bash, ami a beágyazott Linux rendszerekben népszerűvé teszi. Ha van gyökerező Android-telefonja a BusyBox telepítésével, vagy bármilyen más eszközzel a BusyBox szoftvercsomaggal, akkor a kódból származó kódot használunk.

    A Debian kifejlesztett egy héj alapú héjkörnyezetet, amelyet „kötőjelnek” nevezett. Úgy tervezték, hogy POSIX-kompatibilis és könnyű legyen, így gyorsabb, mint a Bash, de nem rendelkezik minden funkciójával. Az Ubuntu a nem interaktív feladatokhoz alapértelmezett héjként használja a műszerfalat, gyorsítja fel a shell parancsfájlokat és más, a háttérben futó feladatokat. Az Ubuntu továbbra is bash-t használ interaktív kagylókhoz, így a felhasználóknak még mindig van a teljes funkcionalitású interaktív környezetük.

    Az egyik legnépszerűbb újabb kagyló a Z héj vagy a „zsh”. A Paul Falstad által 1990-ben létrehozott zsh Bourne-stílusú héj, amely tartalmazza a bash-ban megtalálható funkciókat és még többet. Például a zsh helyesírás-ellenőrzést, a bejelentkezések / kijelentkezések figyelésének képességét, néhány beépített programozási funkciót, például a bytecode-t, a tudományos jelölés támogatását a szintaxisban, lehetővé teszi a lebegőpontos számtani és további funkciók használatát.

    Egy másik újabb héj a Friendly Interactive Shell, vagy a „fish”, amelyet 2005-ben adtak ki. Egy egyedi parancssori szintaxisa van, amelyet egy kicsit könnyebb megtanulni terveztek, de nem a Bourne héjból vagy a C shellből származnak. Érdekes ötlet, de amit a halak használatával tanulsz, nem feltétlenül segít a bash és más Bourne-ből származó kagylók használatában.

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

    Nem kell választania egy héjat. Az operációs rendszer választja ki az alapértelmezett héját, és ez a választás szinte mindig bash. Ülj le egy Linux disztribúcióhoz vagy akár egy Mac-hez, és majdnem mindig lesz egy bash shell környezeted. A Bash-nek nagyon sok fejlett funkciója van, de valószínűleg nem fogja használni őket, hacsak nem programozza a parancsfájlokat.

    A beágyazott Linux rendszereken vagy BSD rendszereken a hamu héjjal fog végezni. De a hamut Bourne-alapú héj és nagyrészt kompatibilis a bash-szal. A bash használatával kapcsolatos tudás hamut vagy kötőhéjat használ, bár néhány speciális scripting funkció nem érhető el ebben a könnyű héjban.

    Szinte minden héj, amellyel találkozik, a Bourne-alapú, és hasonlóan működik, beleértve a zsh-t is.

    Ezért népszerű a zsh. Ez az újabb héj kompatibilis a bash-szal, de több funkcióval is rendelkezik. A zsh shell beépített helyesírási korrekciót, javított parancssori befejezést, betölthető modulokat tartalmaz, amelyek plug-inekként működnek a shell számára, globális álnevek, amelyek lehetővé teszik a fájlnevek másolását, vagy bármi másat a parancssorban a helyes parancsok helyett, és több téma támogatás. Olyan, mint a bash, de sok extrával, további funkcióval és konfigurálható lehetőségekkel értékelheti, ha sok időt tölt a parancssorban.

    Ha ismeri a bash-t, akkor válthat a zsh-re anélkül, hogy egy másik szintaxist megtanulna. ha ismeri a zsh-t, akkor a bash-ra válthatsz anélkül, hogy egy másik szintaxist megtanulnánk - 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 héjait anélkül, hogy órákat csábítana.

    Vannak más kagylók is. Például a tcsh héj még mindig körül van, és még mindig opció. A FreeBSD alapértelmezett gyökérhéjként tsch-t használ, és alapértelmezett interaktív héjként hamut. Ha rendszeresen használja a C programozást, a cch jobban illeszkedik az Ön számára. Azonban sehol sem közel áll, mint a bash vagy zsh.

    Hogyan kell váltani a kagyló között

    Könnyen átkapcsolhat egy új héjra, hogy kipróbálhassa. Csak telepítse a héjat 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 meg akarod próbálni a zsh-t az Ubuntu-on. A következő parancsokat telepítené és elindítaná:

    sudo apt install zsh zsh

    Akkor egy zsh héjnál ültél. Típus " kijárat A héjban, hogy elhagyja és visszatérjen a jelenlegi héjához.

    Ez csak ideiglenes. Amikor megnyit egy új terminálablakot, vagy bejelentkezik a rendszerbe a parancssorban, megjelenik az alapértelmezett shell. Ha meg szeretné változtatni azt a héjat, amelyet lát, amikor bejelentkezik a bejelentkezési shell-ként, akkor általában a chsh , vagy a „Shell módosítása” parancs.

    Ennek a parancsnak a használatához először meg kell találnia a teljes héjút a megfelelő paranccsal. Tegyük fel például, hogy a zsh héjra akarunk váltani. A következő parancsot futtatjuk:

    amely zsh

    Az Ubuntu-nál ez azt jelenti, hogy a zsh bináris a / usr / bin / zsh fájlban tárolódik.

    Futtassa a következő parancsot, adja meg a jelszót, és a rendszer kéri, hogy válasszon egy új bejelentkezési shell-t:

    chsh

    A fenti parancs szerint belépünk / Usr / bin / zsh . A zsh héj ezután az alapértelmezett, amíg el nem futtattuk chsh parancsot, és visszaállította.