如何在 CentOS 8 上使用 history 命令

‘history’ 命令用于显示终端历史记录。 它保留在您的系统上执行的所有终端命令的历史记录。 它还允许用户在终端上重放或重复使用以前执行的命令,而无需再次输入所有命令。 因此,History 命令在用户忘记之前在终端上执行过的命令的情况下很有用。 所有已执行命令的历史记录存储在文件 ~/.bash_history 中。 默认情况下,历史文件存储了 Linux 系统上所有已执行命令的记录。 如果您难以查看所有以前执行过的命令的历史记录,本文将对您有所帮助。 在本文中,我们将向您展示如何在 CentOS 8.0 上使用“history”命令。

如何使用历史命令

单击桌面上的终端图标,打开 CentOS 8.0 的终端窗口。 要检查终端的历史记录,您需要使用 root 用户登录。 为此,请键入以下命令。

$su

现在您以 root 用户身份登录。

要查看终端的历史记录,请使用以下不同的命令:

要打印所有最近和旧执行命令的历史记录,请在 CentOS 8.0 终端中键入以下命令

$history

成功执行此命令后,它将显示所有已执行命令的历史记录。 最近执行的命令将从终端的顶部到底部显示。

如果您运行 ‘cat ~/.bash_history’ 命令,那么它将与历史文件非常相似,但不会显示确切的格式或行号。

您还可以使用历史命令指定一个数字。 在输出中,最近的行将显示在终端上。

$history 7 

如上所述,’history’ 命令用于显示所有已执行的命令及其行号。 您可以使用命令编号在终端上重复特定命令。

!命令行编号!

比如我想再次运行第416行的命令,使用这个命令:

$ !416!

您可以根据需要更改行号。

再次运行历史命令

笔记: 当我们在终端上输入更多命令时,命令行编号总是会发生变化。 所以,不要依赖以前的历史命令行号。

您还可以通过键入“!!”在终端上显示最近的命令或按系统键盘上的“向上”箭头键查看最近执行的命令。

再次运行最近的命令

您可以通过其起始字符串重复该命令。 使用“!”键入先前执行的命令的起始字符串。 遵循下面给出的语法:

!string

例如,您要检查以字符串“yum”开头的命令,那么您将在终端上键入以下命令:

!yum

如果上次执行的命令与您需要的不同,则上述方法可能存在风险。 在起始字符串的末尾键入 ‘:p’ 进行确认,而不是直接使用起始字符串运行。

在中搜索命令 bash 历史

上面提到的 ‘!yum:p’ 命令只显示用于确认的命令。

您可以使用 ‘history’ 命令并将其与 grep 配对,它将搜索与特定文本模式或命令尾匹配的命令。 通过这种方法,您将能够搜索最近执行的几个命令。

在终端输入以下命令:

$history | grep dnf

使用 grep 搜索命令

如您所见,所有已执行命令的列表将在与“dnf”文本匹配的终端上返回。

您可以将命令写入历史文件。 如果您没有更多记录文件的历史记录,请在终端上运行以下命令。

$history -w

您还可以清除历史记录的内容。 运行以下命令清除内容:

$history -c

需要注意的是,如果您要清除历史记录,那么这只会清除内存中的内容。 您也可以删除 ~/.bash_history 文件以删除历史记录,但当前会话仍会在用户注销时保存到文件中。

除了清除所有历史记录,您还可以使用 -d 选项从历史记录文件中删除特定的数字行。 使用以下命令从历史文件中删除特定的数字行

$history -d 457

例如,如果您输入了帐户密码,那么为了安全起见,建议使用上述命令。 用户可以使用该命令通过未经授权的访问来保护信息。

您还可以通过“-a”选项将当前会话的历史记录保存到 ~/.bash_history 文件中。 在终端输入以下命令:

$history -a

您还可以将时间戳添加到历史记录行。 这意味着默认情况下,除了订单之外,您无法看到以前执行的命令的日期和时间。 因此,通过使用时间戳命令,您可以查看执行命令的日期和时间。 在终端上运行以下命令:

$HISTTIMEFORMST=”%F%T ”

您还可以更改历史记录存储的行大小。 默认情况下, bash file 在历史列表中保留了 1000 个命令行。 $HISTSIZE 是一个变量,允许您根据需要更改值。 键入以下命令将其设置为 10000 以增加大小。

$HISTSIZE=10000

结论

在本教程中,我们探索了如何在 CentOS 8.0 中通过终端使用 history 命令的不同功能。 完成本教程后,现在您可以处理 CentOS 8.0 终端的历史记录了。 我希望这篇文章对你有用。 如需更多查询,请在下面发表评论。