如果我打开三个终端,Linux终端命令将帮助我在一个终端中查看三个终端历史记录。我遵循了Linux命令history
和history | more
。因此,我得不到所需的输出。
答案 0 :(得分:2)
默认情况下,Bash会在~/.bash_history
中保留命令历史记录。通常,只有在Bash退出时才会写入文件,因此无法访问其他会话。历史。
但是,内置history
命令有几个开关来控制历史记录持久性:
-w
会写会话的历史记录并替换文件-r
从文件中读取历史记录并替换会话的历史记录-a
仅添加会话中添加的行-n
读取文件并添加不在当前会话中的条目-c
清除会话的历史记录如果您不介意I / O开销,可以在每个命令之后执行这些操作的组合,方法是将其添加到$PROMPT_COMMAND
中的~/.bashrc
:
我首先测试了从其他会话中读取新条目的更明显的方法,然后坚持所有:
PROMPT_COMMAND='history -n ; history -w'
虽然这基本上可行,但有时会丢失单个条目,我不确定原因。
从Unix & Linux借来的以下解决方案效果更好(它会附加一个项目,清除会话历史记录,然后重新阅读):
PROMPT_COMMAND='history -a ; history -c ; history -r'