zsh-ra váltás

Lecseréljük. De nem azért mert nem jó, hanem azért mert van jobb is. A legtöbb Linuxban alapértelmezett a bash héj, ami egy nagyon jó dolog, de nekem jobban tetszik a zsh. Ami természetesen szubjektív tény, és ha neked más jobban tetszik, akkor használd azt.

OK, akkor egy alapozó, pár mondatos bevezető is kellene. Mi is az a shell, azaz a rendszerhéj? Ami itt nagyon fontos: én csak nagyon leegyszerűsítem a témát, így a guruk, és a mélyebb ismeretekkel rendelkezők kíméljenek… 
Ami természetes, hogy van egy hardverünk, amiben ott az összes használható eszköz: printer, CPU, billentyűzet, videokártya és más sok olyan, amiről tudomásunk sincs, hiszen a gépház rejti. Ha kíváncsi vagy, mi van a gépedben, akkor sem kell szétszedni, az inxi parancs szépen kilistázza a főbb alkotóelemeket.
Ezeket az elemeket kezeli a kernel, azaz a rendszermag. Minden Linuxban ott van, és folyamatosan frissül. Mi, legalábbis a legtöbb disztribúcióban készen kapjuk, így nincs vele teendő. Ennek a kernelnek, a rendszermagnak van egy sorszáma jelenleg az MX Linuxomon a 4.19.0-1-amd64 x86_64-t használja. Így alapesetben nem kell, sőt kezdőknek ellenjavallt, a kernel fordítása, azaz a forrásból való építése. Erre akkor van szükség, ha az alapértelmezett kernel nem támogat valamilyen eszközt a gépedben, és azt csak így tudod majd használni ha saját rendszermagot fordítasz. Lehet, de ez inkább haladó feladat, olyanoknak, akik tudják, hogy mit is csinálnak.
Mi közvetlenül a kernellel nem tartjuk a kapcsolatot, arra van a shell, azaz a rendszerhéj. Ez jellemzően úgy jelenik meg egy felhasználónak, mint egy terminálablak, vagy maga a parancssoros része a Linuxnak. Itt adjuk meg a parancsokat, amit a shell értelmez, majd továbbadja a feladatot végrehajtásra.
Ezt a shell-t egészítik ki grafikus felülettel, hogy kényelmes legyen a használat, ami máris adja azt a felvetést, hogy érdemes a shell-t megismerni és használni, hiszen egyszerű felhasználóként ezzel állunk a legközelebb a tényleges munkát végző hardverhez. Itt nincs erőforrásokat lefoglaló grafikus felület, vagy program, ezért sok esetben gyorsabban tudjuk a feladatokat elvégezni. Az esetek egy részében. Bár szeretem a shell-t használni, jó pár cikket is írtam ilyen-olyan egyszerű, vagy bonyolultabb CLI, azaz parancssoros programokról, de nem csak ez az egy út létezik! Akinek kedvesebb a grafikus felület, az is megtalálja a számára megfelelőt!
Azaz grafikus felület – shell – kernel – hardver, valahogy így jön egymásra az a pár réteg, ami magát a rendszerünket alkotja.

Ha már fontos a shell, amivel dolgozunk, akkor érdemes olyant használni, ami neked megfelelő, és még kényelmes is. A parancssoros, a terminális, CLI megoldások ellen nagy „érv”, hogy kényelmetlenek. Ez első időben így is van, sokat kell gépelni, sok mindent tudni kell. De pár kényelmetlenségen lehet segíteni.

A bash shell az alapértelmezett shell sok Linuxban. Ezzel nincs is gond. De van olyan, ami talán kényelmesebb, és jobban kezelhető.

Miért a zsh?

  • rendelkezik automata kiegészítővel, ami az útvonal, vagy parancs első betűinek leütése után a TAB segítségével kiegészíti intelligensen. Ha több lehetséges kiegészítés van, akkor azt felsorolja és a TAB-bal lépkedve kiválaszthatjuk a kívántat (ezt próbáld majd ki, mert leírva nem egy nagy szám, de ha ha megszeretjük, akkor nehéz lesz élni nélküle)
  •  bizonyos fokig kezeli az elütéseket, ami gyorsabb munkát eredményezhet
  • témák és pluginok használata
  • szerintem gyorsabb, de ez szubjektív vélemény

Zsh telepítése

Amit leírok azt MX Linux alatt biztosan így kell csinálni, de más disztribúcióban más telepítés is elképzelhető.

sudo apt install zsh

Elvileg ez is jó, de én azt ajánlom, hogy a kedvenc MX Package Installer-ben, vagy a synaptic-ben, vagy amit használsz, keress rá a zsh-ra, és minden olyan kiegészítőt tegyél fel, ami logikusan hozzá tartozik. Így több olyan is felkerül, ami kényelmesebbé teheti a használatot.

Már csak alapértelmezetté kell tenni, hiszen jelenleg a bash az alapértelmezett shell.

chsh -s $(which zsh)

A jelszó megadása után megteszi, amit kell. Egy fontos feladatunk van: újra kell indítani a gépet, de legalábbis kilépni, és vissza. Ezután már a zsh lesz a shell.

echo $SHELL

Leellenőrizzük, hogy valóban jól dolgoztunk. Valami ilyent kell kapni:

laci:~/ $ echo $SHELL [14:31:08]
/usr/bin/zsh

zsh –version

