<分区>
如果我打开了三个终端,Linux 终端命令将帮助我在一个终端中查看三个终端的历史记录。我遵循了 Linux 命令 history
和 history |更多
。因此我没有得到所需的输出。
<分区>
如果我打开了三个终端,Linux 终端命令将帮助我在一个终端中查看三个终端的历史记录。我遵循了 Linux 命令 history
和 history |更多
。因此我没有得到所需的输出。
最佳答案
Bash 默认将命令历史记录保存在 ~/.bash_history
中。通常,该文件仅在 Bash 退出时写入,因此无法访问其他 session 的历史记录。
但是,内置的 history
命令有几个开关来控制历史持久性:
-w
写入 session 历史并替换文件-r
从文件中读取历史并替换 session 的历史-a
仅附加在 session 中添加的行-n
读取文件并添加不在当前 session 中的条目-c
清除 session 历史如果您不介意 I/O 开销,可以在每个命令后执行这些组合,方法是将其添加到 ~/.bashrc
中的 $PROMPT_COMMAND
>:
我首先测试了更明显的方法,即从其他 session 中读取新条目,然后持久化所有条目:
PROMPT_COMMAND='history -n ; history -w'
虽然这基本上行得通,但有时单个条目会丢失,我不确定原因。
以下解决方案借自 Unix & Linux效果更好(它将附加一项,清除 session 历史记录,然后重新读取它):
PROMPT_COMMAND='history -a ; history -c ; history -r'
关于Linux命令查看两个或多个打开终端的历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807474/
相关文章:
c - 为什么我必须先声明一个不相关的 struct file_handle 变量才能使用该类型?
linux - 如何从linux内核模块(cpu : ARM))写入寄存器
bash - 将 2 行组合在一起但 "interlaced"
bash - 将 stderr/stdout 消息发送到函数并捕获退出信号
linux - 保留最近的 3 个文件夹并删除 bash 脚本中的其余文件夹?
c++ - 在 C++ 中,当我对 -128,127 范围之外的整数值使用 static_cast<char> 时会发生什么?