bash的历史存储在哪里?

Modified on: Sat, 30 Jun 2018 10:22:30 +0800

如果我运行history,我可以看到我最近执行的命令。

但是如果我执行tail -f $HISTFILEtail -f ~/.bash_history,它们就不会被列出。

文件是否被锁定,是否有临时位置或类似内容?

最佳答案

Bash在运行时在内存中维护命令列表。它们在退出时写入.bash_history

  

当交互式shell退出时,最后的$ HISTSIZE行将从历史列表复制到由$ HISTFILE

命名的文件中

如果要强制写出命令历史记录,可以使用history -a命令,将:

  

将新历史记录行(自当前Bash会话开始以来输入的历史记录行)附加到历史记录文件。

还有-w选项:

  

将当前历史记录写入历史文件。

这可能更适合您,具体取决于您如何使用历史记录。

如果您想确保它们总是立即写入,您可以将该命令放入PROMPT_COMMAND变量中:

export PROMPT_COMMAND='history -a'

相关问答

添加新评论