Eine Shell ist ein Programm, welches Text einliest und diesen Text als Kommando interpretiert und ausführt – so definiert trocken das Lexikon Wikipedia. Heute erledigt eine Shell jedoch in der Regel weitaus mehr, als nur Kommandos zu interpretieren. Eine moderne Shell kann jede Menge Kommandos und Parameter vervollständigen, unterstützt eine eigene Scriptsprache und besitzt Funktionen, die dem Anwender rundum das Leben erleichtern. Die meisten Distributionen setzen in Sachen Standard-Shell auf die Bash. Wer allerdings viel mit der Kommandozeile arbeitet, vermisst wahrscheinlich oftmals einige Möglichkeiten, die der Bash schlicht fehlen. Hier springt die Z-Shell in die Lücke.
Entwickelt wurde die Z-Shell (kurz Zsh) 1989 von Paul Falstad. Falstad wollte eine neue Shell schreiben, welche die Vorteile und Verbesserungen der Shells Bash, Csh und Ksh kombinieren und darüber hinaus noch weitere, neue Features implementieren sollte. Inzwischen wird die Entwicklung von den Mitgliedern der Mailingliste zsh-workers@sunsite.dk fortgeführt und von Peter Stephenson koordiniert.
Installation
Viele Distributionen bringen die Zsh schon mit, bei den anderen können Sie sie über den Paketmanager nachinstallieren. Entsprechende Pakete im RPM-Format finden sich beispielsweise bei RPMSeek [1] und lassen sich mit dem Befehl rpm -i Paket.rpm installieren.
Alternativ können Sie die Z-Shell auch aus den aktuellen Quellen selbst übersetzen. Diese finden Sie auf einem der vielen Mirrors des Zsh-Projekts und auf der Heft-CD dieser Ausgabe. Besondere Abhängigkeiten werden nicht benötigt. Um die Zsh zu kompilieren und (als root) zu installiert, nutzen Sie den bekannten Dreisprung:
./configure make su -c "make install"
Wechsel zur Zsh
Möchten Sie lediglich die die Beispiele dieses Artikels nachvollziehen, dann starten Sie die Zsh dazu durch Eingabe des Befehls exec zsh auf der Kommandozeile. Wollen Sie die Zsh dagegen als Login-Shell verwenden, dann gilt es zunächst zu prüfen, ob das Syste ihre Verwendung zu diesem Zweck auch erlaubt. Dazu muss sie in der Datei /etc/shells mit vollem Pfad aufgeführt sein. Findet sich dort kein entsprechender Eintrag, so stellen Sie zuerst einmal mit dem Befehl which zsh den Pfad zur Zsh fest und tragen ihn (als root) in /etc/shells nach (Listing 1).
Listing 1
Prüfen von /etc/shells
# grep zsh /etc/shells # where zsh /usr/bin/zsh # echo "/usr/bin/zsh" >> /etc/shells
Nachdem Sie diesen Eintrag vorgenommen haben, tauschen Sie Ihre Login-Shell gegen die Zsh aus. Das erledigen Sie mit dem Befehl chsh -c /Pfad/Zur/zsh Benutzername. Eventuell müssen Sie chsh aufgrund von Restriktionen der Distribution möglicherweise als root aufrufen – obwohl der Befehl eigentlich Benutzern ermöglichen soll, ihre Login-Shell selbst zu wechseln.
Beim Ändern der Shell sollten Sie als derjenige Benutzer, dessen Shell geändert werden soll, stets eingeloggt bleiben und auf einer anderen Konsole prüfen, ob der Wechsel erfolgreich verlaufen ist. Haben Sie sich beispielsweise beim Pfad vertippt, ist ein Einloggen des Benutzers ohne ein erneutes chsh oder Editieren der Datei /etc/passwd nicht mehr möglich.
Alternativ können Sie die Zsh mittels des Parameters -l oder --login auch explizit als Login-Shell starten.



