Bash 命令历史记录不起作用

13 command-line bash guake history

会话之间的命令历史没有得到保存。我正在使用 guake 并且会话的历史记录工作正常。

我注意到.bash_history有一些我在sudo -s模式下执行的命令并再次尝试相同的命令,并且会话中的所有命令都被保存,所以我尝试:

chmod 777 .bash_history
Run Code Online (Sandbox Code Playgroud)

现在旧命令出现在会话开始时,但没有保存新命令。

Ada*_*tek 18

这些命令是不可见的,因为 Bash 仅在 shell 退出后才将历史记录保存到 .bash_history 文件中,而 Guake 很少发生这种情况。有一个简单的解决方法可以让 Bash 在每个命令之后附加历史记录(而不是覆盖文件)

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)

  • 纯真棒。希望我在 5 年前就知道这件事。 (4认同)

小智 8

相关的,通常这是如何被破坏的,如果你在拥有 .bash_history 文件之前 sudo 命令,那么它将被创建为 root 而不是你的用户。