Shell 快捷键速查

在终端里熟练使用快捷键,能大幅减少手在键盘和鼠标之间来回移动的时间。本文按功能对 Bash 中常用的 Ctrl 快捷键进行分组整理,方便速查。特别提醒:Ctrl+D 在不同语境下有两种完全不同的含义,文末会单独说明。

光标移动

快捷键 作用
Ctrl+A 光标移到行首
Ctrl+E 光标移到行尾
Ctrl+B 光标左移一个字符(向行首方向),同左方向键
Ctrl+F 光标右移一个字符(向行尾方向),同右方向键

删除与修改

快捷键 作用
Ctrl+H 删除光标前一个字符,同 Backspace 键
Ctrl+D 删除光标所在位置的字符。注意和 Backspace 以及 Ctrl+H 的区别:后两者删除的是光标的字符
Ctrl+K 清除光标后至行尾的内容
Ctrl+U 清除光标前至行首间的所有内容
Ctrl+W 移除光标前的一个单词
Ctrl+T 交换光标位置前的两个字符(包括光标所在当前位置)
Ctrl+Y 粘贴或恢复上次的删除内容

历史命令搜索

快捷键 作用
Ctrl+R 搜索之前输入过的命令。按下后会出现提示符,根据输入的关键字在 bash 的 history 中增量搜索,再按 Ctrl+R 跳到上一个匹配

清屏

快捷键 作用
Ctrl+L 清屏,相当于执行 clear 命令

任务控制

快捷键 作用
Ctrl+C 杀死当前前台进程
Ctrl+D 退出当前 Shell,从 Shell 提示符中注销并关闭。使用该快捷键就不必键入 exit
Ctrl+Z 把当前进程转到后台暂停运行,使用 fg 命令恢复到前台。比如运行 top -d 1,然后按 Ctrl+Z 把它切到后台,再执行 fg 即可重新恢复

关于 Ctrl+D 的两种语境

可以看到 Ctrl+D 出现了两次,它是同一个按键在不同语境下的两种行为:

  • 光标处有内容时:删除光标所在的字符,相当于向前的 Delete 键(Ctrl+H 和 Backspace 删除的则是光标前的字符)。
  • 光标处没有内容(空行)时:向 Shell 发送一个 EOF(文件结束符),效果等同于 exit,直接退出当前 Shell。这也是为什么在交互式程序里连按 Ctrl+D 会被退出。

记住这个规律就不会误操作:有字符删字符,没字符就退出。


   转载规则


《Shell 快捷键速查》 吴杭沉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
history:让历史命令显示执行时间 history:让历史命令显示执行时间
Linux 下用 history 查看历史命令时,默认只显示序号和命令本身,看不到这条命令是什么时候执行的,排查问题时很不方便。其实只要设置 HISTTIMEFORMAT 环境变量,就能让 history 显示每条命令的执行时间。 临时生效
2020-11-08
下一篇 
Shell 脚本条件判断详解 Shell 脚本条件判断详解
条件判断是 Shell 脚本流程控制的基石。本文系统整理 if 语句的基本语法、[ ] 中的各类测试条件,以及 (( )) 和 [[ ]] 这两种高级写法,并附上常见用法示例。 基本语法if [ command ]; then 符合
2020-10-25
  目录