Wie kann ich eine bearbeitete Verlaufszeile in Bash zurücksetzen?

Wie kann ich eine bearbeitete Verlaufszeile in Bash zurücksetzen?

In Bash können Sie mit den Pfeiltasten nach oben (und unten) durch den Verlauf blättern. Sie können den Befehl dann ändern, bevor Sie ihn ausführen. Manchmal habe ich den Befehl falsch geändert und möchte ihn auf den ursprünglichen Stand im Verlauf zurücksetzen. Gibt es eine Möglichkeit, dies zu tun?

Ich habe versucht, eine leere Zeile auszuführen und dann den Verlauf erneut zu durchlaufen, aber die entsprechende Zeile bleibt bearbeitet.

Antwort1

Rückgängig machen ist Cx Cu (oder C-_, wofür Sie möglicherweise C-/ eingeben müssen)

Antwort2

Die Datei, die den Bash-Verlauf enthält, ist passenderweise „~/.bash_history“ (zumindest in Ubuntu, kann in anderen Versionen anders sein). Öffnen Sie sie einfach mit Ihrem bevorzugten Texteditor. Beachten Sie, dass jeder Benutzer seine eigene .bash_history-Datei haben sollte. Beachten Sie auch, dass das vorangehende „.“ bedeutet, dass es sich um eine versteckte Datei handelt. Sie wird also nicht in einem Dateibrowser oder mit dem Befehl ls angezeigt, es sei denn, Sie verwenden sie mit -a.

Antwort3

Diese Bindung verhindert, dass nicht ausgeführte Verlaufsänderungen die Originale überschreiben:

bind 'set revert-all-at-newline on'

Beispiel:

  1. Ausführenls
  2. Pfeil nach oben drücken
  3. -AlZur Zeile hinzufügen
  4. Pfeil nach unten drücken
  5. Drücken Sie die Eingabetaste (um zu versuchen, die Änderung abzubrechen).

Ohne diese Bindung
lswird: im Verlauf durch ersetzt ls -Al, obwohl es nie ausgeführt wurde.

Mit dieser Bindung:
Das nicht Ausgeführte ls -Alverschwindet, während etwas lsübrig bleibt.

Offensichtlich bedeutet dies, dass nicht ausgeführte Änderungen an der Historieniemalsgespeichert werden (wie zshs Standardverhalten). Wenn Sie nur die Originale wiederherstellen möchtenManchmal, müssen Sie sich für eine der anderen Antworten entscheiden.

verwandte Informationen