08-高级键盘技巧

作者: 見贤思齊_ | 来源:发表于2020-07-27 22:06 被阅读0次

省事(即用最少的击键次数执行最多的任务)是命令行最希望达到的目标之一

命令行的另一目标是:用户在执行任务时手指无需离开键盘,不使用鼠标

接下来让我们认识下令键盘使用得更快、更高效的 bash 功能。

本章将使用到以下命令:

  • clear: 清屏。
  • history: 显示历史列表的记录。

一、编辑命令行

bash 使用了一个名为 Readline 的库(供不同的应用程序共享使用的线程集合)来实现命令行的编辑。

在之前也曾提到过相关的内容,比如:通过箭头键移动光标。除此之外,bash还有很多其它功能,它们可以当作在工作中使用的附加工具。虽然并不要求学会所有这些功能,但是学会其中的一些功能还是非常有用的。

注意

下面有些组合键(尤其是对于那些使用了 Alt 键的组合键)可能会被图形用户界面识别为其它功能。

但当使用虚拟控制台时,所有的组合键应能正常工作。

1.光标移动

用来移动光标的组合键

(1)光标移动命令

组合键 作用
Ctrl-A 移动光标到行首。
Ctrl-E 移动光标到行尾。
Ctrl-F 光标向前移动一个字符(和右箭头键作用一样)。
Ctrl-B 光标向后移动一个字符(和左箭头键作用一样)。
Alt-F 光标向前移动一个字。
Alt-B 光标向后移动一个字。
Ctrl-L 清屏并把光标移到左上角(clear 命令可以完成相同的工作)。

2.修改文本

用来编辑命令行字符的键盘指令

(1)文本编辑命令

组合键 作用
Ctrl-D 删除光标处的字符。
Ctrl-T 使光标处的字符和它前面的字符对调位置。
Alt-T 使光标处的和它前面的对调位置。
Alt-L 把从光标到字尾的字符转换成小写字母形式。
Alt-U 把从光标到字尾的字符转换成大写字母形式。

3.剪切和粘贴文本

Readline 文档中使用术语 killing 和 yanking 来指代通常所说的剪切和粘贴。

被剪切的内容存放在一个称为 kill-ring 的缓冲区中。

(1)剪切和粘贴命令

组合键 作用
Ctrl-K 剪切从光标到行尾的文本。
Ctrl-U 剪切从光标到行首的文本。
Alt-D 剪切从光标到当前词尾的文本。
Alt-Backspace 剪切从光标到词头的文本。如果光标在一个单词的开头,则剪切前一个单词。
Ctrl-Y 把 kill-ring 缓冲区中的文本粘贴到光标位置。

二、自动补齐功能

shell 的一种称为“ 自动补齐 ” 的机制为用户提供了很大的帮助。

(1)怎么做?

在输入命令时,按 Tab 键将触发自动补齐功能

示例
例1
ls

# 查看当前工作目录

假设当前工作目录中含有 ls-output.txt 文件,输入如下命令,但是不要按 Enter 键。

ls l

# 参数不输入完整。

此时按 Tab 键。

# 会出现如下结果:
ls ls-output.txt

# 自动补齐机制会自动将参数补全。

观察 shell 是如何补齐这一行的。

例2

假设当前工作目录中含有多个 D 开头的文件(Desktop、Documents),输入如下命令,但是不要按 Enter 键。

ls D

# 参数不输入完整。

此时按 Tab 键。

# 无变化

ls D

没有自动补齐,只有哔哔声。这是因为字母 D 和目录中一个以上的名称匹配。

要让自动补齐功能生效,必须保证输入内容不能模棱两可(即必须是确定性的)。

# 若输入以下内容:
ls Do

# 按下Tab键,会出现:
ls Documents
# 自动补齐功能生效了

(2)应用

以上例子给出的是路径名的自动补齐,这也是最常用的方式

自动补齐也可以针对

变量(如果单词以 $ 开头)、

用户名(如果单词以 ~ 开头)、

命令(如果单词是命令行的第一个单词)、

