我经常会在tmux会话中运行几天,我喜欢每天保存我的bash历史记录(我使用logrotate)。除非必要,我不会退出tmux会话。我能以某种方式保存我那天的tmux历史记录而不退出会话吗?每天,也许可以强制tmux写入.bash_history而不退出会话?我试过:save-buffer /home/me/tmux-hist.txt,但似乎只有保存最后一个命令?
:save-buffer /home/me/tmux-hist.txt
ffscu2ro1#
不知道这个问题是否是这个论坛的问题,但我设法解决了它,所以这里是解决方案:这不是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保存每日历史记录。
1条答案
按热度按时间ffscu2ro1#
不知道这个问题是否是这个论坛的问题,但我设法解决了它,所以这里是解决方案:
这不是tmux问题,而是shell/bash“问题”。将此添加到.bashrc:
字符串
这样,在tmux窗口/窗格中运行的命令会立即添加到历史记录中。如果您在窗格1中运行“echo 1”,然后在窗格2中运行“echo 2”,您也会在窗格2历史记录中看到“echo 1”。然后通过logrotate保存每日历史记录。