命令历史记录

LinuxBeginner
立即练习

简介

你是否曾经访问过一个网站,关闭标签页后才发现还需要返回查看?你可能使用过浏览器的历史记录功能。

Linux 终端也有类似的功能!Linux 会将你执行过的命令保存到一个称为命令历史记录的日志中。

这个功能很重要,因为 Shell 中经常需要重复执行相似的操作。历史记录不只是为了偷懒而提供的便利功能;它还可以减少输入、避免错误,并重复使用已经成功执行过的命令。

在本实验中,你将学习如何访问这份日志、重新执行最近的操作,以及搜索之前执行过的命令。

查看命令历史记录

在此步骤中,你将查看命令日志。Shell 会将你执行的命令记录在一个列表中。

首先,执行以下命令,创建一些历史记录:

ls
pwd
whoami

现在查看记录:

history

你应该会看到一个包含所有已输入命令的编号列表:

    1  ls
    2  pwd
    3  whoami

这就是本次会话的记录凭据。

这些编号很有用,因为历史记录不只是操作日志,还是一个索引。Shell 可以使用其中保存的命令,让你调用、重复执行或搜索之前的命令。

只查看最近 3 条记录:

history -3

重复上一条命令(!!)

在此步骤中,你将使用 Linux 的「重复」按钮:!!(读作「bang-bang」)。

它会调用上一条命令。

查看日期:

date

现在,不要再次输入 date,而是输入:

!!

终端会将 !! 展开为 date,以便你先查看命令。再次按下回车键(Enter),运行展开后的命令。

这是历史记录展开的一个示例。Shell 会解释指向之前命令的简写,并在执行前将其替换为对应的命令。

使用 echo 试试看:

echo "Hello LabEx"
!!

!! 展开后,再次按下回车键(Enter),运行调用出的 echo 命令。这样可以在命令执行前先检查它,同时快速表达「再执行一次」。

调用命令(反向搜索)

在此步骤中,你将查找之前执行过的命令,而不必在历史记录列表中逐条滚动。

使用反向搜索(Ctrl+R)。它类似于网页中的「在页面中查找」。

首先执行以下两条命令进行测试:

grep "root" /etc/passwd
grep "bin" /etc/passwd

现在查找第一条 grep "root" 命令。

按下 Ctrl+R。命令行提示符会变为 (reverse-i-search) 或 bck-i-search。

开始输入 grep。终端会显示最近匹配的命令(grep "bin"...)。再次按下 Ctrl+R,切换到上一条匹配的命令(grep "root"...),然后按下回车键(Enter)运行它。

这就是专家提高操作速度的方法。他们不只是输入命令,而是进行搜索。

这种思维方式非常重要。高效使用终端,并不意味着必须从头记住并重新输入所有内容,而是要利用 Shell 内置的工具,调用并调整之前已经执行过的命令。

总结

在本实验中,你了解到不必完全依靠记忆。Linux 会替你记住命令。

  • **history**:记录之前操作的命令日志。
  • **!!**:重复上一条命令的「按钮」。
  • **Ctrl+R**:即时查找旧命令的「搜索」功能。

使用这些工具可以提高操作速度,并减少输入错误。既然可以直接查找,为什么还要重复输入一条很长的命令呢?