Navigation in der Bash

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Vorbemerkung

Solange Befehlszeilen in der Bash oder einem Terminal nicht mit ENTER bestätigt wurden, bleiben sie editierbar, genau wie in einem Editor. Bei längeren Befehlen schau ich immer noch mal drüber, um eventuelle Typos zu finden und zu beseitigen. Für das Navigieren in solchen Befehlszeilen gibt es die Bibliothek Readline, deren Funktionen an Tastenkombintionen gebunden sind.

Navigation

Die Cursorposition wird durch Fettdruck dargestellt, wenn kein Zeichen unter dem Cursor, dann mit X.

Tastenkombination Merkhilfe Bedeutung Vorher
Nachher
strg-a
POS1
a ist der Anfang Zeilenanfang abc de fghij kl
abc de fghij kl
strg-e
ENDE
end of line Zeilenende abc de fghij kl
abc de fghij kX
strg-f
-> (Pfeil rechts)
forward Zeichen vorwärts abc de fghij kl
abc de fghij kl
strg-b
<- (Pfeil links)
backward Zeichen rückwärts abc de fghij kl
abc de fghij kl
alt-f forward Wort vorwärts abc de fghij kl
abc de fghij kl
alt-b backward Wort rückwärts abc de fghij kl
abc de fghij kl
strg-@ @ sieht aus wie eine Marke Marke setzen (Position sichern) abc de fghij kl
abc de fghij kl
strg-x strg-x exchange Cursorposition mit Marke vertauschen. abc de fghij kl
abc de fghij kl

Manipulation

Der Cursor wird durch Fettdruck angezeigt, ist kein Zeichen unter dem Cursor, dann mit X.

Tastenkombination Merkhilfe Bedeutung Vorher
Nachher
strg-d delete Zeichen unter dem Cursor löschen abc de fghij kl
abc de fghj kl
strg-w kill word bis Wortanfang löschen abc de fghij kl
abc de fij kl
strg-k kill bis Zeilenende löschen abc de fghij kl
abc de fgX
strg-u kill up to begin of line bis Zeilenanfang löschen abc de fghij kl
hij kl
strg-t transpose Zeichen vor dem Cursor mit dem unter dem Cursor vertauschen abc de fghij kl
abc de fhgij kl'
alt-t transpose word Das Wort vor dem Cursor mit dem unter dem Cursor vertauschen


Die 2 Worte vor dem Cursor vertauschen
abc de fghij kl
abc fghij deXkl'

abc de fghijXkl
abc fghij deXkl

Numerische Argumente

Wird einem der Navigations- oder Manipulationsbefehle ein ESC<zahl> vorangestellt, wird dieser Befehl <zahl> mal ausgeführt.

Beispiel:

Tastenkombination Merkhilfe Bedeutung Vorher
Nachher
ESC 3 strg-d delete 3 mal Zeichen unter dem Cursor löschen abc de fghij kl
abc de fgXkl
ESC 2 strg-w kill word 2 mal bis Wortanfang löschen abc de fghij kl
abc hij kl

Hinweise:

  • Die Blanks vor und nach der Zahl werden nicht eingegeben!
  • Soll das Argument mehrstellig sein, muss jede Ziffer mit führendem ESC angegeben werden: ESC 2 ESC 3 ergibt das Argument 23

Lösch-Ringpuffer

  • (Fast) jedes Lösch-Kommando führt dazu, dass in einen Ringspeicher die gelöschten Zeichen als ein Element eingetragen wird.
  • Mit strg-y wird der letzte, mit ESC <n> strg-y der n-te Eintrag des Rings vor der Cursorposition eingefügt.

Beispiel:

Tastenkombination Merkhilfe Bedeutung Vorher
Nachher
ESC 2 strg-w kill word 2 mal bis Wortanfang löschen. Im Ringpuffer steht ['de fg'] abc de fghij kl
abc hij kl
strg-e str-w Zum Zeilenende. Voriges Wort löschen. Im Ringpuffer steht ['kl', 'de fg'] abc hij kl
abc hijX
ESC 2 strg-y strg-y yank Zweitletzen Eintrag aus dem Ringpuffer einfügen. abc hijX
abc hijde fgX
strg-y yank Letzen Eintrag aus dem Ringpuffer einfügen. abc hijde fgX
abc hijde fgklX

Suche im Zeilenpuffer

Im Zeilenpuffer kann man mit strg-r inkrementell rückwärts suchen: Nach strg-r gibt man einen Suchstring ein, wobei immer die letzte passende Zeile in die Anzeige kommt. Drückt man erneut strg-r, wird der bisherige Suchstring genutzt, aber die "nächst vorigen" passenden Zeile angezeigt, wenn es eine solche gibt.

Mit strg-s wird analog im Zeilenpuffer vorwärts gesucht.

Beispiel:

Im Zeilenpuffer seien:

./VNCtight.sh 
cat Vncserver.sh 
cd /home
cat VNCtight.sh 
cd /usr/local
vi todo

Der Cursor wird durch Fettdruck angezeigt:

Eingabe Anzeige Kommentar
vi todo Ausgangsposition
strg-r vi todo Einleitung der Suche, noch keine Wirkung
V cat VNCtight.sh Letzte Zeile mit V wird angezeigt
strg-r cat Vncserver.sh Suche mit V wiederholen
strg-r ./Vncserver.sh Suche mit V wiederholen