一、解决办法
-
查看是否设置了HISTSIZE变量:HISTSIZE变量设置了命令历史记录的条目数,如果这个值设置为0或者一个很小的数,可能会导致命令历史记录被禁用。可以使用
echo $HISTSIZE
命令来查看HISTSIZE的值,如果是0或者一个很小的数,可以使用export HISTSIZE=1000
命令来设置一个合适的值。 -
查看是否设置了HISTFILESIZE变量:HISTFILESIZE变量设置了保存在历史文件中的命令数量。类似于HISTSIZE,如果这个值设置为0或者一个很小的数,可能会导致命令历史记录被禁用。可以使用
echo $HISTFILESIZE
命令来查看HISTFILESIZE的值,如果是0或者一个很小的数,可以使用export HISTFILESIZE=2000
命令来设置一个合适的值。 -
检查是否设置了HISTFILE变量:HISTFILE变量指定了保存命令历史记录的文件路径。如果没有设置这个变量,或者设置了一个不存在的路径,那么命令历史记录将无法保存。可以使用
echo $HISTFILE
命令来查看HISTFILE的值,如果为空或者指向一个不存在的路径,可以使用export HISTFILE=~/.bash_history
命令来设置一个正确的路径。 -
检查bash配置文件:bash配置文件(例如
.bashrc
、.bash_profile
、/etc/bash.bashrc
等)中可能包含禁止命令历史记录的配置。可以使用文本编辑器打开相应的配置文件,检查是否存在类似HISTSIZE=0
、HISTFILESIZE=0
、unset HISTSIZE
、unset HISTFILESIZE
等配置,如果存在,将其注释掉或者修改为合适的值。 -
检查是否启用了特殊的shell选项:有一些shell选项(例如
histappend
、cmdhist
等)可以影响命令历史记录的保存和显示。可以使用shopt
命令来查看当前的shell选项,如果看到类似histappend off
、cmdhist off
的选项,可以使用shopt -s histappend
、shopt -s cmdhist
等命令来启用它们。
需要注意的是,上述方法仅适用于Bash shell,默认情况下,Linux系统使用Bash作为默认的命令行解释器。如果你使用的是其他的shell(如Zsh、Fish等),可能需要根据各自的配置文件和命令来进行调整。
二、参考链接
https://worktile.com/kb/ask/302337.html