Gentoo Logo

zsh Konfigurations- und Installationsleitfaden

Inhalt:

1.  Installation

zsh installieren

Um zsh unter Gentoo zu installieren werden die Pakete app-shells/zsh (zsh an sich) und app-shells/zsh-completion (zsh Autovervollständigungs-Scripts) benötigt.

Befehlsauflistung 1.1: zsh mit emerge installieren

# emerge zsh zsh-completion

zsh starten

Wenn Sie zsh das erste mal starten, werden Sie folgende Meldung bekommen. Sie können diese Anweisung überspringen, da wir später eine Init-Datei erstellen werden.

Befehlsauflistung 1.2: Anfangskonfiguration überspringen

$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

--- Type one of the keys in parentheses --- q

2.  Konfiguration

Einführung

Um zsh für eine einzelne Sitzung zu starten, führen sie zsh aus. Für eine dauerhafte Lösung springen Sie zum Kapitel Konfiguration speichern. Nach der installation hinterlässt zsh einen sehr einfachen und eher limitierten Eindruck der Funktionalitäten. Um dies zu ändern, sind ein paar Änderungen an der Konfiguration nötig.

Erweiterte Tabulator-Vervollständigung

Um das beliebte zsh Tab-Vervollständigungssystem zu aktivieren, führen Sie die folgenden Befehle aus:

Befehlsauflistung 2.1: Vervollständigung aktivieren

% autoload -U compinit
% compinit

Das normale Aussehen der Vervollständigung ist einfach gehalten und nicht sehr schön. Um das Erscheinungsbild aufzubessern, geben Sie die folgenden Befehle ein:

Befehlsauflistung 2.2: Erscheinungsbild aufbessern

% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

Befehlskorrektur

Es ist außerdem eine gute Idee, die Autokorrektur der getippten Befehle zu aktivieren:

Befehlsauflistung 2.3: Befehlskorrektur aktivieren

% setopt correctall

Eingabeaufforderung

Die Eingabeaufforderung sieht trotz allem noch etwas langweilig aus, dies kann aber in wenigen Schritten geändert werden. Zuerst werden wir die erweiterte Eingabeaufforderung aktivieren:

Befehlsauflistung 2.4: Erweiterte Eingabeaufforderung aktivieren

% autoload -U promptinit
% promptinit

Wählbare Beispiele für das Aussehen der Eingabeaufforderung erhält man durch den Befehl prompt -p. Wir können nun unseren Favoriten aktivieren:

Befehlsauflistung 2.5: Aussehen der Eingabeaufforderung wählen

(Ersetzen Sie gentoo mit der Eingabeaufforderung Ihrer Wahl)
% prompt gentoo

Notiz: Wenn Sie die verschiedenen Eingabeaufforderungen testen und nicht von jedem ein Beispiel sehen möchten, lassen Sie sich mit dem Befehl prompt -l die zur Wahl stehenden Eingabeaufforderungen auflisten.

Eine andere Möglichkeit ist es, eine eigene Eingabeaufforderung zu erstellen. Dazu muss die PS1-Umgebungsvariable gesetzt werden.

Befehlsauflistung 2.6: Eigene Eingabeaufforderung erstellen

% export PS1="[Test Prompt] > "
[Test Prompt] >

Neben der nützlichen Funktion zum kreieren eigener Eingabeaufforderungen, unterstützt zsh zusätzlich viele Escape-Sequenzen, um Systeminformationen in die Eingabeaufforderung zu implementieren. Beispiele dieser Escape-Sequenzen sehen Sie hier:

Sequenz Darstellung
%T Systemzeit (HH:MM)
%* Systemzeit (HH:MM:SS)
%D Systemzeit (YY-MM-DD)
%n Ihr Benutzername
%B - %b Beginn - Ende Fettschrift
%U - %u Beginn - Ende unterstrichen
%d Ihr aktuelles Arbeitsverzeichnis
%~ Ihr aktuelles Arbeitsverzeichnis, relativ zu ~
%M Hostname des Computers
%m Hostname des Computers (vor dem ersten Punkt abgeschnitten)
%l Ihr aktuelles Terminal

Diese Escape-Sequenzen werden einfach zu Ihrer PS1-Variable hinzugefügt und automatisch von zsh ausgewertet.

Befehlsauflistung 2.7: Eine komplexe Eingabeaufforderung

% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %

History

Unglücklicherweise enthält die standard zsh-Konfiguration keine Befehls-History. Das Arbeiten mit einer Shell kann ohne History sehr frustrierend sein, deshalb sollten Sie die folgenden Befehle ausführen:

