Wenn man unter Linux mit der bash shell mehrere sessions (z.B. mit tmux oder mehrere puty fenster) offen hat, wird immer nur die history des letzten Kommandos gespeichert. Dies kann ziemlich ärgerlich sein.
Dies liegt darin, dass normalerweise zu beginn die ganze history eingelesen- und dann erst beim verlassen (z.B. mittels logout oder exit) in die Datei .bash_history gespeichert wird. Loggt man sich nun bei ersten Shell-Terminal aus und danach beim zweiten wird die history des ersten überschrieben. Und bei einem Verbindungsabbruch verliert man die ganze history der Session.
Abhilfe kann man sich jedoch ganz einfach schaffen indem man die PROMPT_COMMAND Variable modifiziert, z.B. in der .bashrc:
shopt -s histappend PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND" |
Damit wird nun die history nach jedem Kommando neu in die .bash_history Datei geschrieben. Somit kann man mit mehreren Fenstern arbeiten ohne die history zu verlieren und ist auch bei einem Verbindungsabbruch voll versichert. 😉
Quellen
- askubuntu.com: How to avoid duplicate entries in .bash_history