Wie kann ich den Terminalverlauf manuell speichern?

33

Ich verstehe, dass die Verlaufsdatei aktualisiert wird, wenn das Terminal beendet wird. Aber manchmal stürzt mein Computer ab und das Terminal wird nicht sauber beendet, und dann verliere ich die Befehle aus meinem Verlauf, was ärgerlich ist. Wie kann ich es sofort bündig machen, damit die Einträge dort auch dann noch ankommen, wenn mein Computer eine Kernschmelze hat? Im Moment verwende ich diese Problemumgehung, aber ich bin der Meinung, dass es einen besseren Weg geben sollte.

Ich benutze Gnome-Terminal auf Ubuntu 12.10.

wim
quelle

Antworten:

17

Die Antworten in dem Link, den Sie von der Super-Users-Website angegeben haben, sollten nicht unbedingt als "Problemumgehung" für das historyStandardverhalten des Befehls angesehen werden. Die Bash-Shell hat ein normales Standardverhalten.

Ich würde das Lesen wärmstens empfehlen. Wie kann ich vermeiden, dass Verlaufszeilen verloren gehen? Hier finden Sie eine Erklärung, was diese Änderungen historybewirken. Darüber hinaus gibt es einige vernünftige Bedenken, warum dies nicht das Standardverhalten des historyBefehls ist.

  • Leistung - Da Sie jeden Befehl aus jedem Fenster mit speichern, kann history -adie .bash_historyDatei sehr groß werden und mehr Ressourcen zum Laden der Bash-Shell erfordern. Dies kann zu längeren Startzeiten führen (für Ihre Terminalsitzungen, nicht für den gesamten Systemstart an sich).

  • organisation - (aus dem obigen Artikel) "Die Verlaufsbefehle simultaner interaktiver Shells (für einen bestimmten Benutzer) werden miteinander verflochten. Daher ist der Verlauf keine garantierte sequentielle Liste von Befehlen, da sie in einer einzelnen Shell ausgeführt wurden."

Wenn Sie Bedenken haben, die Bash Shell und die. bash_historySchauen Sie sich diesen Artikel an: Wie kann ich den Verlauf protokollieren oder Bash gegen das Entfernen des Verlaufs "sichern"?

Gelegentlich (z. B. ein instabiles System oder ein Stromausfall) habe ich die folgenden Befehle für nützlich befunden.

Fügen Sie Ihrer ~/.bashrcDatei die folgenden Zeilen hinzu :

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

Stellen Sie sicher, dass Sie Ihre .bashrcDatei mit dem Befehl quellensource ~/.bashrc

Kevin Bowen
quelle