Linux history 命令

2025年3月17日 | 阅读 3 分钟

Linux history 命令用于显示用户执行过的命令的历史记录。它是一个方便的审计工具,可以记录已执行命令及其日期和时间。

大多数命令一次从终端读取一行输入。但是,history 命令能够记录那些带有相关数据的行。默认情况下,它将显示从最旧到最新的前五百条命令。history 库保存在一个 history 文件中。

语法

history 命令的基本语法如下

选项

以下是 history 命令支持的一些命令行选项

-c: 用于清除完整的历史记录列表。

-d offset: 用于删除 OFFSET 位置的历史条目。

-a: 用于追加历史行。

-n: 用于读取所有历史行。

-r: 用于读取历史文件。

-w: 用于将当前历史记录写入 history 库。

-p: 用于执行历史扩展。

-s: 用于将 ARGs 作为单个条目追加到历史记录列表中。

如何使用 history 命令?

history 命令的基本用法非常直接。执行 history 命令如下

它将列出从 history 库中先前执行过的命令。请看下面的输出截图

Linux history Command

从上面的输出中,显示了 500 条命令的列表。

显示历史记录中的第 n 条命令

我们可以通过指定 "!<命令编号>" 来显示特定数量的命令。例如,我们想显示历史记录中最近的命令,即第 500 条,请执行以下命令

它将显示我们历史记录中最近执行的命令。请看下面的输出

Linux history Command

从上面的输出中,我们执行了 man 命令,所以它正在显示它。输出将根据历史记录而不同。

显示最近的 n 条命令

我们可以使用 history 命令列出最近的 n 条命令。例如,如果我们想显示前五条命令,请执行以下命令

上面的命令将显示前五条已执行的命令。请看下面的输出

Linux history Command

通过指定名称显示命令

我们可以通过指定命令名称来显示命令。它将显示该命令的最近使用记录。例如,我想查看上一个 "ls" 命令。为此,请执行以下命令

上面的命令将从历史记录中显示 ls 命令的上一次使用。请看下面的输出

Linux history Command

通过指定搜索模式显示命令

我们可以通过指定搜索模式来显示命令历史。要指定模式,请将 history 命令与 grep 命令通过管道连接,如下所示

上面的命令将搜索与模式 'se' 匹配的命令。请看下面的输出

Linux history Command

更改已执行的 history 命令

我们可以通过返回具有不同语法的命令来更改已执行的 history 命令。例如,如果我们想将之前的命令 "history | grep se" 更改为 "history | grep ma"。为此,请执行以下命令

上面的命令将改变之前 history 命令的行为。它将显示与模式 "ma" 匹配的命令,而不是 "se" 。请看下面的输出

Linux history Command

从上面的输出中,显示了所有与模式 "ma" 匹配的命令。

移除历史记录

history 命令允许我们从 history 库中删除数据。我们可以删除单个行或完整的历史记录。

要删除特定命令,请执行 history 命令并指定历史记录中的命令编号,如下所示

例如,要删除最近执行的命令,请执行以下命令

上面的命令将删除最近执行的命令,即编号为 500 的命令。请看下面的输出

Linux history Command

从上面的输出中,历史记录中的第 500命令已被删除。如果成功执行,它不会返回任何内容。

要删除已执行命令的完整历史记录,请运行以下命令

上面的命令将删除 history 库中的所有历史记录。