我想避免在bash历史记录中添加命令,因为它包含敏感数据。
$ export SECRET=sensitive
$ echo $SECRET
如何避免将export
命令添加到历史记录中?
答案 0 :(得分:4)
在shell变量ignorespace
中使用值HISTCONTROL
,例如通过这样设置~/.bashrc
。
HISTCONTROL=ignorespace
现在您可以在命令行前加一个空格,它将被忽略:
$ export SECRET=sensitive # Intentional blank at the beginning of the line
$ echo $SECRET
来自Bash文档:
<强> HISTCONTROL 强>
以冒号分隔的值列表,用于控制命令的方式 保存在历史列表中。如果值列表包括 忽略空间,以空格字符开头的行不是 保存在历史列表中。值 ignoredups 会导致行 匹配以前的历史记录条目以保存。价值 ignoreboth是 ignorespace 和 ignoredups 的简写。一个值 erasedups 导致所有先前的行与当前行匹配 在保存该行之前从历史列表中删除。 忽略上面列表中没有的任何值。如果 HISTCONTROL 是 未设置或不包含有效值,所有行都由 shell解析器保存在历史列表中,取决于值 HISTIGNORE 。多行的第二行和后续行 复合命令未经过测试,并被添加到历史记录中 无论 HISTCONTROL 的值如何。