Durch Drücken von oben kann ich zuvor eingegebene Befehle durchgehen. Ich habe jedoch bemerkt, dass wenn ich einen von ihnen ändere, dies die Geschichte verändert. Zum Beispiel, wenn ich tippe:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
Die Geschichte zeigt nun, dass der zweite Befehl echo d
nicht war echo b
. Wie behalte ich den ersten echo b
in der Geschichte?
Angenommen, ich führe einen sehr langen Befehl mit vielen Optionen aus. dann möchte ich es mit einer geringfügigen Änderung erneut ausführen, also gehe ich den Verlauf durch, um es zu finden, nehme die Änderung vor, stelle dann aber fest, dass ich es eigentlich nicht erneut ausführen muss, da ich gerade an eine andere Option gedacht habe stattdessen zu tun. dann später möchte ich zurückgehen und mich daran erinnern, was der Befehl war, den ich ausgeführt habe - aber warte, die Geschichte zeigt jetzt das Falsche!
Das kommt sehr selten vor, aber wenn doch, finde ich es wirklich irritierend. Gibt es eine Möglichkeit, die ursprüngliche Geschichte automatisch beizubehalten?
quelle
history
können Sie alle Befehle sehen. Nachdem Sie auswählen können, was Sie benötigen. Welche Shell benutzt du gerade?echo c
.Antworten:
Versuchen Sie, in Ihre
~/.inputrc
In einigen Fällen finden Sie es im Standardwert (Aus).
Es sollte erzwingen
readline
, alle Änderungen an Verlaufszeilen rückgängig zu machen, bevor bei deraccept-line
Ausführung zurückgegeben wird. (mehr Infos inman bash
).Edit:
CTRL+c
undset revert-all-at-newline on
funktioniert seitdem einwandfreibash-4.3.30
.Aber:
quelle
nano
zu verwenden :-)In der Regel:
werde es tun.
Der ursprüngliche Befehl wird gespeichert, wenn Sie den geänderten Befehl ausführen. Natürlich möchten Sie nicht wirklich ausführen, also können Sie die Zeile mit auskommentieren
#
.In Ihrem Beispiel, würden Sie dann in Ihrer Geschichte haben:
echo a
,echo b
,echo c
,# echo d
.quelle
alt-shift-3
, um die aktuelle Befehlszeile zu kommentieren, wenn Ihre Bash verwendet wirdreadline
./insert-comment
inman 3 readline
(oderman bash
) für weitere Informationen.