默认情况下,在终端上执行的每个命令都由shell存储在称为历史文件或shell命令历史的某个文件中。在Bash( Linux 系统上最流行的shell)中,默认情况下,历史文件中持久化的命令数是1000,而某些Linux 发行版可能只有500。
要检查Bash中的历史记录大小,请运行以下命令:
$ echo $HISTSIZE
要查看已运行的历史命令,可以使用history命令显示shell命令历史记录:
$ history
有时候,我们们可能希望禁止shell将命令记录到其命令历史记录中,那么可以按如下方式进行。
通过history -d $(history 1)命令删除
在命令行上运行命令后,可以立即从shell历史记录中删除命令,方法是将命令附加到history -d $(history 1)
。
$(history 1)
子命令检索当前终端会话中历史记录中的最新条目,其中1是偏移量,-d
选项是用于删除它。通常运行的任何命令都会保存在shell历史记录中。
$ echo "This command is saved in history" $ history | tail
但是,当我们将命令附加history -d $(history 1)
到命令行时,它会立即从shell历史记录中删除,具体如下图所示:
$ echo "This command is not saved in history";history -d $(history 1) $ history | tail
通过$HISTCONTROL变量值进行删除
另一种防止shell将命令保存在历史记录中的方法是在命令前面加上一个空格,但这完全取决于~/.bashrc Bash启动文件$HISTCONTROL
中定义的shell变量的值。它应该设置为具有以下值之一:ignorespace或ignoreboth,以使此方法起作用。
你可以检查$HISTCONTROL
变量的值,命令如下:
$ echo $HISTCONTROL 或者 $ cat ~/.bashrc | grep $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系统中保存已输入的历史记录,那么可以通过上述方式进行删除。