3.3 搜索历史命令

在搜索历史命令时,大家平时用得比较多的是将 historygrep 联用,从而过滤出需要的命令:

xiaodong@codeland:~$ history | grep 'xxx'

我个人比较喜欢使用的方式是按 Ctrl + r 组合键,这样 Shell 会让我们逆向搜索历史命令,比用 grep 更加方便。

当我在 bash 中按 Ctrl + r 后,Shell 给我提示 reverse-i-search(在 zsh 中这个提示略有不同,为 bck-i-search),然后我可以在冒号后面键入要搜索的字符串,比如 hi。此时,Shell 从历史命令中找到了 history,按回车键可以立即执行该命令。如果想要对命令加以修改,则只需按→️ (右方向键)。如图 3.1 所示。

逆向搜索历史命令

图 3.1: 逆向搜索历史命令

这是一个增量搜索引擎,我们每键入一个字符,Shell 便对历史命令列表进行匹配。若是匹配成功,则显出结果。要是匹配失败,我们还可以按退格键删除字符,然后重新输入来继续搜索。