为什么使用相同的用户和历史命令会得到不同的结果?

为什么使用相同的用户和历史命令会得到不同的结果?

我使用 Linux 已经有一段时间了,也见过这种行为,但我从未得到一个很好的解释。也许它甚至非常简单。

如果我在同一服务器中使用同一用户(bash)登录两次,则使用历史命令可能会得到不同的结果。

我一直认为只有一个 .bash_history 文件,因此只有一个结果。

答案1

历史记录是在 bash 启动期间从文件加载的。当 bash 退出时,文件会自动保存。在 bash 执行期间,历史记录保存在内存中,并且不与历史文件或多个 bash 实例同步。

您可以使用history内置命令手动将当前历史记录保存到文件或从磁盘加载(请参阅help history参考资料)。

仅存在一个 .bash_history 文件(因为两个文件不能具有相同的名称),但可以设置该HISTFILE变量以使用其他文件。

man bash来自(HISTORY部分)的一些有用的引用:

启动时,历史记录从变量 HISTFILE 命名的文件(默认 ~/.bash_history)初始化。

当启用历史记录的 shell 退出时,最后的 $HISTSIZE 行将从历史记录列表复制到 $HISTFILE。

相关内容