Как поделиться историей между вкладками терминала?

23

Я обычно использую две или три вкладки в моем терминале на OS X.

Небольшое неудобство заключается в том, что по умолчанию вкладки не делятся своей историей команд. Таким образом, поиск предыдущей команды, которую я выполнил на другой вкладке, набрав history | grep thingIamlooking forее, не находит ее.

Есть ли способ заставить вкладки терминала делиться историей, или есть какая-то другая команда " history_of_all_tabs "?

Джо
источник

Ответы:

29

Я не думаю, что есть способ поделиться историей только между вкладками терминала, но вот кое-что, что может вам помочь.

История - это не то, что обрабатывается вашим терминалом, а ваша оболочка (bash, tcsh, zsh и т. Д.)

Вот некоторые параметры, которые помогут вам настроить общую историю для всех окон терминала (экземпляров оболочки).

Это должно быть где-то в вашем .bashrcфайле.

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Lifely
источник
1
+.5 за хороший ответ, +.5 за хорошую грамматику;)
Мэтт
Решение @ Lifely не работает для меня в El Capitan. Вообще. Даже максимальная длина файла истории. Есть ли новое решение с 2012 года? (Я бы прокомментировал выше, но у меня нет представителя)
JP Duffy
1
Это работает для меня (добавлено в .bash_profile) в El Capitan с добавлением экспорта SHELL_SESSION_HISTORY = 0 в мой .bash_profile и выполняется: touch ~ / .bash_sessions_disable
Энди
отлично работает на Ubuntu 18.04 для bash
anon58192932