程序人生

BASH命令行快捷键指南(一)

2018-06-01  本文已影响0人  洛奇看世界

题图:Rocky自画BASH快捷键导图

1. BASH命令行编辑的两种模式

BASH命令行支持emacs和vi两种模式。在emacs模式下使用跟emacs下一样的快捷键进行编辑,而在vi模式下则使用跟vi下一样的快捷键进行编辑。如果你熟悉emacs,则使用emacs模式编辑根本都不需要学习,直接使用~~对于vi模式也是一样,命令行也分为normal mode和instert mode,使用vi下对应模式的快捷键。

默认为emacs模式。这里主要说一下默认的emacs模式。

如果不清楚当前是哪一种模式,又该如何查看当前是哪一种模式呢?
在命令行执行bind -V然后检查keymap一项,如下:

mbp:~ rocky$ bind -V | grep map
keymap is set to `emacs'
...
mbp:~ rocky$ set -o vi
mbp:~ rocky$ bind -V | grep map
keymap is set to `vi'

这里通过set -o vi指令临时将keymap设置为vi模式,再次执行bind -V后显示的keymap就是vi模式了。

2. 关于Meta按键

据传:在这个蔚蓝色的星球上,流传着两大神器:作为神的编辑器之Emacs和作为编辑器之神的Vim。

我没用过emacs,传说中emacs会大量使用meta键。如果你的BASH是默认的emacs模式,那显然也离不开这个meta键。所以在正式介绍emacs模式的快捷键前有必要说一下emacs上常用的Meta键。

这个Meta键在上古时期的键盘上还能见到,但如今已经不知所踪了。下图是在wiki上找到的一个带Meta键的键盘:

(键盘的最下面一排,左边正数第3个,右边倒数第4个)

键盘上没有Meta键,那怎么办呢?

BASH Reference Manual上以Meta-k组合键为例来介绍Meta Key时是这样解释的:

The text M-k is read as ‘Meta-K’ and describes the character produced when the Meta key (if you have one) is depressed, and the k key is pressed. The Meta key is labeled ALT on many keyboards. On keyboards with two keys labeled ALT (usually to either side of the space bar), the ALT on the left side is generally set to work as a Meta key. The ALT key on the right may also be configured to work as a Meta key or may be configured as some other modifier, such as a Compose key for typing accented characters.

If you do not have a Meta or ALT key, or another key working as a Meta key, the identical keystroke can be generated by typing ESC first, and then typing k. Either process is known as metafying the k key.

这里说很多键盘上,Meta被标记为ALT键(在我所使用的键盘上,尽管有ALT键,但其并不是作为Meta功能使用, Macbook上也没有单独的Meta键),此时可以选用其中的一个ATL键通过设置作为Meta键。如果没有ALT键,可以通过先按ESC键,再按相应的字母键实现Meta组合件的功能。

但是实际上先按ESC,再按相应的组合键,前后要按两次以上,很不方便,通常都是通过修改设置,将ALT复用为Meta键。

以下是网上找到的几种方式:

3. BASH命令行的快捷键

说完了BASH命令行的两种模式和Meta Key,下面总算进入正题介绍快捷键了。
关于命令行编辑,主要就是光标移动,字符编辑和历史命令功能。

命令行支持的快捷键很多,完整的快捷键列表请参考BASH参考手册。
下面列举最常用的几类编辑命令:

4. 更多命令行快捷键

BASH命令行操作的快捷键还有很多,关于光标移动,字符编辑和历史命令操作3条就已经够日常装B使用了。更多的快捷键可以在BASH手册的第8章”Command Line Editing”中找到。

不嫌麻烦的同学可以搜索公众号“洛奇看世界”,后台回复关键词获取本文的PDF版和BASH的用户手册。

上一篇 下一篇

猜你喜欢

热点阅读