主机名(如果单词以 @ 开头,注意:只对 /etc/hosts 目录下的主机名生效

起作用。

(3)自动补齐命令

有一些控制和元键序列 与 自动补齐功能相关联。

组合键 作用
Alt-$ 显示所有可能的自动补齐列表。在大多数系统中,可通过按两次 Tab 键实现,而且也会更容易一些。
Alt-* 插入所有可能的匹配项。当需要用到一个以上的匹配项时,将比较有用。

除了以上这些,还有很多组合键可以在 bash man页面的 READLINE 部分获取更多的相关内容列表。

三、使用历史命令

第 1 章已经提到,bash 会保存使用过的命令 的历史记录。

这些命令的历史记录列表保存在用户主目录的 .bash_history 文件中

这些历史记录非常有用,可以大大减少用户敲打键盘的次数,特别是和命令行编辑结合使用的时候

1.搜索历史命令

(1)查看历史记录列表

任何情况下,我们都可以通过如下命令查看历史记录的内容列表

history | less

bash 默认会保存用户最近使用过的 500 个命令

其中,500 是个默认值,关于如何改变这个默认值将在第 11 章介绍。

示例

假设想找到用来列出 /usr/bin 目录下内容的命令,可以进行如下操作:

history | grep /usr/bin

# 假设得到以下命令
99 ls -l /usr/bin > ls-output.txt

(2)历史记录扩展

数字 99 表示这个命令行在历史记录列表中所处的行号,我们可以通过使用名为历史记录扩展的扩展类型来立即使用它。

① 语法格式
!行号
示例
!99

bash 将把 !99 扩展为历史列表中第 99 行的内容。

② 支持递增地搜索

​ bash 也支持以逆向递增的方式搜索历史记录(也就是说,当搜索历史记录时,随着输入字符数的增加,bash 会相应地改变搜索范围)。

按下 Ctrl-R 键,接着输入想要查找的内容,可以开始逆向递增式地搜索,当查找到想要的内容时,按 Enter 键表示执行此命令。

而按下 Ctrl-J 键,将把搜索到的内容从历史记录列表中复制到当前命令行

当要查找下一个匹配项时(即继续向过去搜索历史记录),再次按下 Ctrl-R 键。

若想要退出搜索,按下 Ctrl-G 或 Ctrl-C 即可。

示例

首先,按下 Ctrl-R 。提示符发生改变,提示正在进行逆向递增式搜索

称为“ 逆向 ” 是因为查找的是从 “ 现在 ” 到 “ 过去 ” 的某个时间之间的操作。

接着,输入要查找的内容,比如查找 /usr/bin。

假设搜索到了,返回了结果。此时我们可以按 Enter 键执行搜索结果,也可按下 Ctrl-J ,把搜索结果复制到当前命令行。

shell 将实时响应,命令行将被加载,准备运行。

(3)历史记录命令

一些用来手动操作历史记录的组合键。

组合键 作用
Ctrl-P 移动到前一条历史记录(相当于向上箭头键)。
Ctrl-N 移动到后一条历史记录(相当于向下箭头键)。
Alt-< 移动到历史记录列表的开始处。
Alt-> 移动到历史记录列表的结尾处。即当前命令行
Ctrl-R 逆向递增地搜索。从当前命令行向前递增搜索。
Alt-P 逆向非递增地搜索。按下这个组合键,接着输入待搜索的字符串,再按下 Enter 键后,搜索才真正开始执行。
Alt-N 向前非递增地搜索。
Ctrl-O 执行历史记录列表中的当前项,执行完跳到下一项。若要把历史记录中的一系列命令重新执行一遍,使用该组合键将很方便。

2.历史记录扩展

​ shell 提供了一种专门用来扩展历史记录项的方式——使用 ! 字符。前面我们曾提到过,如何通过在感叹号后面跟数字的方式,将来自历史记录列表中的命令插入到命令行中。除了这种方式,还有很多其它的扩展特性。具体如下:

(1)历史记录扩展命令

序列 行为
!! 重复最后一个执行的命令(按 向上箭头键 再按 Enter 键也可以实现相同的功能,而且操作更简单)。
!number 重复历史记录中第 number 行的命令。
! string 重复最近的以 string 开头的历史记录。
!?string 重复最近的包含 string 的历史记录。

(2)谨慎使用 “ ! string ” 和 “ !?string ”

当使用 “ ! string ” 和 “ !?string ” 时,请务必小心谨慎,除非对历史记录中的内容非常确信。

(3)其它的可用特点

​ 历史记录扩展机制中还有很多其它的可用特点,但是该主题太过晦涩难懂,此处不再讨论。可以查阅 bash 帮助页面中的 “ HISTORY EXPANSION ” 部分获取更多细节。

四、本章结尾语

​ 本章介绍了 shell 提供的一些键盘操作技巧,它们能够帮助打字员减少工作量。随着时间的推移,你会越来越多地接触到命令行。通过学习本章内容,可以获得更多的键盘使用技巧。

相关文章

  • 08-高级键盘技巧

    省事(即用最少的击键次数执行最多的任务)是命令行最希望达到的目标之一。 命令行的另一目标是:用户在执行任务时手指无...

  • Linux高级键盘技巧

    注意:(Mac下Alt键:control + option) 1、光标移动 Ctrl-A 移动光标到行...

  • 学习HM微博项目第9天

    步骤:发微博07-表情键盘01-切换键盘 -> 发微博08-表情键盘02-表情工具条 -> 发微博09-表情键...

  • 5. Linux 键盘高级技巧

    [TOC] 命令行的目标: 懒惰;用最少的击键次数来完成最多的工作。 手指永远不必离开键盘,永不触摸鼠标。 命令行...

  • iOS核心动画高级技巧 - 8

    iOS核心动画高级技巧 - 1iOS核心动画高级技巧 - 2iOS核心动画高级技巧 - 3iOS核心动画高级技巧 ...

  • 2018.7.27

    看了第三张第二节,主要讲键盘使用技巧,鼠标使用技巧,鼠标键盘联合使用技巧等小技巧。

  • 解决自定义键盘头部一闪的问题

    iOS开发小技巧--iOS键盘 inputView 和 inputAccessoryView iOS键盘 inpu...

  • 玩机小技巧:Mac电脑的屏幕虚拟键盘的开启

    “虚拟键盘”使用macOS 辅助功能键盘,该键盘提供了高级键入(例如键入建议)和导航功能。那么该如何开启MAC屏幕...

  • 正则表达式

    JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经...

  • Python中的一些高级技巧

    Python中的一些高级技巧 Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里...

网友评论

    本文标题:08-高级键盘技巧

    本文链接:https://www.haomeiwen.com/subject/edgtrktx.html