A közelmúltban az Apple bejelentette, hogy a macOS következő verziójától, a Catalinától kezdve a bash helyett a zsh lesz az alapértelmezett shell. Mint kezdő adattudományi hallgató, aki az összes parancssoromat bash-en tanulta, kíváncsi voltam, hogyan fog ez engem érinteni. Vajon amit a bash-en tanultam, csak úgy haszontalanná vált?? Vessünk egy pillantást a kettőre, és derítsük ki.
A “Bourne-again shell” vagy röviden bash 1989-ben született Brian Fox által. Ez egy Unix shell és parancsnyelv, amelyet a Bourne shell helyettesítésére írtak. Széles körben elterjedt, mint a legtöbb Linux disztribúció és az Apple macOS alapértelmezett bejelentkezési shellje. A Bash fejlesztéseket vezetett be a Bourne shellhez képest, beleértve a szkriptnyelvként való használhatóságát. A felhasználók saját shell szkripteket írhattak a feladatok automatizálására.
A “Z shell” vagy röviden zsh, 1990-ben Paul Falstad alkotta meg. Ez is egy Unix shell és parancsnyelv, amely a Bourne shellre épül, számos fejlesztéssel, beleértve a bash néhány tulajdonságát is. A Zsh-nak megvolt a képessége arra is, hogy szkriptnyelvként is használható legyen, shell szkriptek használatának lehetőségével. Jelenleg nagyon erős közösségi követéssel és támogatással rendelkezik.
Bash vs. zsh:
A bash és a zsh nagyrészt szinte azonosak, ami megkönnyebbülés. A navigáció ugyanaz a kettő között. A bash esetében megtanult parancsok a zsh-ben is működni fognak, bár a kimeneten másképp működhetnek. A zsh sokkal testreszabhatóbbnak tűnik, mint a bash. Most átfutok néhány funkciót, és azt, hogy miben különbözik mindegyikben.
Automatikus kitöltés
Egy hasznos funkciója mindkét héjnak a tabulátor automatikus kitöltési funkciója. Mindkét héjban beírhatja a parancsot, majd a tab billentyű lenyomásával megjelenítheti a parancs után rendelkezésre álló lehetőségeket. A Zsh tab-kiegészítője funkciógazdagabb, így egy listát ad az opciókról, amelyek között aztán a nyílbillentyűkkel lehet navigálni és kiválasztani, ahelyett, hogy a nagy- és kisbetűkkel kellene küszködni, vagy hosszú, szóközökkel teli mappák listájával bajlódni. A Zsh még a Githez is rendelkezik tab-kiegészítővel!
Automatikus javítás
A zsh-ben, ha gyorsan és lazán gépelsz, ha például egy parancs írása közben elgépelsz valamit, a helyesírás-javítás be van építve, automatikusan felismeri a hibát, és megkérdezi, hogy ki akarod-e javítani.
Plug-in támogatás
A zsh-nek van egy Oh My Zsh nevű online közössége, amely az egyik legrégebbi és legnépszerűbb lehetőség a zsh kezelésére. Több mint 250 bővítményt és 140 különböző, a közösség által szállított témát kínál. Ez lehetővé teszi a felhasználók számára, hogy egy kifejezetten az ő munkafolyamatukhoz beállított környezetben dolgozzanak. Az alábbiakban a git plug-in előnézete látható.
A Bash számos programozási funkcióval rendelkezik, például ciklus- és feltételes konstrukciókkal, tilde és zárójel bővítésekkel, valamint az aliasok használatával. A Bash ráadásul egy régebbi és bevált shell, ami azt jelenti, hogy rengeteg online forrással is rendelkezik ahhoz, hogy megtaláld, amire szükséged van. A zsh számos funkciója különböző módszerekkel megismételhető a bashben.
Take Zsh for a Spin!
Kipróbálná a zsh-t a macOS catalina kiadása előtt? Ha macOS-t használsz, akkor nagy valószínűséggel már van zsh a gépeden. Ezt a következő parancs futtatásával ellenőrizheted: which zsh
Ha a zsh jelen van a rendszereden, akkor a telepítés elérési útvonalát kapod vissza. Innen a zsh-ra való váltáshoz futtassa a következő parancsot: chsh -s /bin/zsh, és a rendszer kérni fogja a jelszavát.
A zsh használatának megkezdéséhez indítsa újra a terminálját.
Ha vissza akar váltani bash-ra, futtassa a következő parancsot: which bash , amely megadja a bash telepítésének helyét. Ezután futtassa a következőt: chsh -s /bin/bash
Újraindítja a terminálját, és visszatér a megszokott területre.
Szóval melyik a jobb?
Mindenesetre bármelyik shell futtatásával elvégezheti a munkát. A macOS-en lévő bash verziójával az a jelenlegi probléma, hogy az egy elavult, 3.2-es verzió. Az aktuális verzió az 5.0. Ez a feltételezések szerint leginkább az apple licencelési problémái miatt van. A frissített shellre való váltás üdvözlendő változás lesz.
Úgy tűnik, hogy leginkább a preferenciákról van szó, amikor az egyiket választjuk a másik helyett. A zsh által nyújtott kényelmi lehetőségek közül sok a bashben is működőképessé tehető. Véleményem szerint nekem, mint újabb shell felhasználónak, a zsh hasznosabbnak tűnik. A te véleményed eltérhet.
Az Oh-My-Zsh-ról további információkat itt találsz, amely egy kiváló közösségi keretrendszer a zsh-konfiguráció kezelésére: https://github.com/robbyrussell/oh-my-zsh