Bash中的那些快捷键
从 https://www.tecmint.com/linux-command-line-bash-shortcut-keys/ 中学到的。
注意,下面这些快捷键都是在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 键.