如何打开隐身 bash 会话?

如何打开隐身 bash 会话?

是否可以在 中打开隐身会话bash

例如,当我们需要在命令中输入密码并且不想bash将其添加到历史记录中时。

答案1

当您想bash停止记录命令时,只需取消设置HISTFILE变量即可:

HISTFILE=

所有进一步的命令不应再记录到.bash_history.

另一方面,如果您实际上提供密码作为命令的参数,那么您就已经做错了。.bash_history不是世界可读的,因此不是这种情况下最大的威胁:

ps/proc个大问题。系统上的所有用户都可以看到您当前正在运行的命令和他们所有的论点。因此,将密码作为命令行参数传递是本质上没有安全感。使用环境变量或配置文件(您已 chmodded 600)来安全地提供密码。

答案2

HISTCONTROL=ignorespace

如果尚未设置此选项bash,则它可能正是您所需要的。它比禁用所有历史更不那么令人衰弱。通过该设置,任何以空格字符开头的命令行都不会保存到历史列表中。

从这些相关链接:

为什么 bash 有 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在其他时间。

相关内容