我经常会在 tmux 会话中运行几天,并且我喜欢每天保存我的 bash 历史记录(我使用 logrotate)。除非必要,我不会退出 tmux 会话。我可以以某种方式保存当天的 tmux 历史记录而不退出会话,每天,也许强制 tmux 写入 .bash_history 而不退出会话?
我尝试了
:save-buffer /home/me/tmux-hist.txt
,但这似乎只保存了最后一个命令?
不确定这个问题是否是针对这个论坛的,但我设法解决了它,所以这是解决方案:
这不是 tmux 问题,而是 shell/bash“问题”。将其添加到 .bashrc:
## Issues with tmux history
# 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 -n; $PROMPT_COMMAND"
这样,在 tmux 窗口/窗格中运行的命令就会立即添加到历史记录中。如果您在窗格 1 中运行“echo 1”,然后在窗格 2 中运行“echo 2”,您也会在窗格 2 历史记录中看到“echo 1”。 然后通过 logrotate 保存每日历史记录。