是否可以在 中打开隐身会话bash
?
例如,当我们需要在命令中输入密码并且不想bash
将其添加到历史记录中时。
答案1
当您想bash
停止记录命令时,只需取消设置HISTFILE
变量即可:
HISTFILE=
所有进一步的命令不应再记录到.bash_history
.
另一方面,如果您实际上提供密码作为命令的参数,那么您就已经做错了。.bash_history
不是世界可读的,因此不是这种情况下最大的威胁:
ps
是/proc
个大问题。系统上的所有用户都可以看到您当前正在运行的命令和他们所有的论点。因此,将密码作为命令行参数传递是本质上没有安全感。使用环境变量或配置文件(您已 chmodded 600)来安全地提供密码。
答案2
HISTCONTROL=ignorespace
如果尚未设置此选项bash
,则它可能正是您所需要的。它比禁用所有历史更不那么令人衰弱。通过该设置,任何以空格字符开头的命令行都不会保存到历史列表中。
从这些相关链接:
答案3
您可以暂时禁用历史记录: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
在其他时间。