使用Linux命令行历史记录
在本文中,我们将讨论Linux中非常强大且必不可少的工具。
我们在linux控制台中键入的所有命令永远不会永远丢失,但是它以这种方式记录和存储的方式对用户有很多帮助。
可以在很大程度上自定义命令行历史记录的常规默认设置,以适应不同的需求。
现在,我们需要编辑两个文件,以编辑命令行历史记录的某些参数。
.bashrc(位于用户的主目录中)
.bash_history(保存历史命令的位置。
)
更改历史记录大小:
现在,为了更改历史记录大小,我们需要在.bashrc文件中添加/修改HISTSIZE变量的值。
例如在大多数默认计算机中,其值为500。
我们可以将其增加到任意值。
.bashrc文件中的典型条目如下所示。
打印整个历史记录文件。
现在,如果我们只想在屏幕上打印所有当前历史记录。
只需使用命令历史记录,而无需任何选项和参数。
#history
在输出中,左侧列将显示命令编号,右侧列将显示命令本身
注意:历史记录文件总是小于总历史记录,因为当前shell的命令仅在退出shell之后才添加到历史记录文件中。
在历史记录中运行第n条命令
如果要运行,请想象一下位于500条历史记录行上的命令(来自history命令的输出)。
我们可以按照以下步骤进行操作。
!<command number>
例如!500
HISTIGNORE环境变量
histignore变量可用于指定在不保存历史记录的情况下可以忽略的命令。
假设我们希望不要将以fdisk开头的命令保存到历史记录中,那么我们可以执行以下操作。
export HISTIGNORE="fdisk*"
禁用历史记录。
假设我们不希望保存历史记录并记住命令,那么可以通过以下操作轻松禁用它们。
我们可以通过设置histsize = 0并将其导出来实现。
export HISTSIZE=0
防止命令包含在历史记录中
假设我们要运行命令,并且我们不希望该命令成为历史记录的一部分,那么可以通过创建一个名为HISTCONTROL的变量来做到这一点。
export HISTCONTROL=ignorespace
上一行告诉我们,任何以空格开头的命令都不会保存在宿主文件中。
因此,请先键入空格,然后再命令将其从历史记录中排除。
禁止将重复的命令输入到历史记录中。
由于不包括历史记录中所有重复的命令,因此可以将Erastedups值分配给HISTCONTROL。
export HISTCONTROL=erasedups
在执行上述命令后,历史记录将不会保存重复的命令,也不会显示一个命令两次。