Die Bash bringt mit “history” ja eigentlich schon ein Protokoll der zuletzt eingegebenen Befehle mit. Praktisch auch, dass man in dieser Historie mit “[strg]+r” Kommandos, die man bereits abgesetzt hat, über die Eingabe einiger Zeichen aus der Befehlskette noch einmal aufrufen kann. Auch das “!”-Kommando in seinen verschiedenen Spielarten kann ganz nützlich sein (siehe “man history”).
Einzig ein “Langzeit-Protokoll” ist über diese Funktion nicht möglich, zu alte Befehle werden aus der Datei ~/.history nach einiger Zeit rausgeschmissen.
Und genau so ein Langzeitprotokoll macht gerade bei aufwändigen Programm- oder Dienstinstallationen und -Konfigurationen durchaus Sinn, wenn man im Nachhinein noch einmal den Installationsverlauf nachvollziehen möchte. Dann fehlen nämlich gerade die Teile des Verlaufes, die man sich später noch einmal ansehen möchte.
Zur Lösung dieses “Problems” gibt es beispielsweise folgende Ansätze.
Richtig gut ist “script”. Hier werden nicht nur die eingegebenen Befehle protokolliert, auch die Rückgaben der Kommandos werden in die Protokolldatei geschrieben. Das Protokoll entspricht somit genau der Ausgabe, die man in seiner Sitzung auf dem Bildschirm hatte.
Interessieren einen jedoch nur die eingegebenen Befehle selbst, hilft die Umgebungsvariable “PROMPT_COMMAND”:
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND ; }"'echo $$ $USER "$(history 1)" >> ~/installationsverlauf'
Links: Bash eternal history