bash 历史记录不记录失败或错误的命令

bash 历史记录不记录失败或错误的命令

我曾经能够使用updown箭头来查找我的历史记录,包括返回不同 retval 的失败命令,更正它们并重试。在我安装了fzf一些更改后,现在我的历史记录中只有成功的命令返回一个值,其他所有内容都不存在。

我怀疑我要么更改了脚本配置之一中的某些内容,要么 fzf 更改了某些内容:

  • .bashrc
  • .fzf.bash
  • .profile
  • .bash_profile

不幸的是,这非常烦人,我不知道如何解决它。例如,输入:

which python
sudo apt-cache

生产于.bash_history

#1601901660
which python

但不是sudo apt-cache命令。

运行以下命令:

 grep HIST ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment .fzf.bash 2>/dev/null

生产:

/home/tons/.bashrc:HISTCONTROL=ignoreboth
/home/tons/.bashrc:HISTSIZE=
/home/tons/.bashrc:HISTFILESIZE=
/home/tons/.bashrc:export HISTTIMEFORMAT="%h %d %H:%M:%S "
/home/tons/.bashrc:export HISTSIZE=10000
/home/tons/.bashrc:export HISTFILESIZE=10000
/home/tons/.bashrc:export HISTCONTROL=ignorespace:erasedups
/home/tons/.bashrc:export HISTIGNORE="ls:ps:history"
/home/tons/.bashrc:export HISTIGNORE="s*"

答案1

HISTIGNORE变量是告诉 bash 历史系统忽略某些命令的一种方式。在这里,您将其设置为:

export HISTIGNORE="s*"

请注意,这将覆盖之前的HISTIGNORE="ls:ps:history".更重要的是,这s*告诉 bash 不要s在历史记录中存储任何以 开头的命令,这很好地解释了为什么sudo apt-cache不存储 your :sudos.

相关内容