Bash-Geschichte
Alle neuen Befehle, die im aktiven Terminal ausgegeben wurden, können .bash_history
mit dem folgenden Befehl an die Datei angehängt werden :
history -a
Das einzige schwierige Konzept zu verstehen ist , dass jedes Endgerät seine eigene bash Geschichte Liste (aus der geladenen .bash_history
Datei , wenn Sie das Terminal öffnen)
Wenn Sie einen neuen Verlauf abrufen möchten, der während der Lebensdauer dieses aktiven Terminals von anderen Terminals geschrieben wurde, können Sie den Inhalt der .bash_history
Datei an die Liste des aktiven Bash-Verlaufs anhängen
history -c;history -r
Dadurch wird die aktuelle Verlaufsliste gelöscht, sodass keine wiederholte Liste angezeigt wird, und die Verlaufsdatei wird an die (jetzt leere) Liste angehängt.
Lösung
Sie können die Bash-Variable verwenden PROMPT_COMMAND
, um bei jeder neuen Eingabeaufforderung einen Befehl auszugeben (jedes Mal, wenn Sie im Terminal die Eingabetaste drücken).
export PROMPT_COMMAND='history -a'
Dadurch wird jeder Befehl in der Verlaufsdatei aufgezeichnet, sobald er ausgegeben wird.
Ergebnis
Jetzt hat jedes neue Terminal, das Sie öffnen, den Verlauf anderer Terminals, ohne dass Sie exit
diese anderen Terminals benötigen. Dies ist mein bevorzugter Workflow.
Mehr Präzision
Angenommen, Sie haben (aus irgendeinem Grund) zwei Terminals, die Sie gleichzeitig verwenden, und möchten, dass der Verlauf für jeden neuen Befehl zwischen beiden Terminals angezeigt wird.
export PROMPT_COMMAND='history -a;history -c;history -r'
Der Hauptnachteil hierbei ist, dass Sie möglicherweise die Eingabetaste drücken müssen, um PROMPT_COMMAND erneut auszuführen, um den neuesten Verlauf vom gegenüberliegenden Terminal abzurufen.
Sie können sehen, warum diese präzisere Option wahrscheinlich übertrieben ist, aber sie funktioniert für diesen Anwendungsfall.