两个简单命令,如何查找命令及历史记录
知识犹如人体的血液一样宝贵。
——高士其
内容简介
- 前言
- 如何找到一个命令
- 命令的历史记录
- 一些实用的快捷键
- 总结
1. 前言
上一课 命令行及命令参数,世界尽在掌握中,我们已经踏入了命令行的神奇领域。
这一课,我们来说说如何查找命令和命令的历史记录。
2. 如何找到一个命令
Linux 的命令千千万,查找起来实在难~
那么如何在“芸芸众令”中找到你想要的那个命令呢?我有时候也会想不起来一个命令到底是如何拼写的。
但是幸好,Linux 的开发者们很有先见之明,早就为我们准备了对策,就是用 Tab 键来补全命令!
说实话,我以前学 Linux,学了有段时间了,还不知道 Tab 键的这个妙用。后来还是一个 Linux 高手演示给我看的。我当时就震惊了,竟然有这种操作:“我读书少,你可不要骗我…”。
Tab 键不仅可以补全命令,还可以补全文件名、路径名,绝对让你效率倍增。例如,我输入 da 这两个字母,然后按两次 Tab 键(记得不是按一次 Tab 键,是按两次),它将为我展示所有可能的补全选项,我们可以看到只有两个可能的选项:
dash 和 date 两个命令。如下图:
此时,如果我继续输入,变为 dat。再按两次 Tab 键,那么它就为我自动补全成了date了。因为只有一个可能了。
又例如,我用 ls 命令,后跟一个目录名,我可以输入目录名的几个首字母,然后用 Tab 来帮我补全,有很长的路径名时极为方便:
如果按 Tab 键多次,却一直没有显示什么选项,那说明不存在这几个字母开头的命令或路径。
有时候我们的命令候选项会太多。我们来测试一下。假如,我输入一个字符 c,然后按两次 Tab 键,那么终端将会提示我所有以字母 c 开头的命令,如下图:
如上图所示,输入 c,按下两次 Tab 键后,终端就询问我:Display all 113 possibilities? (y or n)
翻译出来的意思就是“显示所有 113 个可能的选项吗?(输入 y(yes 的缩写)表示确定,输入 n(no 的缩写)表示否决)”,说明当前 Ubuntu 系统里有 113 个以字母 c 开头的命令。
我们可以输入 y,按回车键,然后它就真的为我们显示了 113 个命令。当然,不是在一页中显示,而是分了很多页。
我们如何浏览这些页面呢?
- 空格键:用于跳到下一页
- 回车键:用于跳到下一行
- q :用于退出列表
一般情况下,我们是输入 n,回车后就什么都不显示了。毕竟要在 113 个命令中找一个命令有点麻烦。
不同的人系统里命令的数目是不一样的,取决于你在系统里安装了多少软件。安装的软件越多,可供选用的命令就越多。
3. 命令的历史记录
很多时候,我们都需要找回我们之前输入的命令。
不仅是因为有时我们忘了那句命令是什么,更重要的是,假如这句命令很长,我不想再花时间重新输入一遍。那么显示命令的历史就很有用了。
有两个按键是很常用的:
- 向上键:按时间顺序向前查找用过的命令,每按一次就前进一个命令;
- 向下键:按时间顺序向后查找用过的命令,每按一次就前进一个命令。
如果你觉得用上下键每次进一个命令太花时间,那么你也可以用查找的方法:
Ctrl + R : 用于查找使用过的命令
例如,我查找 date 这个命令,就可以用 Ctrl + R 组合键,然后只输入 da,因为我之前使用过 date 这个命令,它就为我自动补全了 date 命令,如下图:
history 命令
history 是英语“历史,历史记录”的意思。
history 这个命令,用于列出之前使用过的所有命令,如下图:
可以看到,系统自动保存了我从安装完 Ubuntu 之后在终端里输入过的 31 条命令,最近的一条命令正是 history。
history 命令可以方便我们了解自己之前输入过那些命令。
而且,history 列出的使用过的命令,是有编号的,如上图所示。如果要重新运行对应编号的命令,可以用
!编号
这样的格式。
例如在我的情况下,!30
就会再次运行 date 命令,因为在上面的截图中,我们可以看到编号 30 的那个命令是 date。
4. 一些实用的快捷键
Linux 系统不但提供了许多命令,而且其键盘快捷键组合也是大大滴多。练好了快捷键,足以让你键盘飞起来。想象自己是《黑客帝国》的 Neo。
下面列举一些经常使用的快捷键:
- Ctrl + L 用于清理终端的内容,就是清屏的作用。其实 clear 命令也有同样效果,但是你不觉得 Ctrl + L 的按键比输入 clear 这五个字母更快速吗?
- Ctrl + D 给终端传递 EOF (End Of File,文件结束符),在运行程序时很有用。有些程序我们需要在接收到 EOF 输入时结束,那么这个快捷键就可以派上用场了。比如我们之前演示过,退出 root 用户身份,就可以用 Ctrl + D。如果你在命令行提示符后什么也不输入的情况下直接按下这组快捷键,那么就会关闭当前的终端;
- Shift + PgUp 用于向上滚屏,与鼠标的滚轮向上滚屏是一个效果;
- Shift + PgDn 用于向下滚屏,与鼠标的滚轮向下滚屏是一个效果。
下面的快捷键在你编辑一条比较长的命令时很有用:
- Ctrl + A 光标跳到一行命令的开头。一般来说,Home 键有相同的效果;
- Ctrl + E 光标跳到一行命令的结尾。一般来说,End 键有相同的效果;。
- Ctrl + U 删除所有在光标左侧的命令字符;
- Ctrl + K 删除所有在光标右侧的命令字符;
- Ctrl + W 删除光标左侧的一个“单词”,这里的“单词”指的是用空格隔开的一个字符串。例如 -a 就是一个“单词”;
- Ctrl + Y 粘贴用 Ctrl + U、 Ctrl + K 或 Ctrl + W “删除”的字符串,有点像“剪切-粘贴”。
当然了,好的快捷键绝不止这些。
小结
- 在输入了一个命令的首字母或前几个字母后,我们可以用 Tab 键来补全命令,非常方便。Tab 键不仅可以补全命令,还可以补全文件名、路径名,可以让我们效率倍增;
- 可以用键盘的上下键来前后翻看使用过的命令,也可以用 Ctrl + R 这组快捷键来查找使用过的命令;
- history 这个命令,用于列出之前使用过的所有命令。方便我们了解自己之前输入过那些命令;
- 在终端的操作中,有很多常用的快捷键组合。了解或记住一些快捷键将使我们的效率倍增。