Befehlsauflistung 2.8: Grundlegende History-Konfiguration

% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"

(Die History wird ohne folgenden Befehl nicht gespeichert)
% export SAVEHIST=$HISTSIZE

Um das Speichern von doppelten Einträgen in der History zu verhindern (zum Beispiel Befehle wie ls -l, die sehr oft während einer Sitzung eingegeben werden), kann man die Option hist_ignore_all_dups aktivieren:

Befehlsauflistung 2.9: Option um doppelte Einträge zu verhindern

% setopt hist_ignore_all_dups

Ein nützlicher Trick ist es, einzelnen Befehlen ein Leerzeichen voranzustellen, um zu verhindern, dass dieser nicht in der History gespeichert wird.

Befehlsauflistung 2.10: Verhindern, dass bestimmte Befehle nicht gespeichert werden

% setopt hist_ignore_space

(Dieser Befehl wird nicht gespeichert. Beachten Sie das zusätzliche
Leerzeichen vor dem Befehl)
%  cat /proc/cpuinfo

Sonstige Einstellungen

Sie können die Option autocd setzen, wenn Sie das lästige Schreiben des cd Befehls beim Wechsel des Verzeichnisses (zum Beispiel /etc instead of cd /etc) vermeiden möchten.

Befehlsauflistung 2.11: Aktivieren der Option autocd

% setopt autocd

Wenn Ihnen die normalen bash-ähnlichen Platzhalter nicht ausreichen, können Sie die Option extendedglob benutzen, um erweiterte Platzhalter zu aktivieren (ähnlich den regulären Ausdrücken).

Befehlsauflistung 2.12: Erweiterte Platzhalter aktivieren

% setopt extendedglob

Wenn die oben genannte Option gesetzt ist, können Sie erweiterte Platzhalter verwenden, zum Beispiel cp ^*.(tar|bz2|gz).

3.  Konfiguration speichern

zsh Einstellungen speichern

Wenn Sie die zsh wie gewünscht angepasst haben, ist es eine gute Idee, die Konfiguration als den zsh Standard für Ihr System zu speichern. Eine Möglichkeit besteht darin, die Einstellungen in das Script /etc/zsh/zshrc zu speichern. Als Alternative können Sie die Datei ~/.zshrc bearbeiten, um die Einstellungen als Standard nur für Ihren Account zu definieren.

Befehlsauflistung 3.1: Ein Beispiel der zshrc

#!/bin/zsh

# completion
autoload -U compinit
compinit

# correction
setopt correctall

# prompt
autoload -U promptinit
promptinit
prompt gentoo

4.  zsh als Standard-Shell festlegen

Variante für Benutzer mit root-Rechten

Sie können die Shell für Benutzer mit dem usermod Befehl ändern.

Befehlsauflistung 4.1: Dauerhaft zur zsh wechseln mit usermod

# usermod -s /bin/zsh userlogin

Alternative für Benutzer ohne root-Rechte

Wenn Ihr Systemadministrator die Nutzung von zsh verbietet (was eine gewagte Behauptung wäre), können Sie die bash verwenden, um zsh am Systemstart auszuführen. Alles was Sie dafür tun müssen, ist eine kleine Modifizierung der ~/.bashrc.

Befehlsauflistung 4.2: Beispiel ~/.bashrc

(Fügen Sie folgende Zeile der ~/.bashrc hinzu)
exec zsh

Eine andere Methode zum Wechseln der Shell ist die Nutzung des Befehls chsh (ein Befehl um die Login-Shell eines Benutzers zu ändern). Ein normaler Benutzer ändert dadurch die Login-Shell des eigenen Kontos. Als root können Sie die Shell von jedem Benutzer ändern.

Befehlsauflistung 4.3: Dauerhaft zur zsh wechseln mit chsh

(Ersetzen Sie "Benutzer" durch Ihren eigenen Benutzernamen)
$ chsh -s /bin/zsh Benutzer


Drucken

Seite aktualisiert 18. Oktober 2006

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieser Leitfaden zeigt Ihnen, wie man zsh schnell installiert und konfiguriert. Wenn Sie diesen Leitfaden gelesen haben, werden Sie in der Lage sein, viele zsh-Funktionen, wie z.B. die Erweiterte Tab-Autovervollständigung, Kommandokorrektu und Konfiguration der Eingabeaufforderung, zu nutzen.

Henryk Konsek
Autor

Andrew Morritt
Autor

Chris White
Bearbeiter

Peter Weller
Bearbeiter

Christian Gebler
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.