Next: Der Kommandozeilenspeicher (history)
Up: bash
Previous: Interaktive Shell und
Alle Tastatureingaben, die zeilenweise erfolgen, können mit bestimmten
Steuerzeichen ``editiert'' werden. Mit dem Steuerzeichen CONTROL-U kann normalerweise die komplette Zeile gelöscht werden,
CONTROL-C bricht die Eingabe ab, CONTROL-D
steht für das
Dateiende ( EOF, End Of File), also für das Ende der interaktiven
Eingabe insgesamt, CONTROL-H oder BACKSPACE löscht das
letzte Zeichen.
Diese primitiven Funktionen werden vom Terminaltreiber des Kernels im
``cooked''-Modus direkt angeboten. Die bash bietet
darüber hinaus einen Kommandozeileneditor, der in Umfang und Funktion
den Standardeditoren vi und emacs nachempfunden
ist.
Sie können die Funktionen des Kommandozeileneditors Ihren eigenen
Bedürfnissen anpassen (-> Seite
).
Zwischen den Standardbelegungen kann mit dem set-Shellkommando
(-> Seite
)
umgeschaltet werden. Normalerweise arbeitet der
Kommandozeileneditor im emacs-Modus.
Die Editorbefehle im emacs-Modus benutzen zwei Sondertasten: die
CONTROL- und die Metataste. Die CONTROL-Taste ist auf der
PC-Tastatur in der linken unteren Ecke (manchmal STRG). Eine
Metataste ist unter diesem Namen in der Regel nicht vorhanden.
Meistens wird die linke ALT-Taste mit dieser Funktion belegt.
Wenn das nicht der Fall ist, kann die ESCAPE-Taste (ESC)
benutzt werden. Während CONTROL und ALT gemeinsam mit dem
Buchstaben gedrückt werden müssen, wird ESC vor dem Buchstaben
gedrückt (zwei Anschläge).
In den Erklärungen wird CONTROL mit ` C-' und die Metataste
mit ` M-' gekennzeichnet. In manchen Fällen müssen CONTROL und ALT zusammen gedrückt werden, das wird dann durch
M-C- symbolisiert.
Positionieren der Einfügemarke
- Zeilenanfang (C- a)
- setzt die Einfügemarke an den Anfang
der Kommandozeile.
( beginning-of-line)
- Zeilenende (C- e)
- setzt die Einfügemarke an das Ende der
Kommandozeile. ( end-of-line)
- Zeichen vorwärts (C- f)
- setzt die Einfügemarke ein
Zeichen nach rechts. Diese Funktion ist auch mit der rechten
Pfeiltaste im Cursorblock erreichbar. ( forward-char)
- Zeichen rückwärts (C- b)
- setzt die Einfügemarke ein
Zeichen nach links. Diese Funktion ist auch mit der linken
Pfeiltaste im Cursorblock erreichbar. ( backward-char)
- Wort vorwärts (M- f)
- setzt die Einfügemarke an das Ende
des aktuellen Wortes oder ein Wort weiter (wenn die Einfügemarke
zwischen zwei Wörtern steht). (
forward-word)
- Wort rückwärts (M- b)
- setzt die Einfügemarke an den
Anfang des aktuellen Wortes oder des vorhergehenden Wortes (wenn die
Einfügemarke zwischen zwei Wörtern steht). ( backward-word)
- Bildschirm löschen (C- l)
- löscht alle Zeichen vom
Bildschirm. Die Einfügemarke erscheint danach auf der ersten
Zeile. ( clear-screen)
Automatische Erweiterung von Kommando- und
Dateinamen
- erweitern (TAB)
- versucht die bis zu diesem Editorbefehl geschriebene
Kommandozeile sinnvoll zu ergänzen. Das geschieht, indem die
Zeichenfolge des letzten Wortes bis zur Einfügemarke mit den Namen
von Kommandos, Dateien und Verzeichnissen verglichen und das Wort
so weit ergänzt wird, wie eine eindeutige Zuordnung möglich ist. Das
erste Wort eines einfachen Kommandos wird dabei nur mit den
Kommandonamen in den PATH-Verzeichnissen verglichen, die
weiteren Wörter eines einfachen
Kommandos werden dagegen nur noch mit Datei- und Verzeichnisnamen im
aktuellen Verzeichnis (Arbeitsverzeichnis) verglichen. In einigen
Fällen (z. B. bei Pipelines) werden auch die ersten
Wörter der folgenden Kommandos auf diese Weise richtig zugeordnet.
Probieren Sie diese Funktion des Kommandozeileneditors einfach aus.
Sie werden schnell merken, wie mächtig und vielseitig sie ist.
Wenn ein Wort mehreren bekannten Namen zugeordnet werden kann, wird
es nur so weit ergänzt, wie sich die Namen nicht unterscheiden. Wenn
dann ein zweites Mal TAB gedrückt wird, werden alle erkannten
Möglichkeiten angezeigt.
( complete)
- mögliche Erweiterungen (M -?)
- zeigt alle als sinnvoll
erkannten Erweiterungen an. Als sinnvoll gilt hier wieder ein
Kommandoname als erstes Wort eines einfachen Kommandos und ein
Datei- oder Verzeichnisname für jedes weitere Wort. (
possible-completions)
- nur Kommandoerweiterung (M -!)
- versucht, das Wort vor dem
Cursor zu einem Kommandonamen zu erweitern. ( complete-command)
- mögliche Kommandoerweiterungen (C- x !)
- gibt eine Liste
aller als mögliche Erweiterungen für das Wort vor der Einfügemarke
in Frage kommenden Kommandonamen aus. ( possible-command-completions)
- nur Dateinamenerweiterung (M -/)
- vergleicht das Wort bis
zum Cursor nur mit Datei- und Verzeichnisnamen. Werden
passende Namen gefunden, findet eine Erweiterung wie beim TAB-
Editorkommando statt. (
complete-filename)
- mögliche Dateinamen (C- x /)
- zeigt alle als
sinnvoll erkannten Datei- und Verzeichnisnamen, ohne jedoch eine
Erweiterung auszuführen. ( possible-filename-completions)
- Benutzernamenerweiterung (M-
~
)
-
versucht, das Wort bis zur Einfügemarke zu einem Benutzernamen zu
erweitern. ( complete-username)
- mögliche Benutzernamen (C- x
~
)
-
zeigt alle möglichen Benutzernamen, auf die das Wort bis zur
Einfügemarke paßt. ( possible-username-completions)
- Variablenerweiterung (M -$)
- versucht, das Wort bis zur
Einfügemarke zu einem Variablennamen zu erweitern. ( complete-variable)
- mögliche Variable (C- x $)
- zeigt alle möglichen
Variablennamen an, auf die das Wort bis zur Einfügemarke paßt. (
possible-variable-completion)
- nur Hostnamenerweiterung (M -@)
- erweitert das Wort unter
der Einfügemarke zu einem Hostnamen. Dieser Name wird aus der Datei
/etc/hosts genommen, wenn in der Shellvariablen
hostname_completion_file keine andere Datei angegeben ist.
( complete-hostname)
- mögliche Hostnamen (C- x @)
- zeigt alle möglichen
Hostnamenerweiterungen. ( possible-hostname-completions)
- Erweiterung aus der History (M-TAB)
- versucht, das Wort vor
dem Cursor aus dem Historyspeicher zu ergänzen. (
dynamic-complete-history)
- Erweiterung in Klammern (M- {)
- schließt die Liste der
möglichen Dateinamenerweiterungen in Klammern ein, so daß die
Shell sie zu einer Liste dieser Namen erweitern kann. (
complete-into-braces)
Änderungen des Textes
- Zeichen löschen (C- d)
- löscht das Zeichen unter dem
Cursor. Wenn CONTROL-d als erstes Zeichen einer leeren
Kommandozeile eingegeben wird, erzeugt diese Tastenkombination ein
EOF-Zeichen für das Ende der interaktiven
Eingabe.
( delete-char)
- letztes Zeichen löschen (BACKSPACE)
- löscht das Zeichen
vor dem Cursor. ( backward-delete-char)
- wörtlich einfügen (C- q, C- v)
- wird benutzt um CONTROL-Zeichen in die Kommandozeile zu schreiben, die
normalerweise durch den Editor abgefangen und bearbeitet werden.
( quoted-insert)
- Tabulator einfügen (M-TAB)
- schreibt ein TAB in die
Kommandozeile. ( tab-insert)
- Text einfügen ( a, b, A, 1, ?,
... )
- schreibt die Tastatursymbole (Buchstaben) in die
Kommandozeile, wie sie von der Tastatur gelesen werden. Hinter
dieser etwas verklausulierten Formulierung verbirgt sich die Eingabe
eines normalen Buchstabens. ( self-insert)
- zwei Zeichen vertauschen (C- t)
- vertauscht das Zeichen
vor der Einfügemarke mit dem Zeichen unter der Einfügemarke.
Die Einfügemarke wandert außerdem um eine Stelle weiter. Wenn die
Einfügemarke am Zeilenende angekommen ist, werden die beiden Zeichen
vor der Einfügemarke vertauscht. ( transpose-chars)
- zwei Wörter vertauschen (M- t)
- vertauscht das Wort unter
der Einfügemarke mit dem Wort vor der Einfügemarke bzw. das Wort
nach der Einfügemarke mit dem Wort vor der Einfügemarke. Die
Einfügemarke steht danach hinter dem letzten der vertauschten
Wörter. Wenn die Einfügemarke bereits am Ende der Kommandozeile
steht, werden die beiden Wörter vor der Einfügemarke vertauscht.
( transpose-words)
- GROSSBUCHSTABEN (M- u)
- wandelt alle Buchstaben des Wortes
von der Einfügemarke an in Großbuchstaben um. (
upcase-word)
- kleinbuchstaben (M- l)
- wandelt alle Buchstaben des Wortes
von der Einfügemarke an in Kleinbuchstaben um. (
downcase-word)
- Großschreibung (M- c)
- wandelt den Buchstaben unter der
Einfügemarke oder den ersten Buchstaben des folgenden Wortes
in Großbuchstaben um, die folgenden Buchstaben bis zum Wortende alle
in Kleinbuchstaben. Anschließend steht die Einfügemarke hinter dem
umgewandelten Wort. ( capitalize-word)
Ausschneiden und Einfügen
- bis zum Zeilenende ausschneiden (C- k)
- löscht die
restliche Kommandozeile von der Einfügemarke an und
speichert sie im Ausschneide-Ringspeicher. ( kill-line)
- vom Zeilenanfang ausschneiden (normalerweise ohne Belegung)
-
schneidet den Anfang der Kommandozeile bis zur Einfügemarke aus.
Dieses Kommando ist normalerweise nicht mit einer Tastenkombination
verbunden. ( backward-kill-line)
- Rest des Wortes ausschneiden (M- d)
- schneidet von der
Einfügemarke an ein Wort aus und speichert es im Ringspeicher. Als
Wort werden hier alle Zeichen von der Einfügemarke an bis zum
nächsten Sonderzeichen betrachtet. Eine beliebig lange Folge von
Sonderzeichen unter oder unmittelbar nach der Einfügemarke wird
nicht als Worttrenner behandelt. ( kill-word)
- Anfang des Wortes ausschneiden (M-BACKSPACE)
- schneidet
alle Zeichen vor der Einfügemarke bis zum nächsten
Sonderzeichen aus und speichert sie im Ringspeicher. Das Zeichen
unter der Einfügemarke wird nicht ausgeschnitten. Eine beliebig
lange Folge von Sonderzeichen unmittelbar vor der Einfügemarke wird
nicht als Worttrenner behandelt. (
backward-kill-word)
- vom Zeilenanfang bis zur Einfügemarke ausschneiden (C- u)
-
schneidet den Anfang der Kommandozeile bis zur Einfügemarke
aus und speichert ihn im Ringspeicher. Das Zeichen unter der
Einfügemarke wird nicht ausgeschnitten. ( unix-line-discard)
- Anfang des Wortes ausschneiden (C- w)
- schneidet alle
Zeichen vor der Einfügemarke bis zum nächsten Leerzeichen aus und
speichert sie im Ringspeicher. ( unix-word-rubout)
- ausgeschnittenes Stück einfügen (C- y)
- fügt das zuletzt
in den Ausschneide-Ringspeicher geschriebene Stück vor der
Einfügemarke ein. Das Stück wird dabei aus dem Ringspeicher
entfernt. ( yank)
- Ausschneide-Ringspeicher rotieren (M- y)
- ersetzt das
zuletzt eingefügte Stück durch das vor diesem Stück in den
Ringspeicher eingefügte Stück der Kommandozeile. Das zuvor
ersetzte Stück wird wieder in den Ringspeicher eingefügt, das
aktuell ersetzte Stück daraus entfernt.
( yank-pop)
Argumente
- numerisches Argument (M- 0, M- 1, ... ,
M-- )
- wird als numerisches Argument
für das folgende Editorkommando benutzt. In der Regel wird durch
dieses Argument die Anzahl der Wiederholungen dieses
Editorkommandos bestimmt. (
digit-argument)
- universelles Argument (nicht Belegt)
- entspricht dem
gleichnamigen Tastaturbefehl vom emacs-Editor. Es ist
allerdings keiner Tastenkombination zugeordnet. (
universal-argument)
Verschiedenes
- einlesen der Initdatei (C- x C- r)
- veranlaßt die
Shell, die .inputrc-Datei neu einzulesen. ( re-read-init-file)
- Metazeichen (ESC)
- veranlaßt die Shell, das nächste
Zeichen als Metazeichen zu interpretieren. Wichtig, wenn keine
Metataste auf der Tastatur ausgewiesen ist: bei einer PC-Tastatur
ist meist die linke ALT-Taste mit der Metafunktion belegt!
( prefix-meta)
- Kommando zurück (C-_)
- nimmt das zuletzt ausgeführte
Editorkommando zurück. Es werden alle für eine Kommandozeile
gegebenen Editorkommandos gespeichert und sind auf diese Weise
nacheinander reversibel. ( undo)
- alles zurück (M- r)
- stellt den ursprünglichen Zustand der
Kommandozeile wieder her, nimmt also alle Editorkommandos zurück.
( revert-line)
- emacs Modus (C- e)
- schaltet aus dem vi-Modus in den
emacs-Modus. ( emacs-editing-mode)
Next: Der Kommandozeilenspeicher (history)
Up: bash
Previous: Interaktive Shell und