Miroslav Holec
Premium

Terminál: Přechod na ZSH společně s macOS Catalina

Miroslav Holec   5. prosince 2019

Tento článek je již zastaralý. Článek nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

Po přechodu na novou verzi macOS Catalina budete vyzváni změnit výchozí shell z bashe na ZSH. Autorem je Paul Falstad a první verze byla vytvořena již v roce 1990. Podivný název vytvořil Paul z jména profesora Zhong Shao. V posledních letech obliba shellu výrazně vzrostla a nemalý podíl na tom má i framework pro správu ZSH konfigurace s neméně podivným název Oh My ZSH!

Pro změnu shellu stačí provolat changeshell příkaz:

chsh -s /bin/zsh

Konfigurace shellu je pro vývojáře dotnetu celkem potřebná, zejména pokud používáte například dotnet tools (viz. konec článku). Veškerá nastavení se uchovávají v souboru .zshrc, který můžeme otevřít ve výchozím editoru:

open ~/.zshrc

nebo přímo v terminálovém prostředí:

nano ~/.zshrc

Oh My ZSH!

Ihned po změně shellu doporučuji pokračovat instalací frameworku, který usnadňuje konfiguraci ZSH. Na stránce https://ohmyz.sh najdete veškerou dokumentaci a témata vzhledu pro zsh. Pro instalaci stačí v terminálu spustit instalační skript.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Ihned po instalaci se taktéž přepíše konfigurace v .zshrc souboru (to je důvod, proč tento krok děláme hned na začátku).

Definice aliasů

Do souboru .zshrc je možné vepsat další konfiguraci. Většina vývojářů a správců si obvykle definuje různé aliasy, pomocí kterých suplují jiné, krkolomnější a delší příkazy. Je to výhodné pro příkazy, které provádíte nejčastěji.

alias ..='cd ..'
alias ...='cd ../..'
alias ls='ls -GwF'
alias ll='ls -alh'

Pluginy

Teď už budeme těžit z frameworku Oh My ZSH. Existuje celá řada pluginů, které můžeme zapojit do shellu a výrazně si usnadnit život. Obvykle si tyto pluginy naklonujeme z git repositáře do složky se ZSH pluginy a poté plugin aktivujeme aktualizací souboru zshrc.

autosuggestions

Příkladem budiž plugin autosuggestions. Ten si v první fázi naklonujeme:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

a následně přidáme nový řádek do .zshrc souboru

plugins=(zsh-autosuggestions)

Hotovo. Tímto způsobem lze přidat řadu dalších pluginů. Přehled pluginů najdete na této stránce na GitHubu.

Témata vzhledu

Společně se shellem máme k dispozici i témata, které mění vzhled UI v terminálu. Přehled témat najdete v oficiálním GitHub repositáři. Pro nastavení stačí přidat na začátek .zshrc souboru řádek:

ZSH_THEME=robbyrussell

přičemž robbyrussell je název tématu. Pro každou změnu je samozřejmě nutné terminál znovu spustit. Při výběru doporučuji volit spíše jednoduché přehledné témata s podporou GITu. Mezi mé favority patří témata dieter nebo flazz.

Dotnet

Pro práci s dotnet nástroji (dotnet global tools) je potřeba zavést si novou cestu k adresáři s nástroji. Na konec zshrc souboru stačí přidat

export PATH=$HOME/.dotnet/tools:$PATH

Go2Shell

Je více než praktické kdykoliv při procházení ve Finderu mít možnost otevřít v dané cestě shell. Pro tento účel používám praktický doplněk Go2Shell, který se do Finderu integruje a umožňuje mi otevřít shell pouhým kliknutím. Konfigurace je následně možná pomocí:

open -a Go2Shell --args config

Podotýkám, že zatím jediná terminálová aplikace, která funguje skutečně spolehlivě je ta originální. iTerm2 přes všechny výhody často nejde z neznámého důvodu otevřít.