问题
是否可以避免在 Linux 中将命令存储在历史记录中?
回答
是的,我们可以使用以下方法在 bash shell 中执行此操作
在 bash 中有一个变量 HISTCONTROL 可以用来完成我们的任务。
默认情况下,它包含一个“ignoredups”值,根据历史命令避免保留重复的命令记录。
让我们把它改成别的东西
# export HISTCONTROL=ignorespace
让我们验证值是否已更改
# echo $HISTCONTROL ignorespace
现在,根据这一点,以空格开头运行的任何命令都不会被监视或者存储在历史记录或者HISTFILE下定义的文件中,默认情况下,HISTFILE是~/.bash_history。
让我们尝试运行一些带空格的命令
在运行命令之前,历史记录的输出:
# history | tail -5 412 echo $HISTCONTROL 413 cd /etc/httpd/conf 414 vi httpd.conf 415 /etc/init.d/httpd status 416 history | tail -5
运行任何以另外空格开头的命令
# date
查看结果
# history | tail -5 413 cd /etc/httpd/conf 414 vi httpd.conf 415 /etc/init.d/httpd status 416 history | tail -5 417 history | tail -5
正如我们看到的,未存储执行的日期命令。
使更改永久化
刚才所做的变量更改是临时的和基于终端的,即在下次我们登录 HISTCONTROL 变量将返回其默认值。
我们需要将其设置到 bash/profile文件中,参考教程 如何在 Linux 中永久设置环境 (PATH) 变量
日期:2020-06-02 22:17:03 来源:oir作者:oir