Aus irgendeinem Grund kann ich mein System nach einem Neustart nicht dazu bringen, meinen BASH-Verlauf zu speichern. Hier sind die relevanten Abschnitte meiner ~/.bashrc:
shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"
Soweit ich das beurteilen kann, gibt es alle erforderlichen Optionen (ich weiß, dass ich früher in der Lage war, den Verlauf über mehrere Neustarts hinweg zu verfolgen, ohne dass dies alles in der Vergangenheit passiert ist). Obwohl ich diese Optionen vor einigen Neustarts hinzugefügt habe, verliere ich nach einem Neustart immer noch den größten Teil meines Verlaufs. Es ist nicht leer, hat aber nicht die 9999 Leitungen, die ich vor dem Neustart hatte.
Bevor sich jemand beschwert, habe ich ja diese Fragen gelesen. Ich habe einige ihrer Vorschläge wie oben aufgeführt umgesetzt, der Rest war entweder nicht hilfreich oder nicht relevant:
- Bash-Verlaufsverlust bei Verwendung von Histappend
- Wie kann man verhindern, dass Bash die Geschichte verändert?
- Was bestimmt, was im Befehl bash history angezeigt wird?
- Wie kann ich meinen Bash-Verlauf über mehrere Sitzungen hinweg aufbewahren?
- Speichern Sie regelmäßig die Bash-Historie
Für den Fall, dass es möglicherweise andere relevante Befehle gibt, können Sie meinen gesamten Inhalt ~/.bashrc hier anzeigen .
Also, was fehle ich? Warum wird mein Verlauf nicht gespeichert? Wenn jemand der Meinung ist, dass eine andere Datei relevant sein könnte, lass es mich wissen und ich werde es veröffentlichen. Ich überprüfte, indem ich grep -i hist \.*mein $HOMEausführte, das zeigte, dass die einzige relevante .Akte, die die Zeichenkette enthielt histoder HISTwar .bashrc.
Ich verwende Linux Mint Debian Edition, GNU Bash, Version 4.2.36 (1) -Release (x86_64-pc-linux-gnu) und meinen bevorzugten Terminal-Emulator (falls relevant) terminator.
AKTUALISIEREN:
Dem Vorschlag von @ mpy in den Kommentaren folgend, habe ich meine ~/.bashrcEinstellung geändert und nicht HISTFILE=~/bash_historydie Standardeinstellung. Dies ~/.bash_historyscheint das Problem für interaktive Shells zu lösen . Anmelde-Shells zeigen immer noch dasselbe Verhalten, wobei der Verlauf in 500Zeilen abgeschnitten ist. In HISTden relevanten Dateien sind jedoch keine zugehörigen Variablen festgelegt:
$ for f in /etc/profile ~/.profile ~/.bash_profile ~/.bash_login; do \
echo -ne "$f :"; echo `grep HIST $f`; \
done
/etc/profile :
/home/terdon/.profile :grep: /home/terdon/.profile: No such file or directory
/home/terdon/.bash_profile :grep: /home/terdon/.bash_profile: No such file or directory
/home/terdon/.bash_login :grep: /home/terdon/.bash_login: No such file or directory
$ grep -r HIST /etc/profile.d/ <-- returns nothing
Also, warum setzt HISTSIZEund HISTFILESIZEin dem ~/.bashrcnicht genug , wenn ich explizit die $HISTFILEauf etwas anderes als der Standard ~/.bash_history?
historyBefehl ausführen , ist die angezeigte Ausgabe identisch mit der angezeigten Ausgabe, abgesehen von cat .bash_historyden Zeilennummern. Ich meine, listet der historyBefehl Zeitstempel oder andere Informationen auf? Der Grund, den ich frage, ist, wenn Sie diese esoterischen Dinge sehen, bedeutet dies, dass es ein anderes Modul / eine andere Funktion / ein anderes Programm gibt, das mit der Shell-Historie in Konflikt gerät, und dass eine falsche oder fehlerhafte Version dessen, was auch immer es ist, Sie möglicherweise betrübt .
;): Probieren Sie eine andere Datei als HISTFILE aus, nicht die Standarddatei ~/.bash_history. Sehr konstruierte Erklärung: Ich gehe davon aus, dass bash Ihre Standard-Shell ist. Beim Systemstart ist also eine nicht interaktive Shell das übergeordnete Element Ihrer X-Sitzung (ich gehe auch davon aus, dass Sie X verwenden), die nichts über die Option histappend weiß (da .bashrc nur ist) gelesen von interaktiven Shells), so lange diese übergeordnete Shell ausgeführt wird, ist alles in Ordnung, aber beim Beenden (dh Systemstopp) wird es überschrieben ~/.bash_history(was Standard ist) und Ihre Geschichte
