Home / LinuxUser / 2002 / 02 / The Answer Girl

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.

Kommandozeilen-Jongleur

The Answer Girl

Fast alles wie im Emacs

Eine unendliche Spielwiese, doch einfacher tut man sich in der Regel, wenn man – wie mit den Pfeiltasten – ein altes Kommando auf die Befehlszeile bekommt und darin nach Herzenslust herumeditieren kann. Dafür zuständig ist – man bash gibt Aufschluss – die Readline-Bibliothek, die wiederum dafür sorgt, dass Emacs-Benutzer(innen) bereits bekannte Emacs-Tastenkürzel zum Editieren der Kommandozeile benutzen können. (Der ebenfalls mögliche und in der aktuellen Shell mit set +o vi einschaltbare vi-Modus dagegen ist selbst bei Hardcore-Vi-Verfechter(inne)n kaum in Gebrauch.) Zu beachten gibt es dabei lediglich, dass nicht alles, was in einem Editor mit ausgedehnten Fähigkeiten möglich ist, auch für einen Zeilen-Editor, wie die Shell ihn mit der Kommandozeile bietet, sinnvoll ist. Der Emacs-Modus der Shell umfasst also nur einen winzigen Bruchteil der Möglichkeiten des Namensgebers.

Doch lassen Sie uns einiges ausprobieren. Da der Emacs mit [Strg-r] rückwärts sucht, sollte sich denn wohl auch in der Bash mit dieser Tastenkombination etwas anstellen lassen. Versuchen wir einmal, den ping-Befehl auf bashir aus der Beispiel-History zu kramen. Tatsächlich bringt ein [Strg-r]ba das Ergebnis

(reverse-i-search)`ba': man bash

…, das letzte eingetippte Kommando, das die Zeichenkette ba enthielt. Ein Druck auf die [Return]-Taste zum Abschicken dieses Befehls bietet sich an dieser Stelle nicht an, denn wir haben die gesuchte Kommandozeile noch gar nicht gefunden. Also vervollständigen wir unser bisheriges Suchmuster ba mit shi, und schon schlägt die Shell

(reverse-i-search)`bashi': ping bashir

vor. Sollte auch dies nicht unseren Wünschen entsprechen, hilft tatsächlich das Emacs-Abbruchkommando [Strg-x][Strg-c] (Abbrechen ohne Speichern) weiter. Doch wozu umständlich, wenn's auch einfach geht: Ein einfaches [Strg-c] (bekannt als Tastenkommando zum Beenden nicht-renitenter Vordergrundprozesse) tut es hier ebenfalls.

Doch was tun, wenn das gefundene Kommando zwar größtenteils unseren Erwartungen entspricht, aber eben doch nicht so ganz? Ein (ebenfalls nicht ganz Emacs-konformes) [Esc] sorgt dafür, dass das aktuell gefundene Kommando zum Editieren in der Kommandozeile erscheint.

Der Zielrechner heißt nicht bashir, sondern bahsir? Im Emacs tauscht [Strg-t] zwei vertauschte Buchstaben aus. Also Cursor auf's h in bashir gesetzt und [Strg-t] gedrückt, schon wechseln das h und das davorstehende s die Plätze.

Was mit Buchstaben geht, sollte auch mit ganzen Wörtern gehen. Hier kann man sich von der Faustregel leiten lassen, dass ähnliche Aktionen (manchmal) auch ähnliche Kürzel haben: Das t wie "tauschen" bleibt, doch statt [Strg] gilt es, [Alt] zu drücken. Steht der Cursor über bahsir, tauscht dieses Wort auf ein [Alt-t] hin mit seinem Vorgänger den Platz: Aus ping bahsir wird bahsir ping. Ein weiteres [Alt-t] tauscht die beiden auch wieder zurück. Zu beachten gibt es dabei lediglich, dass auch Bindestriche und Punkte hierbei als "Worttrenner" zählen: Hat man etwa den Namen einer Datei (zum Beispiel index.html) am Prompt eingegeben und kommt jetzt darauf, schlafmützigerweise den darauf anzuwendenden Befehl vergessen zu haben, kann man das vi (oder emacs oder less…) zwar dahinter schreiben…

pjung@chekov:~$ index.html vi

… und [Alt-t] drücken. Das Ergebnis ist jedoch nicht vi index.html, sondern

pjung@chekov:~$ index.vi html

Die Dateinamensendung, durch einen Punkt vom Basisnamen index getrennt, zählt als Wort und wird demzufolge gegen die Zeichenkette vi getauscht. Diese eindeutig missglückte Tauschaktion hätten wir gern rückgängig gemacht. Im Emacs geht das mit [Strg-x-u], und siehe da, auch die Bash stellt daraufhin wieder das alte index.html vi zur Schau.

Zweimal die Backspace-Taste sorgt jetzt zwar dafür, dass das vi am Ende wieder verschwindet, aber sobald ganze auszuradierende Wörter etwas länger werden, erspart ein Tastenkürzel zum Entfernen des vor dem Cursor stehenden Worts den Handgelenken einige Belastung. Also machen wir gleich Nägel mit Köpfen und begeben uns auf die Suche nach der entsprechenden Tastenkombination.

Alles meta

Nur – wonach suchen wir eigentlich? So etwas wie eine Tastenbelegungstabelle enthält die bash-Manpage leider nicht. Doch da war doch was, Readline-Bibliothek …, wenn die für die Manipulationsmöglichkeiten der Kommandozeile zuständig ist, sollte doch unter diesem Thema etwas zu finden sein. Tatsächlich gibt es einen Abschnitt READLINE, der netterweise auch gleich erklärt, warum es so schwierig ist, als unbedarfter User dieser Manpage nach Tastenkürzeln zu fahnden: Die Dokumentation verwendet für deren Angaben die Emacs-Syntax.

Abbildung 1: Der READLINE-Abschnitt der bash-Manpage (links) ist fast komplett aus der readline-Manpage abgekupfert

Das heißt, dass [Strg] mit C (wie die Beschriftung der entsprechenden englischen Taste [Ctrl]) gemeint ist, während M einen mysteriösen Meta-Key bezeichnet. Den gibt es jedoch auf PC-Tastaturen nicht. Je nach Vorkonfiguration des Rechners übernimmt die [Alt]- und/oder die in der Manpage erwähnte [Esc]-Taste seine Funktion. Und tatsächlich: Statt [Alt-t] kann auch [Esc-t] zwei Wörter vertauschen.

Allerdings, so macht die Manpage im Anschluss klar, sind alle Angaben ohne Gewähr: Sollten dokumentierte Tastenkombinationen andere Effekte als die beschriebenen haben, dann liegt das vermutlich an individuellen Einstellungen in den Readline-Konfigurationsdateien: Wenn die Umgebungsvariable INPUTRC nichts anderes sagt, kommt das persönliche Konfigurationsfile ~/.inputrc zum Zuge. Zudem besteht die Möglichkeit einer in den Manpages einiger Distributionen nicht erwähnten globalen Konfigurationsdatei /etc/inputrc.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

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...