Я використовував відповідь у /unix//a/1292/41729, щоб увімкнути спільну історію в реальному часі між окремими терміналами bash. Як пояснено у відповіді вище, це досягається додаванням:
# 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"
Це добре спрацьовує, якщо оболонки bash є окремими (наприклад, відкриваючи різні термінали bash CTRL+ALT+T
. Однак це не працює, якщо я використовую tabs
(з відкритого терміналу `CTRL + SHIFT + T), а не нові вікна. Чому така різниця в поведінці? Як? чи можу я поділитися історією башів також між різними вкладками?
ОНОВЛЕННЯ: Я помітив незвичну поведінку: якщо я набираю, CTRL+C
то остання команда, введена в будь-який з інших терміналів (як вкладка, так і ні), відображається правильно. Це як би, якщо CTRL + C примушує перемикати історію, щоб потім її правильно поділити.
В якості прикладу виходи (Т1 позначає термінал 1 і Т2 термінал 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
Сподіваюся, що це може запропонувати будь-яку підказку!
~.bashrc
файл? З іншого боку, експорт цих змінних є безглуздим; просто витрачає простір середовища.