节省生命的Shell键盘高级操作

1.前言

命令行最为珍视的目标之一就是懒惰,用最少的击键次数来完成最多的工作;另一个目标,是你的手指永远不必离开键盘,永不触摸鼠标。
我们将看一下 bash 特性,这些特性使键盘使用起来更加迅速,更加高效。

Bash 使用了一个名为 Readline的库,来实现命令行编辑,例如,方向键可以移动光标。readline 是一个强大的库,只要使用了它的程序,都可以用同一个配置文件配置,而且用同样的方法操作命令行,让你可以方便的编辑命令行。

使用 readline 的程序现在主要有 Bash, GDB,FTP 等。

2.按键操作

注意:下面一些按键组合(尤其使用 Alt 键的组合),可能会被 GUI 拦截来触发其它的功能。

按键前带”*”表示为常用

2.1 移动光标

按键 动作

* Ctrl-a 移动光标到行首。
* Ctrl-e 移动光标到行尾。
Ctrl-f 光标前移一个字符;和右箭头作用一样。
Ctrl-b 光标后移一个字符;和左箭头作用一样。
*Alt-f 光标前移一个字。
*Alt-b 光标后移一个字。
*Ctrl-l 清空屏幕,移动光标到左上角。clear 命令完成同样的工作。

2.2 编辑字符

按键 动作

Ctrl-d 删除光标位置的字符。
Ctrl-t 光标位置的字符和光标前面的字符互换位置。
*Alt-t 光标位置的字和其前面的字互换位置。
Alt-l 把从光标位置到字尾的字符转换成小写字母。
Alt-u 把从光标位置到字尾的字符转换成大写字母。

2.3 剪切和粘贴文本

Readline 的文档使用术语 killing 和 yanking来指我们平常所说的剪切和粘贴。剪切下来的本文被存储在一个叫做剪切环 (kill-ring) 的缓冲区中。

按键 行动

*Ctrl-k 剪切从光标位置到行尾的文本。
*Ctrl-u 剪切从光标位置到行首的文本。
*Alt-d 剪切从光标位置到词尾的文本。
*Alt-Backspace 剪切从光标位置到词头的文本。如果光标在一个单词的开头,剪切前一个单词。
*Ctrl-y 把剪切环中的文本粘贴到光标位置。

2.4 历史命令

bash 维护着一个已经执行过的命令的历史列表。
这个命令列表被保存在你主目录.bash_history文件里。这个history工具是个有用资源,因为它可以减少你敲键盘的次数。

搜索历史命令

浏览历史列表

history | less

搜索历史列表

history | grep /usr/bin

比方说在我们的搜索结果之中,得到了这样的一行:

88 ls -l /usr/bin > ls-output.txt

数字 “88” 是这个命令在历史列表中的行号。

!88

bash 会把 “!88” 展开成为历史列表中 88 行的内容。

按键 行为

*Ctrl-p 移动到上一个历史条目。类似于上箭头按键。
*Ctrl-n 移动到下一个历史条目。类似于下箭头按键。
*Ctrl-r 反向递增搜索。从当前命令行开始,向上递增搜索。
Ctrl-o 执行历史列表中的当前项,并移到下一个。如果你想要执行历史列表中一系列的命令,这很方便。
Alt-< 移动到历史列表开头。
Alt-> 移动到历史列表结尾,即当前命令行。
Alt-p 反向搜索,不是递增顺序。输入要查找的字符串,然后按下Enter,执行搜索。
Alt-n 向前搜索,非递增顺序。

3.后记

本文总结摘录自《The Linux Command Line》中“键盘高级操作技巧”一节。
如果你是Linux使用者,强烈建议阅读这本书进行查漏补缺,本文也正是在这样的目的下阅读此书整理而来。

    原文作者:qingxp9
    原文地址: https://www.jianshu.com/p/15f0732385cf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