分享最新优惠信息
购买主机更加划算

如何在不保存历史记录的情况下运行Linux命令

默认情况下,在终端上执行的每个命令都由shell存储在称为历史文件或shell命令历史的某个文件中。在Bash( Linux 系统上最流行的shell)中,默认情况下,历史文件中持久化的命令数是1000,而某些Linux 发行版可能只有500。

要检查Bash中的历史记录大小,请运行以下命令:

$ echo $HISTSIZE

检查Linux历史大小

要查看已运行的历史命令,可以使用history命令显示shell命令历史记录:

$ history

检查Linux命令历史

有时候,我们们可能希望禁止shell将命令记录到其命令历史记录中,那么可以按如下方式进行。

通过history -d $(history 1)命令删除

在命令行上运行命令后,可以立即从shell历史记录中删除命令,方法是将命令附加到history -d $(history 1)

$(history 1)子命令检索当前终端会话中历史记录中的最新条目,其中1是偏移量,-d选项是用于删除它。

通常运行的任何命令都会保存在shell历史记录中。

$ echo "This command is saved in history"
$ history | tail

查看Linux命令历史

但是,当我们将命令附加history -d $(history 1)到命令行时,它会立即从shell历史记录中删除,具体如下图所示:

$ echo "This command is not saved in history";history -d $(history 1)
$ history | tail

运行后删除Linux命令历史记录

通过$HISTCONTROL变量值进行删除

另一种防止shell将命令保存在历史记录中的方法是在命令前面加上一个空格,但这完全取决于~/.bashrc Bash启动文件$HISTCONTROL中定义的shell变量的值。它应该设置为具有以下值之一:ignorespaceignoreboth,以使此方法起作用。

你可以检查$HISTCONTROL变量的值,命令如下:

$ echo $HISTCONTROL
或者
$ cat ~/.bashrc | grep $HISTCONTROL

检查HISTCONTROL变量

如果设置了上述shell变量,则任何以空格为前缀的命令都不会保存在历史记录中:

$ echo "This command is not prefixed with space, it will be saved in history!"
$ echo "This command is prefixed with space, it will not be saved in history!"

不要将 Linux 命令保存在历史记录中

总结

以上就是在不保存历史记录的情况下运行Linux命令的两种方法,相对来说比较简单。如果不希望在Linux系统中保存已输入的历史记录,那么可以通过上述方式进行删除。

未经允许不得转载:惠主机 » 如何在不保存历史记录的情况下运行Linux命令