我正在使用 linux 实用程序‘屏幕’(我的意思是终端多路复用器)。
在屏幕的每个“窗口”中,我都在运行 bash。
但是这些 bash 似乎没有任何命令历史记录。
例如,如果我在屏幕中的 bash 中输入以下内容:
[gojira@cray]$ date
Mon Jun 6 17:50:51 JST 2011
[gojira@cray]$ grep date ~/.bash_history
[gojira@cray]$
因此 ./bash_history 似乎只是空的。
屏幕中每个 bash 的历史记录存储在哪里?
答案1
仅当 shell 退出时,历史记录才会刷新到文件中。
尝试history
使用内置的 bash 来访问更新的命令历史记录。
答案2
历史记录保存到$HISTFILE
(默认~/.bash_history
)。如果此变量为空,则不会创建历史记录文件。历史记录在退出 shell 时保存,而不是在退出之前保存。
要测试您的历史记录是否已启用,请运行:
echo "$HISTFILE"
答案3
您可能想要添加shopt -s histappend
到您的.bashrc。
这会将终端历史记录的内容附加到退出时的 .bash_history 中。否则,退出时 .bash_history 将被覆盖。这意味着,如果您同时使用多个 bash shell 并关闭它们,您可能会丢失部分命令历史记录。