Oh-My-Zsh! A Work of CLI Magic – Tutorial for Ubuntu

Michiel Mulders
Michiel Mulders

Follow

29. srpna, 2017 – 6 minut čtení

Oh-My-Zsh Agnoster Theme

Jsem velkým fanouškem rozhraní příkazového řádku… Nesnáším používání počítačové myši! To mě motivovalo k hledání skvělých nástrojů, které by zlepšily můj uživatelský zážitek z CLI. Na příkaz Oh-My-Zsh jsem narazil během své stáže. Několik přátel mě přesvědčilo, abych tento shell používal kvůli jeho jednoduchosti a nastavitelnosti. Jako bonus je CLI rozšiřitelné o mnoho doplňků.

Tady je seznam jeho možností:

  • Ověřování příkazů
  • Oprava pravopisu
  • Sdílení historie příkazů mezi všemi spuštěnými shelly
  • Proměnlivé výzvy (Agnoster, RobbyRussell, …)
  • Historie adresářů
  • Skripty pro spuštění/vypnutí pomocí zshenv, zprofile, zshrc, zlogin a zlogout
  • Silné možnosti automatického dokončování. Pomocí klávesy TAB můžete procházet různé možnosti a pomocí klávesy enter vybrat správnou složku. Bash by například vypsal všechny možnosti. To je poměrně spamové a znečišťuje to zpětné procházení.

  • Doplňky: např. doplněk Git s obrovským seznamem užitečných aliasů Git.
    Tento doplněk zobrazuje aktivní větev a poskytuje vizuální zpětnou vazbu o stavu systému Git:
    – Zelená: větev, pokud nedošlo k žádným změnám
    – Žlutá s ikonou kruhu: nesledované soubory
    – Žlutá s ikonou plus: soubory připravené k odevzdání

Tento návod k instalaci provádím na svém virtuálním počítači Ubuntu 16.04. Abych vám ukázal základní sílu systému Oh-My-Zsh, nainstaluji zásuvný modul Git (Git-core). Tento doplněk poskytuje vizuální zpětnou vazbu o stavu systému Git v projektu.

  1. Instalace nezbytných balíčků
    $ sudo apt install git-core zsh
  2. Instalace Oh-My-Zsh z repozitáře Robbyho Russella
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”.
  3. Instalace písma Powerline pro zpestření CLI ikonami
    $ sudo apt install fonts-powerline
  4. Změňte téma z ‘robbyrussell’ na ‘agnoster’ pro legendární téma Oh-My-Zsh
    $ nano ~/.zshrc
  5. Najděte proměnnou ZSH_THEME a změňte ji:ZSH_THEME="agnoster"
  6. Nelíbí se mi, že téma zobrazuje moje uživatelské jméno a hostitele. Abychom se toho zbavili, změníme adresář na
    $ cd ~/.oh-my-zsh/themes
  7. Dále otevřeme soubor tématu pro ‘agnoster’ v editoru
    $ nano agnoster.zsh-theme
  8. Nyní můžeme změnit ‘Main prompt’. Ve funkci build_prompt() nemusíme zadávat prompt_context. Stačí tento řádek zakomentovat nebo odstranit. Nakonec změňte proměnnou PROMPT na $(build_prompt).

Konfigurace tématu Agnoster

Chcete-li téma skutečně zobrazit, musíte soubor .zshrc zdrojovat takto: source ~/.zshrc. Pokud vše proběhlo v pořádku, měli byste vidět něco jako obrázek na obálce!

Extra: Nastavte zsh jako náš výchozí shell. Spusťte jej ve svém výchozím shellu, ve většině případů to bude bash. Pokud tento příkaz provedete v zsh, nic se nezmění:
$ chsh -s $(který zsh)

Poznámka: Pokud použijete sudo, změní se shell pro roota, ale ne pro vašeho pracovního uživatele. Kromě toho se ujistěte, že jste se odhlásili a znovu přihlásili, abyste viděli změny.

Instalace zásuvných modulů

Všechny zásuvné moduly uvedené na stránce zásuvných modulů Github jsou předinstalovány s Oh-My-Zsh na ~/.oh-my-zsh/plugins. Vlastní zásuvné moduly lze nainstalovat na adrese ~/.oh-my-zsh/custom/plugins. Chcete-li použít zásuvný modul, můžete jej jednoduše přidat do seznamu zásuvných modulů v souboru ~/.zshrc. Přidávejte s rozmyslem, protože příliš mnoho zásuvných modulů zpomaluje spouštění shellu. Mezi jednotlivými zásuvnými moduly ponechte prázdné místo.

Barevné-člověk-stránky

V tomto příkladu jsem nainstaloval užitečný zásuvný modul, který dodá vašemu man pages barevné zvýraznění . Abyste mohli zásuvný modul používat, vytvořte zdrojový kód svého souboru .zshrc:
$ source ~/.zshrc

Barevná stránka příkazu ls

Zsh-syntax-highlighting

Dalším skvělým doplňkem je zvýraznění syntaxe pro váš shell. Kromě toho má tento zásuvný modul možnost ověřit správnost vašeho příkazu.

Tento zásuvný modul není nainstalován spolu s Oh-My-Zsh. Přejděte do složky ~/.oh-my-zsh/custom/plugins a naklonujte kód z Githubu do této složky:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

Uvidíte složku s názvem zsh-syntax-highlighting. Tento název je třeba přidat do seznamu zásuvných modulů.

Zsh-autosuggestions

Můžete také použít zsh-autosuggestions pro dokončení příkazu. Navrhuje příkazy na základě vaší historie příkazů. Velmi užitečné! Pro výběr navrhovaného příkazu stiskněte šipku doprava.

Instalace je stejná jako u zsh-syntax-highlighting :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
A do seznamu zásuvných modulů přidejte zsh-autosuggestions.

Postará se o Alias Enthusiast

Oh-My-Zsh si automaticky pamatuje 20 naposledy navštívených adresářů. Historii můžete vypsat chronologicky pomocí dirs -v nebo jen d.

Normálně můžete použít cd +1 pro přechod na předchozí adresář atd. Oh-My-Zsh to ještě zjednodušil, nyní můžete použít jen číslo položky v historii adresářů, kterou chcete navštívit… 1.

Další zajímavé aliasy

  • alias : Seznam všech aliasů. Pro vyhledání konkrétního aliasu můžete výstup přesměrovat na grep.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Myslím, že jste to pochopili, že?
  • take test_folder : Vytvoří složku s názvem test_folder a provede v ní změny
  • x : Rozbalí archiv typů tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Jednoduché komando pro aktualizaci instalace

Známé problémy & Řešení

Může se stát, že se soubor s historií poškodí. Neptejte se mě na konkrétní podrobnosti. Při každém spuštění nového terminálu se zobrazí tato zpráva:

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

Napravíme to pomocí následujících příkazů. Ujistěte se, že jste v kořenovém adresáři domovské složky. Příkaz fc vypíše, upraví nebo znovu spustí příkazy dříve zadané do shellu. Příkaz history umožňuje použít slova z předchozích příkazových řádků v právě zadávaném příkazovém řádku.

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

Závěr

Oh-My-Zsh je prostě úžasný!

Užitečné odkazy a zdroje

Tento článek vznikl s pomocí TheLedger.

  • Oh-My-Zsh: http://ohmyz.sh/
  • Pluginy: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
  • Témata: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
  • Zásuvný modul Git se všemi aliasy: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • Přizpůsobení výzvy shellu: http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki o Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh plugin pro zvýrazňování syntaxe: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosugestions plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki o přizpůsobení Zsh: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.