简介
你是否曾经访问过一个网站,关闭标签页后才发现还需要返回查看?你可能使用过浏览器的历史记录功能。
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**:即时查找旧命令的「搜索」功能。
使用这些工具可以提高操作速度,并减少输入错误。既然可以直接查找,为什么还要重复输入一条很长的命令呢?



