Slovenská verze


Přechod na ZSH společně s macOS Catalina

Miroslav Holec

Miroslav Holec

5. prosince. 2019

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.

TOP Termíny školení

ASP.NET Core se dočkal již své třetí verze a nabízí řadu možností pro vývoj webových aplikací a služeb. I v roce 2020 mám vypsané termíny na nejrůznější témata od základů .NET Core přes vývoj REST API až po mikroslužby pomocí gRPC.

Termín Místo
🍀 Novinky a změny v ASP.NET Core 3.x leden 2020 Praha více
🍀 Vývoj REST API v .NET Core (třídenní) leden 2020 Praha více
🍀 Vývoj aplikací v ASP.NET Core březen 2020 Praha více
🍀 Microservices v ASP.NET Core gRPC březen 2020 Praha více
🍀 Vývoj REST API v .NET Core (dvoudenní) březen 2020 Praha více
🍀 Tipy a triky pro ASP.NET Core březen 2020 Praha více

👨‍🎓 Čerstvá školení 2020
👍 Vývoj aplikací v ASP.NET Core
👍 Vývoj REST služeb v .NET Core
👍 Microservices v ASP.NET Core gRPC
👍 Tipy a triky v ASP.NET Core
👍 Změny v ASP.NET Core 3.x