Answers:
当您想bash
停止记录命令时,只需取消设置HISTFILE
变量:
HISTFILE=
然后,所有其他命令都将不再登录.bash_history
。
另一方面,如果您实际上将密码作为命令的参数来提供,则您已经在做错了事。.bash_history
无法在世界范围内读取,因此在这种情况下不是最大的威胁:
ps
并且/proc
是很大的问题。系统上的所有用户都可以使用所有参数看到您当前正在运行的命令。因此,将密码作为命令行参数传递本质上是不安全的。使用环境变量或配置文件(已修改600)安全地提供密码。
unset HISTFILE
具有类似的效果。我对此有一个功能:n() { HISTFILE=; PS1="~${PS1#\~}"; }
。这样,我可以清楚地看到自己是否处于“隐身模式”。
HISTCONTROL=ignorespace
如果尚未为设置此选项bash
,则可能正是您所需要的。它比禁用所有历史记录更令人沮丧。使用此设置后,任何以空格字符开头的命令行都不会保存到历史记录列表中。
从这些相关链接:
您可以暂时禁用历史记录: set +o history
set +o history
...
set -o history
禁用历史记录和取消设置之间有区别HISTFILE
:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
输出如下所示:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
即所有命令都保存在历史列表中。输入exit
以保存它。
但
set +o history
date
ls
set -o history
history
输出如下所示:
115 set +o history
116 history
摘要:
set +o history
长时间的会议。
HISTCONTROL
而<space>command
在其他的时间。
cat | bash
将运行非交互式,bash
而不进行提示,命令行编辑(仅是行学科的内部编辑器)或历史记录。