ADMIN
2022
06
2022-05-30T12:00:00
Storage und Backup
PRAXIS
066
Open-Source-Tipp
Unix-Shell
Einrichten der Z-Shell
Hört aufs Wort
von Thorsten Scherf
Veröffentlicht in Ausgabe 06/2022 - PRAXIS
Auch wenn die bash-Shell bei den meisten Linux-Distributionen standardmäßig zum Einsatz kommt, existieren doch eine Menge Alternativen. Die Z-Shell (zsh) wird von vielen Admins besonders gemocht, vereint diese doch die Vorteile der bash, ksh und tcsh und liefert selbst noch eine Vielzahl an eigenen Features. Von daher dreht sich dieser Open-Source-Tipp darum, wie Sie die zsh an Ihre Bedürfnisse anpassen können.

Die Z-Shell [1] ist neben der bash sicherlich eine der beliebtesten Befehlszeileninterpretern unter Administratoren und Entwicklern. Sie wurde 1990 ursprünglich von Paul Falstad entwickelt. Interessanterweise leitet sich der Name zsh von seinem damaligen Professor, Zhong Shao, ab. Seit jeher existiert eine sehr aktive Community um die Shell herum, wobei Peter Stephenson in den letzten Jahren die Koordination der Arbeit übernommen hat.
Konfiguration mittels Framework
Einige Linux-Distributionen, wie beispielsweise Kali Linux [2], verwenden die Shell mittlerweile sogar als Standard. Und auch Apple ist mit dem Catalina-Release von der bash auf die zsh gewechselt. Dies kommt nicht von ungefähr, so ist die Shell doch reich an vielfältigen Funktionen und bietet zahlreiche Konfigurationsmöglichkeiten an. Und um Letztere soll es in diesem Artikel gehen. Schließlich ist es für ein produktives Arbeiten von großer Wichtigkeit, dass die Kommandozeile, auf der doch die meiste Arbeit stattfindet, den eigenen Bedürfnissen entspricht.
Es gibt eine Vielzahl an unterschiedlichen Frameworks zur Konfiguration der Z-Shell. Zu den bekannteren zählen sicherlich Prezto [3] oder Zgen [4]. An dieser Stelle soll es aber um das Framework "Oh My Zsh" [5] gehen. Es verfügt über eine sehr aktive Community [6] und macht es Anwendern sehr einfach, die Shell sowohl vom Funktionsumfang als auch vom Aussehen her an die eigenen Wünsche anzupassen.
Die Z-Shell [1] ist neben der bash sicherlich eine der beliebtesten Befehlszeileninterpretern unter Administratoren und Entwicklern. Sie wurde 1990 ursprünglich von Paul Falstad entwickelt. Interessanterweise leitet sich der Name zsh von seinem damaligen Professor, Zhong Shao, ab. Seit jeher existiert eine sehr aktive Community um die Shell herum, wobei Peter Stephenson in den letzten Jahren die Koordination der Arbeit übernommen hat.
Konfiguration mittels Framework
Einige Linux-Distributionen, wie beispielsweise Kali Linux [2], verwenden die Shell mittlerweile sogar als Standard. Und auch Apple ist mit dem Catalina-Release von der bash auf die zsh gewechselt. Dies kommt nicht von ungefähr, so ist die Shell doch reich an vielfältigen Funktionen und bietet zahlreiche Konfigurationsmöglichkeiten an. Und um Letztere soll es in diesem Artikel gehen. Schließlich ist es für ein produktives Arbeiten von großer Wichtigkeit, dass die Kommandozeile, auf der doch die meiste Arbeit stattfindet, den eigenen Bedürfnissen entspricht.
Es gibt eine Vielzahl an unterschiedlichen Frameworks zur Konfiguration der Z-Shell. Zu den bekannteren zählen sicherlich Prezto [3] oder Zgen [4]. An dieser Stelle soll es aber um das Framework "Oh My Zsh" [5] gehen. Es verfügt über eine sehr aktive Community [6] und macht es Anwendern sehr einfach, die Shell sowohl vom Funktionsumfang als auch vom Aussehen her an die eigenen Wünsche anzupassen.
Oh My Zsh installieren
Die Installation des Framework gelingt für den gerade angemeldeten Benutzer sehr einfach durch den folgenden Aufruf:
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Alternativ dazu können Sie das Skript zur Installation natürlich auch erst herunterladen und einer gründlichen Kontrolle unterziehen, bevor Sie dieses dann starten. Das Installationsskript führt dann einen git-Checkout des Oh-My-Zsh-Repositories von GitHub [6] aus. Aus diesem Grund ist zwingend darauf zu achten, dass das git-Tool bereits installiert ist. Dies gilt natürlich ebenso für die Z-Shell selbst.
Sollten Sie diese Shell aktuell noch nicht als Standard definiert haben, fragt das Skript, ob nun ein Wechsel der Shell stattfinden soll. Schließlich wird die Konfigurationsdatei ".zshrc" im Heimatverzeichnis des Benutzers angelegt. Diese basiert auf dem Template "~/.oh-my-zsh/templates/zshrc.zsh-template".
Plug-ins und Themes
In der Datei "~/.zshrc" können Sie dann die gewünschten Plug-ins und Themes festlegen, um die Shell-Umgebung nach Ihren Wünschen anzupassen. Plug-ins erweitern die Umgebung zumeist durch zusätzliche Shell-Aliase und Funktionen. Hiermit ist es dann sogar möglich, bestimmte Aktionen von externen Programmen auszuführen, um das Ergebnis der Aktion dann innerhalb der zsh zu verwenden. Ein schönes Beispiel hierfür ist das Plug-in 1password [7]. Damit können Sie aus der zsh heraus auf den Passwortmanager zugreifen, um Zugangsdaten in die Zwischenablage zu kopieren. Das funktioniert übrigens auch sehr schön mit One-Time-Passwörtern, die zu einem bestimmten Service gehören.
Oder werfen Sie beispielsweise einen Blick auf das git-Plug-in [8]. Haben Sie dieses aktiviert, stehen Ihnen eine ganze Reihe an Aliasse zur Verfügung, die Ihnen jede Menge Tipparbeit im täglich Umgang mit dem Versionsverwaltungssystem abnehmen. So können Sie beispielsweise statt git add
einfach ga
tippen, um eine neue Datei zum git-Index hinzuzufügen. Natürlich ist dies nur ein Beispiel und es stehen noch jede Menge weitere Aliasse zur Verfügung – sogar so viele, dass es nicht immer leicht fällt, den Überblick zu behalten. Und genau hier kommt das interne Kommandozeilen-Interface omz ins Spiel.
Konfiguration mit omz
Mit omz legen Sie zum einen fest, welche Plug-ins und Themes zsh verwenden soll. Hierfür findet dann ein Eintrag in der Datei "~/.zshrc" statt. Zum anderen liefert omz aber auch hilfreiche Informationen zu den einzelnen Plug-ins. Rufen Sie beispielsweise einmal omz plugin info 1password
auf und schon erscheint eine Hilfe, wie im Detail die Konfiguration des Plug-ins erfolgt. Mittels omz plugin info git
erhalten Sie schließlich eine Übersicht der einzelnen Aliasse und Funktionen, die das git-Plug-in zur Verfügung stellt.
Im ersten Schritt gilt es aber natürlich herauszufinden, welche Plug-ins und Themes auf Ihrem System überhaupt zum Einsatz kommen sollen. Hierfür lohnt sich ein Blick auf die Webseite der Software. Dort sind sämtliche Plug-ins [9] und Themes [10], die Oh My Zsh selbst zur Verfügung stellt, aufgelistet. Alternativ hierzu können Sie innerhalb der Shell auch einfach die Kommandos omz theme list
und omz plugin list
verwenden. Im Anschluss gilt es dann, die gewünschten Erweiterungen zu installieren. Natürlich funktioniert auch das wieder mit Hilfe von omz:
$ omz plugin enable git
omz::plugin::enable: plugins enabled: git
$ omz theme set agnoster
omz::theme::set: 'agnoster' theme set correctly.
Hierdurch wird dann der entsprechende Eintrag in der zsh-Konfigurationsdatei vorgenommen und im Anschluss die Umgebung neu initialisiert:
$ egrep -i '^(plugins|zsh_theme)' ~/.zshrc
ZSH_THEME="agnoster" # set by `omz`
plugins=(git)
Drittanbieter-Erweiterungen
Neben den Standard-Themes und -Plug-ins, die nach der Installation des Frameworks in den Verzeichnissen "~/.oh-my-zsh/themes" und "~/.oh-my-zsh/plugins" zur Verfügung stehen, können Sie natürlich auch auf andere Erweiterungen zurückgreifen. Installieren Sie diese einfach im Verzeichnis "~/.oh-my-zsh/custom/plugins" und "~/.oh-my-zsh/custom/themes".
Im nachfolgenden Beispiel binden Sie das sehr beliebte Plug-in zsh-autosuggestions in Ihre Umgebung ein. Hierfür klonen Sie zunächst das Git-Repository und speichern es dann im passenden Verzeichnis ab:
$ git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Und schließlich aktivieren Sie das Plug-in via omz mit
$ omz plugin enable zsh-autosuggestions
Ab jetzt können Sie Ihre Kommandos on-the-fly auf Basis der Shell-Historie vervollständigen. Sehr hilfreich ist es auch, dass Sie eine Erweiterung nur temporär nutzen können, ohne diese dauerhaft in der Konfigurationsdatei zu hinterlegen. Verwenden Sie hierfür einfach die Anweisungen omz plugin load
und omz theme use
.
Fazit
Mit Oh My Zsh wird die Konfiguration der zsh zum Kinderspiel. Dank der Plug-ins und Themes können Sie Ihre Umgebung an die eigenen Wünschen anpassen. Der Funktionsumfang ist dabei enorm und viele lästige Arbeiten gelingen nun im Handumdrehen. Mittels omz erzeugen Sie nicht nur die passende Konfiguration für Ihre Umgebung, das Tool hilft auch dabei, den Überblick nicht zu verlieren.
(dr)