gnome-terminal / mate-terminal 不会在 ~/.bash_history 上保存历史记录

gnome-terminal / mate-terminal 不会在 ~/.bash_history 上保存历史记录

两天前,我像往常一样使用电脑,突然发现我在 mate-terminal 中使用的命令没有保存在历史记录中。我尝试安装gnome-terminal。但它还是一样。我对此进行了研究,发现这可能是权限问题,~./bash_history但我检查了它们,它们很好。我不认为这是 BASH 的问题,因为我尝试使用XTerm并且它确实写入了文件。

编辑:这是建议命令的输出:

伴侣终端:

mike@mikeUBU:~$ echo "$HISTFILE"
/home/mike/.bash_history

mike@mikeUBU:~$ ls -l ~/.bash_history
-rw------- 1 mike mike 288 Jul 30 01:59 /home/mike/.bash_history

mike@mikeUBU:~$ history | wc
     13      57     431

mike@mikeUBU:~$ echo $HISTFILESIZE
2000

mike@mikeUBU:~$ ps -p $$
  PID TTY          TIME CMD
 3647 pts/0    00:00:00 bash

X终端:

mike@mikeUBU:~$ echo "$HISTFILE"
/home/mike/.bash_history

mike@mikeUBU:~$ ls -l ~/.bash_history
-rw------- 1 mike mike 288 Jul 30 01:59 /home/mike/.bash_history

mike@mikeUBU:~$ history | wc
     15      65     480

mike@mikeUBU:~$ echo $HISTFILESIZE
2000

mike@mikeUBU:~$ ps -p $$
  PID TTY          TIME CMD
 3850 pts/0    00:00:00 bash

答案1

我无法解决这个问题。我的解决方案是重新安装 Ubuntu MATE,但只安装系统。我的主文件夹在另一个分区中。我选择了保留文件的安装方法。一些应用程序也被保留了下来。重新安装后,问题就解决了。

答案2

历史文件的内容是什么?内容会改变吗?是覆盖而不是追加吗?

如何判断,就是给出history命令,然后给出其他命令,date echo $PWD which man不管怎样,然后运行历史命令。如果有任何变化,那么 bash 历史文件很可能被覆盖,而不是被追加。如果它总是相同的,就像它在一段时间前写了一些命令历史,并且从那时起就没有改变过……那么我不知道,但知道它会很有用。

无论如何,我敢打赌解决方案就在你的 .bashrc 文件中的某个地方,其中保存了处理历史记录的各种设置。

以下是我的 .bashrc 文件中的一些历史记录设置:

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

shopt 内置命令表示如果设置,则当 shell 退出时,历史列表将附加到由 HISTFILE 变量的值命名的文件中,而不是覆盖该文件。

您可以搜索到 .bashrc 的底部,看看是否有历史命令的不同功能或参数,文件末尾的那些将会生效。

如果您的 .bashrc 文件看起来像这样,或者您可以发布更多详细信息,我很乐意在今晚进一步研究这个问题。我有点惊讶 xterm 没有单独的历史记录日志。如果您同意这样做,发布您的 .bashrc 文件可能会有所帮助。

相关内容