Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Die Zsh
ist neben der Bash eine weitere sehr mächtige Shell und Skriptsprache, die viele Möglichkeiten bietet. Die Zsh ist von diversen anderen Shells beeinflusst, wie beispielsweise der Korn-Shell (ksh), der C-Shell (csh) oder der Tiny C-Shell (tcsh). Der größte Vorteil der Z-Shell ist wohl der sehr ausgereifte Command-Editor.
Folgendes Paket muss installiert werden [1]:
zsh
Möchte man zsh als seine Standard Shell einrichten, reicht ein Aufruf von chsh:
chsh
Dann muss man den kompletten Pfad zur gewünschten Shell angeben: /usr/bin/zsh und hat von da an Zsh als Shell. Beispiel:
chsh -s /usr/bin/zsh $USER
Mit der selben Methode kann auch wieder zu Bash oder Dash gewechselt werden.
Die Konfiguration wird in verschiedenen Dateien festgelegt, die beim Start der Z-Shell eingelesen werden. Die folgende Tabelle gibt Aufschluss über den Geltungsbereich der Einstellungen und die Reihenfolge, in der die so genannten start-up-files verarbeitet werden.
| Geltungsbereich | Systemweit | Benutzerspezifisch | Kommentar |
| 1. Allgemein | /etc/zsh/zshenv | ~/.zshenv | Umgebungsvariablen die in jeder Sitzung gelten |
| 2. Login-Shell | /etc/zsh/zprofile | ~/.zprofile | Benutzerprofil; Befehle die während der Sitzung zur Verfügung stehen |
| 3. Interaktive Shell | /etc/zsh/zshrc | ~/.zshrc | Befehle, die beim Start einer interaktiven Shell ausgeführt werden |
| 4. Login-Shell | /etc/zsh/zlogin | ~/.zlogin | Befehle, die beim Start jeder Shell ausgeführt werden |
| 5. Logout | /etc/zsh/zlogout | ~/.zlogout | Befehle, die beim Beenden ausgeführt werden |
Die Linuxdistribution Grml
bringt die Zsh von Haus aus mit und hat diese über die .zshrc sehr gut vorkonfiguriert. Um diese bei sich nutzen zu können installiert man sie sich mit dem Befehl:
wget -O ~/.zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
Die bestehende Konfiguration wird dabei überschrieben.
Durch Module kann die Zsh erweitert werden. Module werden mit dem Befehl:
autoload -U <modulname>
geladen und durch den Aufruf von <modulname> gestartet.
Das Modul der Z-Shell für das File Transfer Protocol kann einzeln geladen oder fest eingebunden werden. Im Artikel zu zftp ist ein Mittelweg beschrieben: die Einbindung für einen einzelnen Benutzer. Zudem werden einfache Befehle für die Sitzungsverwaltung und den Dateitransfer erklärt.
Das Modul promptinit bietet einige voreingestellte Prompt-Themes, mit denen man das (etwas langweilige) Standard-Prompt verschönern kann. Zuerst wird das Modul geladen und gestartet:
autoload -U promptinit && promptinit
Jetzt hat man das Kommando prompt zur Verfügung, mit dem man die Prompt-Themes laden kann:
prompt -c # zeigt den derzeit gewählten Theme prompt -l # zeigt alle verfügbaren Themes prompt -p <name> # zeigt ein Preview des Themes prompt -s <name> # ändert die Shell zum Theme <name> und speichert diesen prompt <name> # ändert die Shell zu <name>, speichert aber nicht
In der zsh gibt es neben den bekannten Möglichkeit, ein alias zu setzen, noch 2 weitere Möglichkeiten.
Globale Ersetzungen arbeiten grundsätzlich wie ein normales alias, mit dem einzigen Unterschied, dass globale Ersetzungen in jedem Teil des Befehls auftauchen dürfen und können. So lassen (als Beispiel) sich häufig genutzte Pipes geschickt abkürzen. Ein alias für eine Pipe mit less sieht so aus:
alias -g L=' | less'
Weitere Beispiele dazu gibt es im Zsh-Wiki
.
Mit zsh besteht die Möglichkeit Dateiendungen (Suffixe) mit einer bestimmten Anwendung zu verknüfen. Dann reicht es des Namen der Datei im Terminal einzugeben und diese wird dann mit der definierten Anwendung geöffnet. So werden im folgenden Beispiel Dateien mit dem Suffix "wav" mit play abgespielt:
alias -s wav='play -q'
Auch hier bietet das Zsh-Wiki
weitere Beispiele.
Das nützliche Paket command-not-found, das einem in der Bash anzeigt, mit welchem Paket sich das eben aufgerufene aber nicht vorhandene Programm installieren lässt, ist in der zsh leider nicht standardmäßig aktiv. Zur Aktivierung muss die Datei /etc/zsh_command_not_found entweder am Ende der Datei /etc/zsh/zshrc (systemweit) oder der Datei ~/.zshrc (benutzerspezifisch) eingebunden werden.
# if the command-not-found package is installed, use it . /etc/zsh_command_not_found
Beispielausgabe:
% gps-correlate zsh: command not found: gps-correlate No command 'gps-correlate' found, did you mean: Command 'gpscorrelate' from package 'gpscorrelate' (universe) gps-correlate: command not found
strcat.de/zsh
Gute Einführung in die Zsh mit vielen Beispielen
Unix-Shell Unix-Shells in der Wikipedia
Diese Revision wurde am 13. Juli 2011 um 15:43 Uhr
von buzztardo erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Shell
2004 – 2011 ubuntuusers.de • Einige Rechte vorbehalten