1.4《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——编辑命令

时间:2022-05-29 23:28:08

在编辑模式中,命令行包括几个重复之前命令的功能。这些以及其他很多命令功能时常设计键盘上的特殊键,所以给出Table 1作为参考,给出了许多键在典型的Macintosh键盘上的标记符号。若你的键盘不太一样,是时候运用你对针对技术多样的精湛性解决这个问题(1.3章节的Box5)

Key Symbol
Command
Control
Shift
Option
Up, down, left, right ↑ ↓ ← →
Enter/Return
Tab
Delete

*Table 1: Macintosh 键盘符号*

编辑命令时最有用的方法之一是'向上箭头'↑,此时该键的作用是检索上一条编辑过的命令。再按一次这个箭头则检索编辑过的命令列表中更前面一条命令,而'向下箭头'↓则向命令列表的末尾方向检索下一条使用过的命令。

其他一些编辑命令常用方法使用control键(正如1.2章节中Box4中看到的那样),这个键通常写作Ctrl^。例如,当你输入一条新命令或使用之前命令时,它可以在该行中快速操作。假设我们输入
$ goodbye
此时我们意识到我们想要在前面输入echo,我们可以使用左箭头← 将光标移至该行的开头,但还有种更简单的方法,输入^A,一下就将光标移至开头了。类似地,^E移到该行的末尾。最后,^U可以清除整行,重新开始。

^A,^E,和^U在很多的系统里都能运行,但有时编辑一条很长的命令时就不是很好用了,比如输出威廉莎士比亚的十四行诗的第一行 (Listing 6)

Listing 6 打印莎士比亚的第一首十四行诗的第一行
$ echo "From fairest creatures we desire increase,"

假设我们想将"From"改为"FRom"这样更符合原来的十四行诗的文字(图12),我们可以输入^A然后再按几次右箭头,但在有些系统中可以通过结合键盘(option 键)和鼠标(点击)直接将光标移到想要到的位置。就是键盘按住Option键(如果键盘上有的话),然后再将鼠标点击到命令需要聚焦的位置。这可以让我们移到'From'的字面'o'左边,这样可以直接删除‘r’,将字母改为'R",如Listing 7

1.4《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——编辑命令
图12,莎士比亚的第一首十四行诗的原貌。

Listing 7: 输入长命令结果
$ echo "FRom fairest creatures we desire increase,"
我常常结合^A,^E以及左右箭头在命令行中移动位置,但对于长命令来说option键和点击可能更有用。(我经常会改变想输入的命令,所以在这种情况下我发现键入^U在重新开始是最快的方法)

练习

1.使用向上箭头,在屏幕上输出字符串'fee', 'fie', 'foe'和'fum'而不用每次都重新输入。
2.使用Listing 6中的命令开始,任意结合^A,^E和箭头键,或者使用option-点击将现在简写的s改为古老的全写s 即'ſ'来匹配原始的诗(如图12)。换句话说,echo的参数应该是'FRom faireſt creatures we deſire increaſe'.提示: 可能你的键盘不能打出原生的"ſ"字母,可以从本篇教程中复制或者在网上搜索,在网上复制.(如果你不会在终端粘贴复制,我建议你参见1.3章节的Box5来找到在你系统上粘贴复制的方法)。