Bash Facelift – Zsh mit Powerlevel9k

Wo liegt doch gleich die Konfiguration vom Webserver? Bin ich eigentlich auf dem richtigen Branch? Und überhaupt habe ich bald mal Feierabend? Diese und viele weitere Fragen des Lebens können nach Durchlaufen des folgenden Tutorials auf einen Blick in die Kommandozeile beantwortet werden.

Schritt 1: Installation von zsh und Oh-My-Zsh

Bei der Z-Shell (kurz zsh) handelt es sich um eine interaktive Shell, die mit einer langen Liste an Features einem das Leben unter Linux deutlich vereinfachen kann. In Kombination mit Oh-My-Zsh, einem Framework zur einfachen Verwaltung der zsh Konfiguration, bekommt man ein mächtiges Tool an die Hand, das man schnell schätzen und lieben lernt.

 

Installation zsh

Die Installationsanleitung bezieht sich auf Debian-basierte Systeme (z.B. Ubuntu). Für andere Linux-Distributionen, Mac OS und Windows gibt es hier weitere Informationen.
Sudoaptinstallzsh
 

Als Default Shell setzen

chsh -s $(which zsh)
 

InstallationOh-My-Zsh

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

Schritt 2: Theme anpassen, Plugins uvm.

Wem das Standard Theme nicht zusagt, der kann aus einer langen Liste von weiteren ein für sich passenderes auswählen. Plugins für verschiedenste Anwendungszwecke sind ebenfalls leicht zu finden. Eingestellt werden kann beides über die Konfigurationsvariablen ZSH_THEME und plugins in der zsh Konfiguration unter ~/.zshrc.
 

Schritt 3: Fancy Icons und Custom Prompt

Um nun den finalen Touch auf die Konsole zu bringen, werden einige Powerline Fonts installiert, die eigene Icons mitbringen. So wird die Übersichtlichkeit auf der Kommandozeile verbessert und der verbrauchte Platz minimiert. Die komplette Konfiguration, wie oben zu sehen, findet sich unter dem Punkt Config.

 

Powerline Fonts installieren

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
fonts/install.sh
# clean-up a bitrm -rf fonts
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
nano  ~/.zshrc
ZSH_THEME="powerlevel9k/powerlevel9k"

 

Config

nano ~/.zshrc

#powerlevel custom settings
POWERLEVEL9K_MODE='awesome-fontconfig'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icondirvcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time)
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_OS_ICON_BACKGROUND="white"
POWERLEVEL9K_OS_ICON_FOREGROUND="blue"
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_TIME_FORMAT="%D{%H:%M:%S | %d.%m.%y}"
Plugins=(git z)
#include fonts
source ~/.fonts/*.sh

Schritt 4: Features kennen und lieben lernen

Zsh bringt eine ganze Menge an nützlichen Features mit, die einem beim täglichen Arbeiten doch einiges an Zeit ersparen. Dabei muss man nicht befürchten, die bisher genutzten Kommandos zu verlieren, denn die Z-Shell und Bash unterscheiden sich im Bereich Kompatibilität kaum. Skripte sollten jedoch trotzdem weiterhin mit der /bin/bash ausgeführt werden, da diese distributionsübergreifender Standard ist.

 

Globale Command-History

Die Intelligente Command-History kann Shell-übergreifend genutzt werden und bieten zusätzlich eine intelligente Autovervollständigung. [Suchbegriff + ].
 

Interaktiv Prozesse töten

Der normale kill-Befehl bietet ebenfalls eine Autovervollständigung [kill + Suchbegriff + ].
 

Aliase, Aliase, Aliase

Alle konfigurierten Aliase können über das Kommando [alias] abgerufen werden. Neu hinzugefügt werden kann ein Alias über alias -g gp=‘Pipe grep -i‘.
 

Globbing

Kein umständliches Suchen über [find] mehr. Über ls **/testfile wird beispielsweile eine rekursive Suche gestartet. Eine komplette Liste allerGlob-Operators gibt es hier.

 

Z und Autovervollständigung

Das Z-Plugin erlaubt es, zwischen verschieden Ordnern zu wechseln, ohne dabei zu wissen, wo der Ordner eigentlich liegt. Das funktioniert sehr gut und passt sich je nach Häufigkeit des Aufrufs dynamisch an. Des Weiteren wird auch hier eine intelligente Autovervollständigung geboten, die entweder mit [Tab] vorher ausgewählt werden kann oder direkt über [Enter] auf gut Glück (funktioniert recht zuverlässig ab 2-3 Buchstaben) ausgeführt wird. Weitere Plugins für die Autovervollständigung von verschiedenen weiteren Tools wie z.B. Maven oder Docker können einfach aktiviert werden plugins=(mvn,docker).
 

Schritt 5: Be a badass and impress everyone*

* Powerlevel9k

Diesen Beitrag teilen

Christoph Wolfes
(Junior)-Softwareentwickler
Als digital Native und Webdevelopment-Experte, rettet er die Welt!