Home / LinuxUser / 2005 / 09 / Wechsel zur Zsh

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Shell++

Wechsel zur Zsh

Interessante Optionen

Die Zsh besitzt einige Optionen, die Sie bei Bedarf mit dem Befehl setopt aktivieren. Soll die Option dauerhaft gelten, tragen sie setopt samt der gewünschten Parameter am besten in die zshrc ein. Dabei lässt sich der Parameternamen mit Groß- oder Kleinbuchstaben eingeben und meist auch durch Unterstriche gliedern. Zsh versteht hier also beispielsweise autocd ebenso wie AUTOCD oder Auto_cd.

Eine Liste aller Optionen finden Sie in der Manpage zshoptions. Eine gesetzte Option deaktivieren Sie wieder, indem Sie dem Parameternamen einfach ein "no" voranstellen: setopt no_Auto_cd oder setopt NOAUTOCD.

Um herauszufinden, welche Optionen gesetzt wurden, reicht ein einfaches setopt ohne Angabe eines Parameters. Zudem unterstützt setopt auch die Vervollständigung mittels [Tab] ("Tab Completion"). Möchten Sie zum Beispiel eine vollständige Liste aller Optionen angezeigt bekommen, drücken Sie nach Eingabe von setopt zweimal die Tabulator-Taste (siehe Abbildung 2). Die wichtigsten der rund 150 Optionen lauten:

  • AUTO_CD – Ist das erste Wort der Eingabe kein Befehl, so versucht Zsh in ein Verzeichnis dieses Namens zu wechseln. Mithilfe der Tab Completion macht das cd nahezu überflüssig.
  • LIST_PACKED – Die Option verkleinert per Autovervollständigung ausgegebene Listen durch Anpassen des Spaltenabstands.
  • SHARE_HISTORY – Gemeinsame Benutzung der Histories von mehreren Z-Shells; Befehle aus einer anderen laufenden Zsh werden dabei in die eigene History übernommen.
  • GLOB – Die Z-Shell versucht, Muster (zum Beispiel '*') aufzulösen. Bei einem ls * ersetzen Sie durch Drücken von [Tab] also die Wildcard durch alle Dateien ersetzen.
  • GLOB_COMPLETE – Normalerweise werden beispielsweise beim Drücken von [Tab] nach einem ls * alle Dateien an die Stelle der Wildcard gesetzt. Ist GLOB_COMPLETE aktiviert, wählen Sie durch mehrmaliges Drücken von [Tab] die gesuchte Datei aus (siehe auch MENU_COMPLETE).
  • MENU_COMPLETE – Bei der Tab Completion fragt Zsh vor der Ausgabe verschiedener Möglichkeiten nicht mehr nach, sondern fügt sofort den ersten Treffer ein. Bei mehreren Treffern schalten Sie dann die einzelnen Ergebnisse mit [Tab] durch.
  • CORRECT_ALL – Die Zsh versucht falsche Eingaben, wie zum Beispiel einfache Tippfehler, zu korrigieren.
  • HUP – Beim Beenden der Shell wird ein HUP-Signal an die laufenden Prozesse geschickt. Ist diese Option nicht gesetzt, können Prozesse einfach weiter laufen.
  • BEEP – Legt fest, ob die Z-Shell bei einer falschen Eingabe einen Piepston über den PC-Lautsprecher ausgibt.

Abbildung 2: Möchten Sie sich sämtliche verfügbaren Optionen der Z-Shell anzeigen lassen, dann rufen Sie dazu "setopt" auf und drücken zwei Mal die Tabulator-Taste.

Globbing

Zu den interessantesten Features der Zsh zählt ihr sehr mächtiges Globbing-System. Der Begriff Globbing leitet sich von der Funktionsweise des Tools glob ab und bezeichnet das Finden von Dateien und Ordnern nach Mustern, zum Beispiel mit Regulären Ausdrücken [2].

Mit dem Befehl setopt EXTENDEDGLOB aktivieren Sie das erweiterte Globbing: Sie können dann beispielsweise auch mit Argumenten wie <x-y> Bereiche von Zahlen auswählen. Zudem lassen sich mit Parametern wie (foo|bar) Argumente gruppieren, mit "**" stoßen Sie eine Rekursion durch den Verzeichnisbaum an:

% chmod 644 ~/public_html/ /*.h↩
tml(.)

Mit zusätzlichen so genannten Qualifiern modifizieren und verfeinern Sie das Suchergebnis. Dazu hängen Sie einen Qualifier nach dem Prinzip Muster(Qualifier) an das Suchmuster an. Möchten Sie etwa prüfen, bei welchen Programme in /usr/bin das SETUID-Bit gesetzt ist, geben Sie dazu den Qualifier "s" an:

ls /usr/bin/*(s)

Eine vollständige Liste der möglichen Qualifier finden Sie in der Manpage zshexpn. Die wohl am häufigsten eingesetzen Qualifier sind:

  • "@" – filtert das Ergebnis nach symbolischen Links.
  • "w" – gibt nur beschreibbaren Dateien aus.
  • "W" – findet nur von allen Usern beschreibbare Dateien.
  • "U" – filtert nach eigenen Dateien.

Abbildung 3 demonstriert einige Anwendungsmöglichkeiten für das Zsh-Globbing. Sie können das Ergebnis mit einem vorangestellten "^" negieren. So zeigt ls *(^U) ausschließlich solche Dateien an, die anderen Benutzern gehören.

Abbildung 3: Globbing und Qualifier machen die Dateisuche in der Z-Shell zu einem Kinderspiel.

Haben Sie für Ihre Zsh die Option EXTENDEDGLOB gesetzt, erweist sich der Modifier noglob in manchen Fällen als äußerst hilfreich. Er deaktiviert das Globbing für den darauf folgenden Befehl. So lädt der folgende Befehl nicht etwa die unter der URL vorhandene Seite herunter, sondern verursacht eine Fehlermeldung:

% wget http://www.foobar.de/index.php?action=test
zsh: no matches found: http://ww↩
w.foobar.de/index.php?action=test

Die Zsh interpretiert hier bei aktiviertem Globbing das Fragezeichen als Einleitung für ein Suchmuster. Mangels zu dem vermeintlich folgenden Muster passender Dateien gibt sie eine Fehlermeldung aus.

Setzt Sie aber dem Kommando ein noglob voraus, deaktiviert dies die Expansion nach Dateinamen – der Parameter wird also keiner entsprechenden Expansion unterworfen. Er geht statt dessen "ungefiltert" an wget, das dann die gewünschte Webseite herunterlädt:

% noglob wget http://www.foobar.de/index.php?test
--11:41:25--  http://www.foobar.↩
de/index.php?action=test
           => `index.php?action=↩
test'
(…)
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...