Einführung in die Z-Shell: Maximaler Komfort im Terminal

Die Z-Shell bietet intelligente Vervollständigung, automatische Fehlerkorrektur und modernes Globbing. Damit ist sie eine echte Alternative zu bash & Co.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 138 Kommentare lesen
Einführung in die Z-Shell: Maximaler Komfort im Terminal

(Bild: wolfstudiobkk/Shutterstock.com)

Lesezeit: 17 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Nicht nur Power-User und systemd-verweigernde Graubärte lieben die Shell, also das textorientierte Terminal-Fenster. Schließlich lassen sich dort viele Aufgaben schneller, ressourcenschonender und effizienter erledigen als mit grafischen Programmen. Eine Shell bildet traditionell die direkte Schnittstelle zu einem Betriebssystem. Dort tippt man Befehle oder Kommandos ein, die Aktionen auslösen oder Programme starten. Fast alle Shells lassen sich über Skriptsprachen programmieren. Die Ausgabe auf dem Bildschirm erfolgt in der Regel als Text oder in grafisch anmutenden Sonderzeichen.

Auf GNU/Linux-Systemen kommt in der Regel die Bourne Again Shell (bash) zum Einsatz. Es existieren aber mindestens zwei Dutzend weitere Shells, rechnet man auch kaum bekannte Varianten dazu. Alle diese Shells basieren auf unterschiedlichen Konzepten, besitzen letztlich aber ähnliche Funktionen. In diesem Artikel schauen wir uns die Z-Shell (zsh) genauer an, da diese mit cleveren Funktionen punktet, die viele andere Shells entweder in komplizierterer Form oder gar nicht anbieten. Auch wenn die Vermutung nahe liegt, hat die Z-Shell nichts mit dem ZFS-Dateisystem zu tun. Sie wurde aber wie dieses erst relativ spät von Grund auf neu entwickelt und hat sich beim Konzept und dem Funktionsumfang bei allen vorhandenen Shells orientiert. Ob die zsh tatsächlich das Beste aus allen anderen Shells zusammenfasst, hängt auch immer von den persönlichen Anforderungen und Fertigkeiten des Anwenders ab.

Weitere Shells im Überblick

sh: Die Bourne Shell ist die ursprüngliche Shell aus den klassischen UNIX-Betriebssystemen. Sie besitzt nur wenige Funktionen. Ihr Vorteil: Mit ihrem beschränkten Umfang läuft ist sie auf so gut wie jedem jedem unixartigen System, sodass beispielsweise Installationsskripte immer funktionieren.

bash: Die Bourne Again Shell bildet die Standard-Shell von GNU und ist daher beispielsweise in allen GNU/Linux-Systemen vorhanden. Sie wurde um unzählige Funktionen und Plugins erweitert, so dass bash-Skripte nicht zwangsläufig in anderen bash-Varianten oder gar der sh laufen.

csh: Bei der C-Shell handelt es sich um eine einfache Shell, deren Syntax sich der Programmiersprache C anlehnt. Daher ist sie beliebt bei C-Programmierern.

tcsh: Die TENEX C-Shell ist (wie die bash für sh) eine erweiterte C-Shell, die benutzerfreundlicher und schneller als die C-Shell arbeitet. TENEX war ein Betriebssystem von BBN-Technologies für Digitals PDP-10. Die tcsh bildet die Standard-Shell von FreeBSD.

ksh: Bei der Korn-Shell handelt es sich wie bei bash um einen Ableger der sh. Dieser ist voll kompatibel zu dieser mit Anleihen der csh und erfüllt den POSIX2-Standard.

PowerShell: Die verbreitetste Shell dürfte Microsofts PowerShell sein. Sie basiert dem .NET-Framework, steht unter der BSD-ähnlichen MIT-Lizenz und es gibt sie auch für GNU/Linux und macOS X.

Ein Blick in das Verzeichnis /etc/shells verrät, welche Shells bereits auf Ihrem System installiert und für Benutzer verfügbar sind. Unter GNU/Linux verwirrt die Liste, da einige Einträge als Softlinks mehrfach auftreten (/bin/zsh und /usr/bin/zsh). FreeBSD beispielsweise zeigt die Shells des Grundsystems klar im /bin/-Verzeichnis an, zusätzliche Shells liegen dort – wie jede andere nicht zum Basissystem gehörende Software – unter /usr/local/bin/. Doppelte Einträge gibt es nicht.