Zsh - die magische Shell

von Sven Guckes und Julius Plenz

feedback(at)zshbuch(dot)org

Die Geschwindigkeit, mit der gestandene Unixer auf der Kommandozeile mit der Shell hantieren, lässt die meisten Benutzer grafischer Oberflächen alt aussehen. Von den vielen Arbeitserleichterungen, die eine Shell bietet, kennen "Normalnutzer" jedoch oft gerade einmal das automatische Vervollständigen von Befehlen und Dateinamen oder das Hervorkramen älterer Kommandos.

Erfahrene User nutzen die Shell als Programmiersprache, um sich mit Shell-Skripten die Arbeit zu erleichtern, und setzen auf deutlich mehr Komfort als die Unix-Standardshell Bash bietet. So wurde die Zsh zum Geheimtipp für alle Kommandozeilennutzer und beinahe schon zum Muss für Sysadmins.


Bucheintrag | Inhaltsverzeichnis | Presse | Interne | Credits | Fundsachen | Links | Kontakt

[ZshBuch Cover]

Bucheintrag

Zsh - die magische Shell
Sven Guckes + Julius Plenz
ISBN 978-3-937514-59-8,
deutsch, ca. 200 Seiten, brosch.
Kategorie: "Synopsis", EUR 24.90

Inhaltsverzeichnis

Seite Abschnitt  Titel
 11        Vorwort
 15 1      Einleitung
 15 1.1    Installation, Versionen und UTF-8
 16 1.2    Wichtige Fachbegriffe
 17 1.3    Spezielle Zeichen und Quoting
 18 1.4    Tab-Vervollständigung
 18 1.5    Der erste Start der Z-Shell
 19 1.5.1  Z-Shell als Standard-Shell
 20 1.6    Wie die Z-Shell konfiguriert wird
 20 1.6.1  Shell-Optionen
 21 1.6.2  Umgebungsvariablen
 21 1.6.3  Einstellungen permanent speichern
 24 1.6.4  Die Konfiguration portabel halten
 25 1.6.5  Aus Konfigurationsdateien lernen
 25 1.7    Das Prompt
 26 1.7.1  Prompt konfigurieren
 31 1.7.2  Prompt an der rechten Seite des Terminals
 31 1.7.3  Vorkonfigurierte Prompts: promptinit
 32 1.7.4  Weitere Prompts
 33 1.7.5  Optionen
 35 2      Kommandos schneller eingeben
 35 2.1    Aliase
 37 2.1.1  Dateien anzeigen: ls
 38 2.1.2  Suffix-Aliase
 38 2.1.3  Globale Aliase
 40 2.2    Funktionen
 40 2.2.1  Bereits definierte Funktionen anzeigen und ändern
 40 2.2.2  Auf Argumente zugreifen
 41 2.2.3  Wie Argumente übergeben werden
 42 2.2.4  Einzeilige Funktionen: ¿Erweiterte Aliase"
 42 2.2.5  Mehrere Namen: Über welchen wurde die aufgerufen?
 43 2.2.6  Der Rückgabewert
 43 2.2.7  Hilfe innerhalb von Funktionen
 44 2.2.8  Spezielle Funktionen
 45 2.2.9  Funktionen in Dateien auslagern und automatisch laden
 46 2.2.10 Lokale Optionen .
 47 2.2.11 Funktionen in Bytecode kompilieren
 47 2.3    Expansion
 48 2.3.1  Brace Expansion
 50 2.3.2  Dateinamen-Expansion
 52 2.3.3  Kommandosubstitution
 53 2.3.4  Substitution arithmetischer Ausdrücke
 53 2.3.5  Prozess-Substitution
 57 3      Dateien, Ausgaben und Programmaufrufe
 57 3.1    Globbing
 58 3.1.1  Einfaches Globbing
 63 3.1.2  Erweitertes Globbing
 66 3.1.3  Globbing-Einstellungen ändern: Flags
 68 3.1.4  Auswahlkriterien: Qualifier
 76 3.1.5  Beispiele aus man zsh-lovers
 77 3.1.6  Musterüberprüfung
 78 3.2    Ein- und Ausgabeumleitung
 78 3.2.1  Kommandos verknüpfen: Pipe
 79 3.2.2  Ausgabe in eine Datei umleiten
 81 3.2.3  Fehlermeldungen in eine Datei umleiten
 82 3.2.4  Eingabe umleiten
 83 3.2.5  Umleitung in mehrere Dateien: multios
 84 3.2.6  Ausgabe zur interaktiven Verwendung speichern
 85 3.3    Unterprozesse: Kommandos parallel laufen lassen
 86 3.3.1  Tabelle aller kontrollierten Prozesse'
 87 3.3.2  Kommandos nicht als Unterprozesse der Shell starten
 88 3.3.3  Prozesse am Ende einer Sitzung entkoppeln
 89 3.3.4  Kommandos in einer Subshell ausführen
 91 4      Die Z-Shell interaktiv verwenden
 91 4.1    Tastenkürzel und der Z Line Editor
 91 4.1.1  vi oder emacs
 95 4.1.2  bindkey und Widgets: Tastenkürzel anzeigen und ändern
 96 4.1.3  Parameter, Aliase und Funktionen editieren
 97 4.2    Die History
 97 4.2.1  Konfiguration
