Oh-My-Zsh! A CLI varázslatos munkája – Oktatókönyv Ubuntu-hoz

Michiel Mulders
Michiel Mulders

Follow

aug 29, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

Nagy rajongója vagyok a parancssori felület… Utálom használni a számítógépes egeret! Ez motivált arra, hogy nagyszerű eszközöket keressek a CLI felhasználói élményének javítására. Az Oh-My-Zsh-ra a szakmai gyakorlatom során bukkantam rá. Néhány barátom meggyőzött, hogy használjam ezt a shell-t az egyszerűsége és beállíthatósága miatt. Bónuszként a CLI számos bővítménnyel bővíthető.

Ez egy lista a képességeiről:

  • Parancsérvényesítés
  • Elírásjavítás
  • A parancstörténet megosztása az összes futó héj között
  • Az átjárható promptok (Agnoster, RobbyRussell, …)
  • Könyvtár előzmények
  • Elindítási/leállítási szkriptek a zshenv, zprofile, zshrc, zlogin, és zlogout
  • Elég erős automatikus kitöltési képességek. A TAB billentyűvel navigálhat a különböző lehetőségek között, az enter billentyűvel pedig kiválaszthatja a megfelelő mappát. A Bash például kiírná az összes lehetőséget. Ez eléggé spammel és szennyezi a scrollbacket.

  • Add pluginok: pl. Git plugin a hasznos Git aliasok hatalmas listájával.
    Ez a plugin mutatja az aktív ágat és vizuális visszajelzést ad a Git állapotáról:
    – Zöld: ág, ha nem történt változás
    – Sárga kör ikonnal: nem követett fájlok
    – Sárga plusz ikonnal: átadásra kész fájlok

Az Ubuntu 16.04 virtuális gépemen végzem ezt a telepítési útmutatót. Hogy megmutassam az Oh-My-Zsh mögöttes erejét, telepítem a Git bővítményt (Git-core). Ez a plugin vizuális visszajelzést ad egy projekt Git állapotáról.

  1. Telepítse az előfeltételes csomagokat
    $ sudo apt install git-core zsh
  2. Telepítse az Oh-My-Zsh-t Robby Russell repositoryjából
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  3. Telepítse a Powerline betűtípust, hogy ikonokkal fűszerezze a CLI-t
    $ sudo apt install fonts-powerline
  4. Változtassa meg a témát ‘robbyrussell’-ről ‘agnoster’-re a legendás Oh-My-Zsh témához
    $ nano ~/.zshrc
  5. Keresd meg a ZSH_THEME változót és változtasd meg:ZSH_THEME="agnoster"
  6. Nem tetszik, hogy a téma a felhasználónevemet és a hosztomat mutatja. Hogy ettől megszabaduljunk, változtassuk meg a könyvtárat
    $ cd ~/.oh-my-zsh/themes
  7. Majd nyissuk meg az ‘agnoster’ témafájlt a szerkesztőben
    $ nano agnoster.zsh-theme
  8. Most már meg tudjuk változtatni a ‘Main prompt’-ot. Nincs szükségünk a prompt_context funkcióra build_prompt(). Csak kommentáljuk ki ezt a sort, vagy távolítsuk el. Végül változtassuk meg a PROMPT változót $(build_prompt)-re.

Agnoster téma konfigurációja

Hogy ténylegesen láthassuk a témát, a .zshrc fájlt így kell forrásolni: source ~/.zshrc. Ha minden jól sikerült, akkor valami olyasmit kell látnod, mint a borítókép!

Extra: Állítsuk be a zsh-t alapértelmezett shellként. Futtassuk ezt az alapértelmezett shellünkben, a legtöbb esetben ez a bash lesz. Ha ezt a parancsot a zsh-ben hajtod végre, akkor semmit sem fog változtatni:
$ chsh -s $(which zsh)

