Tmux 历史记录未保留

Tmux 历史记录未保留

我遇到了一个问题,当我退出 tmux 会话时,无法找到我在 tmux 终端内运行的命令。有人可以帮忙吗?

tmux- 使用此命令运行 tmux 会话

echo "Hello"- 在 tmux 会话中使用此命令

history- 在这种情况下,echo "Hello"命令存在。

exit- 使用它退出 tmux 会话

history- 退出 tmux 会话后运行此命令

运行此程序后,我无法获取echo "Hello"在 tmux 会话中使用的命令。

答案1

退出终端并重新启动。现在,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"

请注意,在您“刷新”提示后,来自不同会话的任何新命令都将在您的会话中可用:提示创建后历史记录就会更新。

相关内容