100 4.2.2  Befehle mit fc aus der History holen
103 4.2.3  Interaktive Expansion
108 4.3    Automatische Vervollständigung
108 4.3.1  Voraussetzungen
109 4.3.2  Wenn mehrere Treffer auftreten
110 4.3.3  Andere Vervollständigungen
112 4.3.4  Die Mechanismen
113 4.3.5  Konfiguration durch zstyle
119 4.3.6  Die Syntax von zstyle
123 4.3.7  Die Wahl des Completers
126 4.3.8  Completion bei bestimmten Programmen anpassen
130 4.3.9  Shell-Optionen
131 4.3.10 Tastenkombinationen
133 5      Skripting: Kontrollstrukturen und Variablen
134 5.1    Kontrollstrukturen: Schleifen und if-Abfragen
134 5.1.1  Bedingungen aufstellen: if-Abfragen
138 5.1.2  case-Statement
139 5.1.3  Schleifen: Befehle mehrmals wiederholen
143 5.2    Parameter: Variablen und Arrays
144 5.2.1  Gültigkeitsbereich von Variablen
144 5.2.2  Arrays
148 5.2.3  Arrays auf Zeichenketten abbilden und umgekehrt
149 5.2.4  Assoziative Arrays
151 5.3    Parameter Expansion
159 6      Widgets und Completions selbst erstellen
159 6.1    ZLE-Widgets erstellen
160 6.1.1  Parameter innerhalb von Widgets
161 6.1.2  Vordefinierte Widgets aufrufen
161 6.1.3  Leertaste neu belegen
162 6.1.4  Vordefinierte Widgets modifizieren
163 6.2    Eigene Completions schreiben
163 6.2.1  Treffer zu einer Liste hinzufügen: compadd
164 6.2.2  Hilfsfunktionen
174 6.2.3  Completion-Funktionen in Dateien auslagern
175 6.2.4  Konnte etwas vervollständigt werden?
176 6.2.5  Variablen mit besonderer Bedeutung
177 6.2.6  Hilfsfunktionen, die Treffer zur Verfügung stellen
177 6.2.7  Typischer Aufbau einer Completion-Funktion
180 6.2.8  Selbst geschriebene Completions an die Entwickler senden
181 Anhang 
183 A      Hilfe finden
184 A.l    Wie liest man die Manpage?
184 A.1.1  Die verschiedenen Sektionen
185 A.1.2  Pager: less
187 A.1.3  Manpages online
187 A.2    Community
188 A.2.1  Mailingliste
188 A.2.2  IRC-Kanal
189 A.2.3  Wiki
189 A.2.4  Webseiten
191 B      compctl - das alte Completion-System
194 B.l    Dateien nach Muster vervollständigen
195 B.2    Beliebige Vervollständigungen definieren
196 B.3    Erweiterter Modus
201        Index

Presse

c't 5/2009 Rezension von $NAME
Bücher: Photoshop, zsh, Kartografie, S. 204
http://www.heise.de/ct/inhalt.shtml

 "Benutzer wechseln altgewohnte Werkzeuge
  wie eine Shell nur ungern aus. Guckes
  und Plenz legen ueberzeugend dar, dass
  die Z-Shell den Aufwand wert ist."

Interne Links

Hier sind die Links aus dem Buch:
zsh> grep -h -o 'http://[^{})\ ]\+' *.tex | sort | uniq | nl -w 2 -s "  "
 1  http://de.wikipedia.org/wiki/
 2  http://de.wikipedia.org/wiki/Skriptsprache
 3  http://en.wikipedia.org/wiki/Bash
 4  http://example.com/bild.jpg
 5  http://example.com/email-liste.txt
 6  http://fsinfo.noone.org/~abe/Bloedsinn/Teppich.html
 7  http://gnupg.org/
 8  http://grml.org/zsh/zsh-lovers.1
 9  http://grml.org/zsh/zsh-lovers.html
10  http://grml.org/zsh/zsh-lovers.pdf
11  http://man.cx
12  http://man.cx/zshcompsys
13  http://mutt.org/
14  http://openssh.com/
15  http://pcre.org/
16  http://strcat.de/zsh/
17  http://wipe.sourceforge.net/
18  http://www.dotfiles.com/
19  http://www.dotfiles.org/
20  http://www.example.com/buch/kapitel
21  http://www.example.com/galerie/bild
22  http://www.example.com/grosse
23  http://www.grml.org/
24  http://www.guckes.net/zsh/
25  http://www.infodrom.north.de/
26  http://www.michael-prokop.at/computer/tools
27  http://www.microsoft.com/germany/technet/scriptcenter/hubs/msh.mspx
28  http://www.microsoft.com/germany/technet/scriptcenter/topics/Vista/gadgets-pt1.mspx
29  http://www.rayninfo.co.uk/tips/zshtips.html
30  http://www.regular-expressions.info/reference.html
31  http://www.strcat.de/zsh/
32  http://www.zshbuch.org/emails-liste.txt
33  http://www.zshwiki.org/
34  http://zshbuch.org/
35  http://zshbuch.org/config/
36  http://zsh.org/
37  http://zsh.sourceforge.net/FAQ/
38  http://zsh.sourceforge.net/Guide/

Credits

Vielen Dank an die folgenden Menschen fuer ihren Feedback:

Fundsachen

Re: zshell
Gesendet von vicbrother am Do, 7. Mai um 14:55

Mit der Zsh steht man direkt mit Gott in Kontakt.
Alles was die Zsh anzeigt hat den Stellenwert der Lade.
Die Zsh hat eine eigene Intelligenz unterwirft sich aber dem
Guru vor dem Bildschirm.
Das in der Zsh enthaltene Zen macht sehr gluecklich.
Jede Eingabe in die Zsh kann mit einem Ton bestaetigt werden
- umso schneller man tippt, desto mehr redet sie mit dir.
Quelle

Links

Weitere Links:

Kontakt

Julius Plenz     plenz(at)zshbuch.org
Sven Guckes     guckes(at)zshbuch.org