Megjegyzés: Ha a sudo parancsot használod, akkor a root számára megváltoztatja a shell-t, de a munkafelhasználó számára nem. Emellett mindenképpen jelentkezz ki és jelentkezz be újra, hogy lásd a változásokat.

Pillérek telepítése

A Github oldalon található összes plugint előre telepíti az Oh-My-Zsh ~/.oh-my-zsh/plugins. Az egyéni bővítményeket a ~/.oh-my-zsh/custom/plugins címen lehet telepíteni. Egy plugin használatához egyszerűen hozzáadhatod a ~/.zshrc fájlodban lévő plugins listához. Bölcsen add hozzá, mivel a túl sok plugin lassítja a shell indítását. Minden egyes plugin között hagyjon egy üres helyet.

Colored-man-pages

Ebben a példában egy hasznos plugint telepítettem, amely színes kiemelést ad a man pages . Ahhoz, hogy használni tudd a plugint, forrásként használd a .zshrcfájlodat:
$ source ~/.zshrc

Colored Man Page of ls command

Zsh-syntax-highlighting

Egy másik remek plugin a syntax highlighting for your shell. Ezen kívül ez a plugin képes ellenőrizni a parancsod helyességét.

Ez a plugin nincs telepítve az Oh-My-Zsh-vel. Navigálj a ~/.oh-my-zsh/custom/plugins mappába és klónozd a kódot a Githubról ebbe a mappába:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

Meg fogsz látni egy zsh-syntax-highlighting nevű mappát. Ezt a nevet kell hozzáadni a bővítmények listájához.

Zsh-autosuggestions

A parancskiegészítéshez használhatja a zsh-autosuggestions-t is. Ez parancsokat javasol a parancselőzmények alapján. Nagyon hasznos! A javasolt parancs kiválasztásához nyomd meg a jobbra nyilat.

A telepítés ugyanaz, mint a zsh-syntax-highlighting esetében :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
És add hozzá a zsh-autosuggestions a plugin listához.

Gondoskodik az Alias-rajongókról

Az Oh-My-Zsh automatikusan megjegyzi az utoljára meglátogatott 20 könyvtárat. Az előzményeket időrendi sorrendben a dirs -v vagy csak d segítségével listázhatja.

Normális esetben a cd +1 segítségével léphet az előző könyvtárba és így tovább. Az Oh-My-Zsh ezt még egyszerűbbé tette, most már csak a meglátogatni kívánt könyvtártörténeti bejegyzés számát használhatjuk… 1.

Más érdekes aliasok

  • alias : Az összes alias listája. A kimenetet a grep pipába továbbíthatja, ha egy adott aliasra szeretne rákeresni.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Azt hiszem, érti, igaz?
  • take test_folder : Létrehoz egy test_folder nevű mappát és változtat rajta
  • x : Kivonja az archívum típusokat tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Egyszerű parancs a telepítés frissítéséhez

Ismert problémák & Megoldások

Elképzelhető, hogy az előzményfájl megsérül. Ne kérdezd a konkrétumokat. Minden egyes alkalommal, amikor új terminált indítunk, ezt az üzenetet kapjuk:

zsh: corrupt history file /home/myusername/.zsh_history

javítsuk ki a következő parancsokkal. Győződjünk meg róla, hogy a homefolder gyökerében vagyunk. Az fc parancs kilistázza, szerkeszti vagy újra végrehajtja a korábban egy shellbe bevitt parancsokat. A history parancs lehetővé teszi a korábbi parancssorok szavainak használatát a beírt parancssorban.

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history

Következtetés

Az Oh-My-Zsh egyszerűen fantasztikus!

Hasznos linkek és források

Ez a cikk a TheLedger segítségével készült.

  • Az Oh-My-Zsh: http://ohmyz.sh/
  • Plugins: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
  • Témák: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
  • Git plugin az összes aliasszal: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • A shell prompt testreszabása: http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki a Zsh-ről: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh syntax highlighting plugin: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosuggestions plugin: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosuggestions plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki a Zsh testreszabásáról: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.