bash history über mehrere shells merken

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

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.