在这个 Debian Jessie 安装中,Bash 历史记录在 Gnome 终端中的表现似乎不一致:
$ echo $USER
me
$ echo $HISTFILE
/home/me/.bash_history
$ grep browser ~/.bash_history
browser-sync start
$ history | grep browser
2071 grep browser ~/.bash_history
2073 history | grep browser
browser-sync
文件中的行相当~/.bash_history
旧:比当前终端会话旧得多。为什么它没有出现在结果中history | grep browser
?
答案1
默认情况下,~/.bash_history
交互式会话终止时写入磁盘。这意味着如果您打开了并发 shell,则只有最近终止shell 会话将其历史记录写入磁盘。
(从技术上讲,所有会话都写入磁盘,但两个并发会话不知道其他会话的历史记录,因此当一个会话退出时,它会写入什么它认为新的历史是,然后当另一个退出时,它写它是历史)