3.2 查看历史命令
Shell 本身提供了 history
这个内置命令来让我们随时查看所记录的历史命令。当我们执行 history
后,Shell 记录的所有历史命令便被回显出来。如果历史命令太多,不妨将其管道给页面查看程序 less
,这样可以分屏查看:
xiaodong@codeland:~$ history | less
1 echo $HISTSIZE
2 sudo -i
3 cat .bashrc
4 cat .bash_profile
5* cat .bash_history
每行命令前面的数字是该行命令的编号。数字后面带 *
号的行则说明已经被修改过。
history
比较有用的一个选项是,它后面可以跟一个数字(比如 5)。这样,在 bash 中就可以看到倒数的 5 个历史命令。
值得注意的是,zsh 中需要在 5 前面加个 -
号:
另外,在 zsh 中,我们也可以给 history
两个负数,以便查看中间的一段历史命令:
这表示从倒数第 10 个到倒数第 5 个之间的历史命令。
对 zsh 来说,它还能向我们提供更多的历史命令细节,包括命令执行的日期和时间,以及每个命令持续运行的时间:
这里的 -i
选项向我们展示了命令执行的日期及时间,而 -D
选项则说明了命令运行了好久。
除了 history
之外,另一个用来查看历史命令列表的是 fc
。我们利用 fc
的 -l
选项可以将历史命令列出来。例如:
xiaodong@codeland:~$ fc -l # 列出最后 16 条命令
xiaodong@codeland:~$ fc -l -5 # 列出倒数 5 条命令
xiaodong@codeland:~$ fc -l 20 30 # 列出编号 20 到 30 的命令
xiaodong@codeland:~$ fc -l 100 # 列出编号为 100 后的所有命令
xiaodong@codeland:~$ fc -l cat # 列出 cat 后的所有命令
通过 fc
的 -e
选项,我们还能够编辑历史命令列表。比如:
这将打开 vi
来编辑 5 到 10 条历史命令。