Większość użytkowników na co dzień korzysta z basha jako powłoki systemowej Unix. Dzisiaj zaprezentuję możliwość zwiększenia swojej produktywności poprzez użycie powłoki systemowej zsh na Ubuntu. W celu konfiguracji powłoki zsh wykorzystam framework open source Oh My Zsh.

Instalacja

W pierwszej kolejności przed instalacją Oh-My-Zsh należy zainstalować powłokę systemową zsh (wersja 4.3.9 lub nowsza), system kontroli wersji git, oraz curl lub wget,

sudo apt-get install zsh git wget

W celu znalezienia ścieżki do zainstalowanej powłoki zsh posłuży komenda which.

which zsh

Po instalacji, poleceniem chsh (ang. change shell) zmieniamy używaną powłokę systemową na zsh dla wskazanego użytkownika.

chsh -s /usr/bin/zsh root

Należy teraz przelogować się lub uruchomić ponownie terminal. W celu sprawdzenie aktualnie używanej powłoki stosujemy poniższą komendę.

echo $SHELL

Oh-My-Zsh instalujemy wykorzystując jedno z poniższych poleceń.

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

Jeśli wszystko powiodło się uzyskamy poniższy widok.

oH my zsh installed

Motywy

Po zakończeniu instalacji można przejść do konfiguracji powłoki. Zaczniemy od pierwszego wrażenia, czyli wybierzemy jeden z wielu dostępnych motywów wyglądu powłoki. Nazwy dostępnych motywów znajdziecie na  Themes i External themes. W celu zmiany aktualnego motywu należy dokonać edycji pliku konfiguracyjnego ~/.zshrc. Wybraną nazwę motywu należy przypisać do zmiennej ZSH_THEME. Wszystkie motywy można znaleźć w katalogu ~/.oh-my-zsh/themes/.

zsh theme

Przykładowo używany przeze mnie motyw agnoster wymaga dodatkowo zainstalowania Powerline Fonts.

sudo apt-get install fonts-powerline

Po zmianie motywu należy ponownie załadować konfiguracje z .zshrc wykonując polecenie source.

source ~/.zshrc

Pluginy

Oh-My-Zsh umożliwia dodanie wielu pluginów do powłoki, omawianie każdego po kolei było by czasochłonne, zainteresowanych zachęcam do przejrzenia listy na wiki Oh-My-Zsh. Wtyczki znajdują się w katalogu ~/.oh-my-zsh/plugins. Tutaj skupię się tylko na rozszerzeniu git. W celu aktywowania wtyczki należy edytować plik konfiguracyjny ~/.zshrc. Przykładowa sekcja w pliku konfiguracyjnym z dodaniem wtyczki git wygląda następująco.

plugins=(
  git
)

W ostatnim wpisie Git Bash Aliasy przedstawiłem jak można dodać aliasy dla poleceń gita. Wtyczka git dostarczona przez Oh-My-Zsh ułatwia nam zadanie i udostępnia długą listę aliasów, wszystkie można znaleźć w opisie pluginu git. Poniżej przykład wykorzystania dostępnych aliasów.

samplePodsumowanie

Framework Oh-My-Zsh dostarcza do powłoki zsh wiele ciekawych funkcji ułatwiających codzienną pracę z terminalem i gitem, np.:

  • pluginy (git, docker, etc.)
  • aliasy (nie trzeba wpisywać codziennie cd by przejść do wybranego katalogu np. zamiast cd src, wystarczy wpisać src w terminalu)
  • motywy (themes)
  • podpowiadanie użytych  wcześniej poleceń np., gdy wpiszemy nano i klikniemy lub  to uzyskamy komendy zaczynające się od nano …
  • rozwinięcie ścieżek np. wpisując /h/d/s i klikając „Tab” polecenie zostanie rozwinięte do ścieżki /home/devkr/sample
  • dopełnienie polecenia np. wpisując git a i klikając „Tab” uzyskamy poniższe podpowiedzi
git a


Mam nadzieje że tym wpisem zainteresowałem Was do przetestowania możliwości powłoki zsh, miłej pracy/zabawy z zsh.