使用Linux命令行历史记录

时间:2020-03-21 11:47:29  来源:igfitidea点击:

在本文中,我们将讨论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

在执行上述命令后,历史记录将不会保存重复的命令,也不会显示一个命令两次。