我经常screen
在我的 Linux 桌面和服务器上运行多个会话。
一个问题是,当我grep
查看我的命令历史记录时,我发现我在不同的会话中发出了一个命令,并且必须分离并重新附加才能获取该历史记录项目。
是否可以将多个会话中不同更新的历史“强制”全部转到中央历史?
inn*_*naM 44
您需要做两件事:
shopt -s histappend
你.bashrc
。这将附加到历史文件而不是覆盖它。.bashrc
, insertPROMPT_COMMAND="$PROMPT_COMMAND;history -a; history -n"
和历史文件中,每次 bash 显示提示时都会重新编写和重新读取。编辑:感谢 e-t172 的history -n
技巧
Ada*_*ane 14
请不要使用history -a; history -n
,它不会像您期望的那样工作,并且会在您的历史记录中留下许多重复的、乱序的命令。通常按预期工作的解决方案如下:
# unified bash history
shopt -s histappend
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
Run Code Online (Sandbox Code Playgroud)
使用换行符代替分号也是处理 PROMPT_COMMAND 丢失/重复分号问题的一种简便方法。
归档时间: |
|
查看次数: |
6103 次 |
最近记录: |