Ich habe die Antwort in /unix//a/1292/41729 verwendet , um die gemeinsame Echtzeithistorie zwischen verschiedenen Bash-Terminals zu aktivieren. Wie in der obigen Antwort erläutert, wird dies erreicht, indem Folgendes hinzugefügt wird:
# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups
# append history entries..
shopt -s histappend
# After each command, save and reload history
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Dies funktioniert einwandfrei, wenn die Bash-Shells separat sind (z. B. Öffnen verschiedener Bash-Terminals mit CTRL+ALT+T
. Wenn ich jedoch tabs
(von einem offenen Terminal aus) STRG + UMSCHALT + T verwende, funktioniert dies nicht . Warum dieser Unterschied im Verhalten? Wie Kann ich den Bash-Verlauf auch auf verschiedenen Registerkarten teilen?
UPDATE: Ich habe ein ungewöhnliches Verhalten festgestellt: Wenn ich tippe, CTRL+C
wird der letzte Befehl, der in einem der anderen Terminals eingegeben wurde (sowohl ein Tabulator als auch nicht), korrekt angezeigt. Es ist so, als ob STRG + C ein Löschen des Verlaufs erzwingt, damit er korrekt geteilt wird.
Als Beispiel die Ausgänge (T1 bezeichnet Klemme 1 und T2 Klemme 2):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<up> (i.e. I press the up arrow)
ls -lah #i.e the last command in terminal 1 is shown rather than the last of terminal 2
^C (i.e. I press CTRL+C)
<up>
cd Documents #the last command issued in terminal 2 is correctly displayed
Hoffe das kann keinen Hinweis geben!
~.bashrc
Datei hinzugefügt ? Nebenbei bemerkt, das Exportieren dieser Variablen ist sinnlos. verschwendet nur Platz in der Umwelt.