GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bearbeite ich vorherige Zeilen in einem mehrzeiligen Befehl in Bash?

Das hängt leider von bash ab , nicht zum Terminal. Ihre Optionen sind:

  1. Verwenden Sie Semikolons anstelle von Zeilenumbrüchen, obwohl Sie selbst dann nicht jeweils eine Bildschirmzeile nach oben bewegen können, sondern Zeichen- oder Wortbewegungsbefehle verwenden müssen. (Seltsamerweise zsh Sie können sich zumindest innerhalb eines zusammengesetzten Befehls bewegen, wenn Sie den Verlauf bearbeiten, nur nicht innerhalb des aktuellen Befehl.) Manchmal fc (was Sie mit dem vorherigen Befehl in Ihren Editor wirft) ist der einfachste Weg, zusammengesetzte Befehle zu handhaben.

  2. Wenn Sie Bash verwenden, verwenden Sie die folgende Tastenkombination:

    ctrl x e
    

    Es öffnet den Befehl, an dem Sie gerade arbeiten, mit Ihrem Texteditor. Speichern Sie die Datei und beenden Sie. (Ich habe den Befehl in der Präsentation von Shell Hater gefunden.) Zsh-Benutzer haben diese Alternative.


Die Lösung besteht darin, niemals einen Befehl einzugeben, bis die Mehrfachzeile richtig ist. Geben Sie einfach Folgendes ein:Strg v Strg j wenn Sie zur nächsten Zeile wechseln möchten. Meta b um ein Wort zurückzugehen.

Gutschrift für die Antwort von @rici


Witzigerweise Strg+C ist das, wonach Sie suchen.

wenn Sie eingeschaltet sind

$ echo "foo bar
> baz
>

drücken Sie einfach Strg+C (bearbeitete Befehlszeile wird ausgesetzt) ​​und drücken Sie Nach oben (Vorgeschichte). Ihre Eingabeaufforderung lautet:(beachten Sie das Fehlen von>)

$ echo "foo bar
baz

Jetzt können Sie sich mit Links bewegen Richtig auch durch Zeilensprünge.

Es gibt nur eine Eigenart, Sie müssen beim letzten Zeichen sein, um eine weitere Zeile hinzuzufügen, also bewegen Sie sich umher, um vorhandene Zeilen zu bearbeiten (gehen Sie zum Anfang mit Strg+A ) und drücken Sie Enter wenn das reicht oder gehe zum Ende (Strg+E ), um weitere Zeilen mit Enter hinzuzufügen . Ein weiterer Nachteil ist, dass Strg+_ (undo) stellt nur Änderungen vom letzten Strg+C wieder her


Linux
  1. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  2. So zeigen Sie bestimmte Zeilen einer Datei in der Linux-Befehlszeile an

  3. Wie schreibe ich eine mehrzeilige Zeichenfolge mit Bash mit Variablen?

  4. So ersetzen Sie eine Zeichenfolge in mehreren Dateien in der Linux-Befehlszeile

  5. Wie führe ich mehrere Hintergrundbefehle in Bash in einer einzigen Zeile aus?

So verwenden Sie den Bash-Lesebefehl

So lesen Sie eine Datei Zeile für Zeile in Bash

So zeigen Sie den Bash-Verlauf ohne Zeilennummern an

So kommentieren Sie mehrere Zeilen gleichzeitig im Vim-Editor aus

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

So löschen Sie mehrere Zeilen in Vim