终端常用快捷键
Linux(bash/sh)终端常用快捷键(大多数 Linux 发行版默认的 Bash、Zsh、Fish 等 shell 都支持),其中包括您提到的“跳到行首/行尾”以及其它常用的编辑/导航/历史操作。
| 快捷键 | 作用 | 备注 |
|---|---|---|
| Ctrl +A | 光标移动到 行首 | 等价于 Home 键 |
| Ctrl + E | 光标移动到 行尾 | 等价于 End 键 |
| Ctrl +B | 向左移动一个字符 | 等价于 ← |
| Ctrl + F | 向右移动一个字符 | 等价于 → |
| Alt + B | 向左跳一个单词 | |
| Alt + F | 向右跳一个单词 | |
| Ctrl + U | 删除光标左侧(从行首到光标)并复制到剪贴板 | 类似 Ctrl+K 的反向版 |
| Ctrl + K | 删除光标右侧(从光标到行尾)并复制到剪贴板 | |
| Ctrl + W | 删除光标左侧的 一个单词(同 Alt+Backspace) |
|
| Alt + D | 删除光标右侧的 一个单词 | |
| Ctrl + Y | 粘贴最近一次被 Ctrl+U、Ctrl+K、Ctrl+W 删除的内容 |
“yank” |
| Ctrl + L | 清屏(等价于 clear) |
会把当前命令行重新绘制在顶部 |
| Ctrl + C | 发送 SIGINT,中断当前正在运行的程序。如果在编辑命令时使用,则会 清空当前行。 | |
| Ctrl + D | 当行为空时发送 EOF,退出终端(相当于 exit)。在行中使用时会删除光标所在的字符(等价于 Del)。 |
|
| Ctrl + Z | 将前台进程 挂起(置于后台)并返回到 shell,随后可用 fg 或 bg 恢复。 |
|
| Ctrl + R | 历史搜索(倒序增量搜索)。输入关键字后会实时匹配历史命令,Enter 执行,Ctrl + C 取消。 | |
| Ctrl + G | 退出 Ctrl+R/Ctrl+S 搜索模式。 |
|
| Ctrl + S | 前向增量搜索(同 Ctrl+R,但向前查找),在某些终端需要先 stty -ixon 开启。 |
|
| Ctrl + P | 调出 上一条历史命令(等价于 ↑) | |
| Ctrl + N | 调出 下一条历史命令(等价于 ↓) | |
| Alt + . | 插入 上一次命令的最后一个参数(循环使用可遍历更早的参数)。 | |
| Ctrl + X Ctrl + E | 在 $EDITOR(默认 vi/nano)中 打开当前命令行编辑,编辑完保存退出后继续执行。 |
|
| Ctrl + X Ctrl + U | 撤销(Undo)上一次的编辑操作(GNU Readline 支持的撤销)。 | |
| Ctrl + X Ctrl + L | 重新 刷新/重新绘制 当前行(对乱码有时有帮助)。 | |
| Ctrl + T | 交换光标左侧的两个字符(拼写错误快速纠正)。 | |
| Alt + U | 将光标所在单词 转为大写(大写化)。 | |
| Alt + L | 将光标所在单词 转为小写。 | |
| Alt + C | 将光标所在单词 首字母大写(Capitalize)。 | |
| Ctrl + X Ctrl + K | 剪切 当前行到剪贴板(类似 Ctrl+U,但不删除行首到光标,只剪切整行)。 |
|
| Ctrl + X Ctrl + R | 粘贴 上一次剪切/复制的内容(类似 Ctrl+Y)。 |
|
| Ctrl + Q | 解除 Ctrl+S 的流控暂停(如果你使用了 Ctrl+S 进行前向搜索)。 |
|
| **Ctrl + ? (Ctrl + Shift + /) ** | 显示帮助(在某些终端会弹出 GNU Readline 的键位帮助)。 |
说明 & 小技巧
GNU Readline
Bash、Zsh(使用bindkey)等 shell 都基于 GNU Readline 库,而上表的大部分快捷键都是 Readline 提供的。可以使用bind -P(列出所有绑定)或bind -p(以可编辑形式列出)查看当前的键位映射。定制键位
如果默认键位不符合你的习惯,可以在~/.inputrc(Readline 配置文件)里加入类似下面的行:# 将 Ctrl+← / Ctrl+→ 设为单词跳转
"\e[1;5D": backward-word
"\e[1;5C": forward-word
# 用 Alt+Backspace 删除一个单词
"\e\177": backward-kill-word重新打开终端或执行
bind -f ~/.inputrc生效。在 Vim/Emacs 编辑模式之间切换
Bash 默认使用 Emacs 风格键位(上表)。如果你更习惯 Vim,可以执行set -o vi,随后:Esc进入普通模式,h/j/k/l移动光标,b/e跳单词,0/^行首/行尾,dw删除单词等。i、a等进入插入模式。
Tmux / screen 中的额外快捷键
若你在 tmux(或 GNU screen)会话里使用终端,还可以使用它们自己的快捷键(默认前缀Ctrl+B),例如:Ctrl+B[进入复制模式,使用Ctrl+Space开始选择,Enter复制,Ctrl+B]粘贴。Ctrl+BC/Ctrl+BN/Ctrl+BP创建/切换窗口等。
常见误区
Ctrl+U、Ctrl+K不会永久删除文本,它们会把删除的内容保存到 kill ring,可以用Ctrl+Y(yank)恢复。Alt键在某些终端(如 Ubuntu 的 GNOME Terminal)需要打开 “使用 Alt 键作为 Meta 键” 设置,否则会被系统拦截。
快速参考表(仅列出最常用的 10~15 项)
| 键 | 功能 |
|---|---|
Ctrl+A |
跳到行首 |
Ctrl+E |
跳到行尾 |
Alt+B / Alt+F |
按单词左/右跳 |
Ctrl+U |
删除光标左侧(行首→光标) |
Ctrl+K |
删除光标右侧(光标→行尾) |
Ctrl+W |
删除光标左侧的一个单词 |
Ctrl+Y |
粘贴(yank)上一次删除的文本 |
Ctrl+R |
逆向搜索历史 |
Ctrl+L |
清屏 |
Ctrl+C |
中断命令 / 清空当前行 |
Ctrl+Z |
挂起进程 |
Alt+. |
插入上条命令的最后一个参数 |
Ctrl+X Ctrl+E |
用默认编辑器打开当前命令行编辑 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 12零9!