zsh Konfigurations- und Installationsleitfaden
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 |
% 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"
% 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
% 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 |
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 |
$ chsh -s /bin/zsh Benutzer
|
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|