Ich benutze Bash und möchte vermeiden, dass einige Befehle im Verlauf gespeichert werden.
- Ist das nur für den nächsten Befehl möglich?
- Ist es möglich, das für die gesamte Sitzung zu tun?
Ich benutze Bash und möchte vermeiden, dass einige Befehle im Verlauf gespeichert werden.
Antworten:
und ich habe mich gerade an eine andere antwort erinnert, diese ist die eigentliche antwort auf deine frage.
Wenn Sie in HISTCONTROL "Ignoranz" haben, merkt sich Bash keine Zeile, die mit einem Leerzeichen beginnt. Es wird nicht einmal im Verlauf der aktuellen Shell angezeigt, geschweige denn in $ HISTFILE gespeichert.
Ich habe zB export HISTCONTROL = 'ignoreboth: erasedups' in meinem ~ / .bashrc
Hier sind die Details aus der Bash-Manpage:
quelle
Hier sind ein paar Lektionen aus der Geschichte, die ich durch Googeln gelernt habe:
Sie können den Verlauf so einstellen, dass bestimmte Zeichenfolgen ignoriert werden. In diesem Beispiel habe ich die Befehle ls, passwd und alle Befehle mit dem Präfix "Leerzeichen" ignoriert.
Um den Verlauf für Ihre Sitzung zu deaktivieren, können Sie Folgendes ausführen:
Referenz
quelle
Wenn Sie nur den letzten Befehl aus dem Verlauf entfernen möchten, können Sie drücken Up-arrow, gefolgt von Ctrl - U(Löschen zum Zeilenanfang) und dann Up-arrowerneut.
Sie können auf diese Weise jede einzelne Zeile aus dem Verlauf löschen. Verwenden Sie einfach den Aufwärtspfeil oder die Suche oder etwas anderes, um es zur aktuellen Befehlszeile zu machen, die gerade bearbeitet wird, und drücken Sie Ctrl - Udann und dann Up-arrowoder Down-arrow, um zu einer anderen Verlaufszeile zu wechseln.
Ich habe das vor einem Tag zufällig entdeckt. Ich habe keine Ahnung, ob es dokumentiert ist oder nicht.
Im Allgemeinen ist es jedoch weniger mühsam, den Verlauf der aktuellen Shell überhaupt nicht zu speichern:
quelle
Sie können die
HISTFILE
Variable deaktivieren . Vonman bash
:Ich glaube nicht, dass dies verhindert, dass der Befehl in der lokalen Shell-Historie erscheint, bevor die Shell beendet wird.
quelle
Mache ich manchmal
quelle
Ich sehe, dass niemand diese Methode geschrieben hat, also werde ich.
history -d
löscht den genannten Eintrag aus dem Verlauf.HISTCMD
speichert die befehlsnummer des befehls, der als nächstes ausgeführt werden soll. (HISTCMD-1) bezieht sich also auf den zuletzt ausgeführten Befehl.Ich habe einen kurzen Bash-Film gemacht, der zeigt, wie es funktioniert: https://asciinema.org/a/dtxpuovhty0obhln50soqypt2
Nachdem Sie den Befehl ausgeführt und auch den Befehl selbst gelöscht haben, wird der Befehl nicht angezeigt, wenn Sie ihn mit dem Pfeil nach oben bewegen. Wenn Sie ihn also öfter verwenden möchten, sollten Sie einen Alias erstellen:
Dann können Sie tun:
quelle