注意,下面这些快捷键都是在 Emacs keymap 的情况下有用
启动编辑器
- C-x C-e
- 根据 $FCEDIT 或 $EDITOR 环境变量打开对应的编辑器,若这两个变量都为空,则运行 emacs
控制屏幕
- C-l
- 清屏,相当于执行 clear 命令
- C-s
- 暂停屏幕输出
- C-q
- 恢复被 Ctrl-s 暂停的屏幕输出
光标的移动
- C-a / Home
- 移动光标道行首
- C-e / End
- 移动光标到行未
- C-b
- 左移一个字符
- C-f
- 右移一个字符
- M-b
- 左移一个单词(以空格作为单词分割)
- M-c
- 右移一个单词(以空格作为单词分割)
删除命令行内容
- C-d / Delete
- 删除光标所在的字符
- C-x Backspace
- 删除光标到行首的所有内容
- C-k
- 删除光标到行末的所有内容
命令行内容转换大小写
- Esc u
- 光标到单词末尾的内容全部变大写
- Esc l
- 光标到单词末尾的内容全部变小写
- Esc c
- 转换光标道单词末尾内容的大小写
命令行字符交换
- C-t
- 将光标所在字符与前面一个字符进行交换
搜索bash history
- 上箭头 / C-p
- 上一条命令
- 下箭头 / C-n
- 下一条命令
- C-s
- 反向搜索history
- C-g
- 取消反向搜索history
进程管理
- C-z
- 发送 SIGTSTP 信号,挂起当前进程
- C-c
- 发送 SIGINT 信号退出当前进程
- C-d
- 退出 bash shell,相当于执行 exit 命令
!命令
- !!
- 执行上一个命令
- !top
- 执行最近哪个以 top 开头的命令
- !top:p
- 显示最近哪个以 top 开头的命令,但不执行
- !$
- 将上一个命令的最后那个单词作为命令来执行
- !$:p
- 显示上一个命令的最后那个单词作,但不执行
查看更多快捷键
bind -p |head
"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
# alias-expand-line (not bound)
# arrow-key-prefix (not bound)
# backward-byte (not bound)
"\C-b": backward-char
其中 \C-X 表示同时按下 Ctrl 和 X 键, \eX 表示先按下 ESC 键后,再按下 X 键