Я столкнулся с проблемой, при которой команды, которые я запускаю внутри терминала tmux, не найден, когда я выхожу из сеанса tmux. Кто-нибудь может помочь?
tmux
- с помощью этой команды для запуска сеанса tmux
echo "Hello"
- с помощью этой команды в сеансе tmux
history
- В этом случае echo Присутствует команда "Hello"
.
exit
- использование этого для выхода из сеанса tmux
история
- выполнение этой команды после выхода из сеанса tmux
После запуска я не могу получить эхо «Привет»
команда, которую я использовал в сеансе tmux.
Выйдите из терминала и перезапустите его. Теперь history
покажет вам все эти команды, как из tmux
, так и раньше.
История сеанса фиксируется в файле .bash_history
только после выхода из сеанса. Когда вы начинаете новый сеанс, .bash_history
будет прочитан, и команда будет доступна. Причина такой работы в том, что это позволяет оценивать историю каждого сеанса отдельно.
Можно настроить терминал так, чтобы выданные команды сразу были доступны в истории всех сессий.
От здесь:
Добавьте следующее в ваш ~/.bashrc:
# Avoid duplicates
HISTCONTROL=ignoredups:erasedups # Ubuntu default is ignoreboth
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend # In Ubuntu this is already set by default
# After each command, append to the history file and reread it
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
Узнайте больше о переменной HISTCONTROL здесь.
В стандартной установке Ubuntu, на самом деле, одной этой команды будет достаточно:
PROMPT_COMMAND="history -a; history -c; history -r"
Обратите внимание, что любая новая команда из другой сессии будет доступна в вашей сессии после того, как вы "обновили" подсказку: история обновляется, как только создается подсказка.