Biztos, ami biztos kérdezzük le verziót, bár valószínű, hogy megfelelő lesz. Fontos, hogy 5.1.1 feletti legyen, mert egy kiegészítőt is felrakunk, hogy olyan legyen a környezetünk, hogy az szép is legyen. Az lesz, mert szerintem minden disztribúció gyorsan frissíti a shell csomagokat.

Amikor először megláttam, kicsit csalódtam, mert hááát… szóval elég bénán nézett ki, nem olyan, mint a képeken. A kinézetén segítsünk a legelején.
Erre több megoldás is van, én az Oh My Zsh-t használom erre, sok téma ás sok plugin tartozik ehhez a csomaghoz. Ami jó, ha tudjuk, hogy mit is akarunk.

Vagy a

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

vagy

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/in... -O -)"

telepíthetjük. Ha sem a curl, sem a wget nincs fenn, akkor előbb azt kel apt-get install-lal telepíteni.

Majd nyissuk meg a saját könyvtárunkban a .zshrc rejtett fájlt. Ha nem látod, akkor a fájlkezelődben engedélyezd a rejtett fájlokat.

ZSH_THEME="robbyrussell"
Ilyen sort keress.

Ezután már csak annyit kell eldöntened, hogy a sok-sok téma közül melyik az mai neked tetszik. A témákat itt nézheted meg. Igen, van róluk kép! Mindegyiknek van egy neve, amit ha beírsz (bemásolsz) a fenti sorba, akkor az fog megjelenni. Ha nem (és ennek nagy a valószínűsége), akkor becsukod a terminált és újra megnyitod.
A témák a ~/.oh-my-zsh/themes/ könyvtárban vannak, ha "kézzel" telepítesz, akkor érdemes ide tenni őket. Illetve itt is nézelődhetünk témák területén, avagy át is írhatjuk őket. Itt, ebben a könyvtárban található fájlnevet kell megadni a ZSH_THEME= sorban.

Előfordul, hogy lesz olyan téma, ami nem úgy néz ki, mint a képen. Ilyenkor telepítsd a Powerline fontkészletet.

sudo apt-get install fonts-powerline
Ha nincs a terjesztésedben, akkor itt  olvashatsz róluk.

Még egy fontos teendőnk van. Alap értelmezettként ez a sor le van tiltva:

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
Az export elől vegyük ki a # jelet, így engedélyezzük a PATH-ot. Ha máshol is van olyan könyvtár, melyet bele szeretnénk foglalni az elérési útba, akkor egészítsük ki. Nekem az ~/bin-ban vannak a saját futtatható állományaim, így pluszt nem kell beleírni.

Akinek van kedve, és érdekli a téma, annak érdemes az egész beállító fájlt átnézni, illetve a leírást is nézegetni. Sok hasznos, vagy kevésbé hasznos beállítása van.  Mivel nagyon jól dokumentált, és egyszerű, így csak két lehetőségre hívom fel a figyelmet. Az egyik az alias megadási lehetőség. Aki bash alatt megszokta ezt a rövidítést, annak itt is módja lesz megadni a kedvenc alias-okat. Akinek még fogalma nincs ezekről, annak érdemes várni, lesz egy bejegyzés ezekről. Hasznosak.

A zsh pluginjai

Ezek olyan kis kiegészítők, melyek nagyon megkönnyítik a munkát. Viszonylag sokféle van, a legtöbb jól dokumentált, így csak a telepítésükre térek ki. Amire figyelni kell, hogy eltérhet a disztribúcióknál az elérési út, így mindig vedd figyelembe, ha valami nem megy, akkor ez lehet az oka. Amit leírok, az MX Linuxon így működik.

A pluginok a ~/.oh-my-zsh/plugins könyvtárban lesznek, itt mindegyikhez van egy leírás is, vagy a github oldalon található sok egyéb is.

Az installálásuk egyszerű, csak a már ismert .zshrc-t kell szerkeszteni, és nem meglepő mód a plugins= sorban kell felsorolni.

Én a debian plugint használom, ami nagyon jó közelítéssel egy egyszerű alias beállítási csomag, ahol több, a rendszer karbantartással kapcsolatos műveletet rövid, pár karakteres paranccsal meg tudunk oldani. Bár én úgy neveztem, hogy „egyszerű”, de természetesen nem csak alias felsorolásokból áll. Az ilyen plugin fájlok viszonylag egyszerűek, így akinek kedve van, annak érdemes belenézni.

A másik kedvencem a sudo. Ez nem tesz mást csak a parancssorba beírt parancs elé teszi a sudo-t, vagy ha üres a sor, akkor az előző parancs elé rakja. Nem egy nagy szám, de sokszor elfelejtek rendszergazdává átlépni, vagy a sudo-t beírni.

Arra mindenképp figyelj, hogy csak olyan plugineket aktiválj, amikről tudod is, hogy mit tesznek. Illetve arra is figyelj, hogy vannak disztribúció függő pluginek is.

Az interneten sok példa, bemutató, és leírás van a zsh-ról, és a Oh My Zsh-ról. Ezeket érdemes átfutni.

Amit fontos kiemelni, hogy minden olyan parancs, script a zsh alatt is megy, amit eddig használtál. Ezen a téren nem lesz gond, jó eséllyel.

Amire figyelni kell, bár viszonylag ritka, de kellemetlen lehet. Ha van egy program, ami telepítésénél azt írják elő, hogy a .bashrc-be kell írni valamit, akkor itt értelemszerűen a .zshrc-be kell azt tenni.

Ennyi!

Ez is a blogomban jelent meg :) Arra figyelj, hogy ide nem minden tartalom kerül át!