Seit 2006 ungefähr benutze ich Linux unter intensiver Zuhilfenahme des Terminals. In meinem Fall war das in den letzten zehn Jahren stets die Bash (steht für Bourne-again shell) und ich war zufrieden damit.

Seit ich aber jetzt bereits drei Monate lang die Z-Shell (oder zsh) benutze, kann ich mir nicht mehr vorstellen, wieder zur Bash zurückzukehren. 

 1. Vorteile der zsh (Z-Shell)

  • Erweiterte Autovervollständigung (AutoComplete)
  • Einfaches Theming
  • Schreibfehler Verbesserung
  • Bessere History-Funktionen
  • Synchrone History über mehrere Terminals

2. Nachteile der zsh

  • Ist bei den meisten Distributionen nicht Standard und muss nachinstalliert werden.

3. Installation der zsh

Unter Debian und seinen Kindern, Enkeln, Nachkommen ist die Installation sehr einfach mit einem

danach kann man in einem Terminal durch den Befehl

in die zsh wechseln.

Shell mit Bash

Shell Screenshot mit Bash

Shell mit ZSH

Shell Screenshot mit ZSH

Natürlich möchte man nicht jedes Mal extra in die zsh wechseln und dafür muss sie als Default-Shell festgelegt werden.  Hierfür kann man  chsh  verwenden:

Wobei  $(which zsh)  eigentlich nur den Vollständigen Pfad zur zsh meint ( /usr/bin/zsh) und mit  $(whoami)  einfach der aktuelle user benutzt wird. Alles in Allem habe ich damit also gesagt, dass ich gerne für mich (den angemeldeten User) als neue Standard-Shell zsh hätte. Ich glaube, damit wird nur der Eintrag in der  /etc/passwd  aktualisiert und nichts weiter. Man könnte also auch ohne  chsh zum gewünschten Ergebnis kommen. Ich empfehle es nicht.

Nach einem Neustart oder Logout-Login. Sollte jetzt die zsh aufgehen, wenn man ein Terminal öffnet.

4. Oh-My-Zsh

Oh-My-Zsh ist ein Framework, das die konfiguration der zsh vereinfacht. Ich habe die zsh nie ohne Oh-My-Zsh benutzt und kann daher nicht genau sagen, wie einfach oder schwer die Konfiguration von Hand wäre, wenn man nicht Oh-My-Zsh benutzen würde. Auf jeden Fall wäre es umständlicher.

Oh-My-Zsh bietet in erster Linie verschiedene Themes oder Looks – vor allem für die Prompt – an, die nicht nur verschieden und schön aussehen, sondern auch jeweils für bestimmte Szenarien einen echten Nutzen-Vorteil bieten.

Um Oh-My-Zsh installieren zu können benötigt man  curl  oder  wget. Beides ist entweder brereits installiert oder kann mit mit

installiert werden (letzteres installiert übrigens gleich beides). Wenn man dann Oh-My-Zsh installieren möchte, dann geht das über

mit curl oder über

mit wget.

im Anschluss steht einem Oh-My-Zsh zur Verfügung.

5. Konfiguration der zsh

analog zur bash (~/.bashrc) kann man die zsh über eine rc-Datei konfigurieren: Zum Beispiel mit

Meine ~/.zshrc besteht fast nur aus Kommentaren. Wenn ich diese weglasse bleiben bei mir im Grunde fünf Zeilen übrig:

Die erste und letzte Zeile machen im Grunde gemeinsam die Oh-My-Zsh verfügbar und sind Pflichtprogramm. In der zweiten Zeile wähle ich das Theme ys (später mehr). In der dritten Zeile wird das Git-Plugin eingebunden. In der vierten Zeile ist eine übliche PATH-Definition zu sehen.

6. Theme auswählen

Wer sich noch weiter mit Oh-My-Zsh auseinander setzen möchte, kann gerne hier vorbeischauen. Unter diesem Pfad sieht man übrigens die Liste der mit Oh-My-Zsh verfügbaren Themes. Wer nicht blind ausprobieren möchte (genau wie ich), kann hier Vorschauen von vielen Themes ansehen. Diese Galerie ist noch ein bisschen ausführlicher.

Das gewünschte Theme trägt man einfach in seine ~/.zshrc ein. Welche Themes einem zur Verfügung stehen kann man mittels

herausfinden.

7. Theme bearbeiten oder selbst erstellen

Themes sind im Grunde nichts anderes als Skripte, die den Inhalt der Variable $PROMPT bzw. $RPROMPT setzen. Die Skripte liegen alle in ~/.oh-my-zsh/themes und haben die Endung .zsh-theme. Warum eigentlich zwei Variablen? Der Grund ist, dass es in der zsh zwei Prompts gibt: Die normale Prompt und eine rechtsbündige Prompt, welche unabhängig voneinander Verschiedene Daten anzeigen können. Bei ys gibt es keine Rechtsbündige Prompt, was mir nichts ausmacht. Wenn ich zum Beispiel rechts die Uhrzeit haben wollte statt links, dann wäre das kein Problem. Denn die Theme-Dateien sind recht leicht zu lesen.

Ich habe an meinem ys-Theme schon ein wenig geschraubt und zum Beispiel die 12h- auf eine 24h-Uhrzeit mit Sekunden umgestellt. Als Nachschlagewerk für die meisten möglichen Kürzel empfehle ich das hier. Die Möglichkeiten sind echt gewaltig.

8. Git in der zsh

Wer regelmäßig in git in der Shell arbeitet, wie ich, der wird entweder schon lange zsh in Betrieb haben, oder dem sei von mir geraten das sofort zu probieren.

git in der zsh

Git in der zsh

Oben seht Ihr einen Screenshot einer zsh-Sitzung . Es ist gut zu sehen, dass man über die rechte Prompt jederzeit sieht

  1. Wieviel Uhr es ist
  2. in welchem git-Branch man ist
  3. ob es etwas Uncommittetes gibt (am *)

Das sind für mich immer wichtige Informationen, auf die ich in der Bash überhaupt keinen Zugriff hätte. In Zukunft möchte ich darauf nicht mehr verzichten.

Kategorien: LinuxTerminal

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.