行操作


目录

简介

Bash 内置了 Readline 库,具有这个库提供的很多“行操作”功能,比如命令的自动补全,可以大大加快操作速度。

这个库默认采用 Emacs 快捷键,也可以改成 Vi 快捷键。

$ set -o vi

下面的命令可以改回 Emacs 快捷键。

$ set -o emacs

如果想永久性更改编辑模式(Emacs / Vi),可以将命令写在~/.inputrc文件,这个文件是 Readline 的配置文件。

set editing-mode vi

本章介绍的快捷键都属于 Emacs 模式。Vi 模式的快捷键,读者可以参考 Vi 编辑器的教程。

Bash 默认开启这个库,但是允许关闭。

$ bash --noediting

上面命令中,--noediting参数关闭了 Readline 库,启动的 Bash 就不带有行操作功能。

光标移动

Readline 提供快速移动光标的快捷键。

上面快捷键的 Alt 键,也可以用 ESC 键代替。

清除屏幕

Ctrl + l快捷键可以清除屏幕,即将当前行移到屏幕的第一行,与clear命令作用相同。

编辑操作

下面的快捷键可以编辑命令行内容。

使用Ctrl + d的时候,如果当前行没有任何字符,会导致退出当前 Shell,所以要小心。

剪切和粘贴快捷键如下。

同样地,Alt 键可以用 Esc 键代替。

自动补全

命令输入到一半的时候,可以按一下 Tab 键,Readline 会自动补全命令或路径。比如,输入cle,再按下 Tab 键,Bash 会自动将这个命令补全为clear。

如果符合条件的命令或路径有多个,就需要连续按两次 Tab 键,Bash 会提示所有符合条件的命令或路径。

除了命令或路径,Tab 还可以补全其他值。如果一个值以$开头,则按下 Tab 键会补全变量;如果以~开头,则补全用户名;如果以@开头,则补全主机名(hostname),主机名以列在/etc/hosts文件里面的主机为准。

自动补全相关的快捷键如下。

上面的Alt键也可以用 ESC 键代替。

其他快捷键

上面的Alt + .快捷键,对于很长的文件路径,有时会非常方便。因为 Unix 命令的最后一个参数通常是文件路径。

$ mkdir foo_bar
$ cd #按下 Alt + .

上面例子中,在cd命令后按下Alt + .,就会自动插入foo_bar。


版本号 #2
由 cocobook-sync 创建于 2026-10-28 10:52:01 UTC
由 cocobook-sync 更新于 2026-10-28 11:27:15 UTC