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.
Sudo apt install zsh
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
Alternativ
https://github.com/gabrielelana/awesome-terminal-fonts
Powerlevel9k Theme
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*
