我使用 Linux 已经有一段时间了,也见过这种行为,但我从未得到一个很好的解释。也许它甚至非常简单。
如果我在同一服务器中使用同一用户(bash)登录两次,则使用历史命令可能会得到不同的结果。
我一直认为只有一个 .bash_history 文件,因此只有一个结果。
答案1
历史记录是在 bash 启动期间从文件加载的。当 bash 退出时,文件会自动保存。在 bash 执行期间,历史记录保存在内存中,并且不与历史文件或多个 bash 实例同步。
您可以使用history
内置命令手动将当前历史记录保存到文件或从磁盘加载(请参阅help history
参考资料)。
仅存在一个 .bash_history 文件(因为两个文件不能具有相同的名称),但可以设置该HISTFILE
变量以使用其他文件。
man bash
来自(HISTORY
部分)的一些有用的引用:
启动时,历史记录从变量 HISTFILE 命名的文件(默认 ~/.bash_history)初始化。
和
当启用历史记录的 shell 退出时,最后的 $HISTSIZE 行将从历史记录列表复制到 $HISTFILE。