◆

Linux 终端常用快捷键大全

2023-02-15 05:210

终端里一条命令敲错了词,很多人的处理方式是按住退格删到底重打。其实 bash / zsh 的命令行编辑默认是 Emacs 键位,光标移动、按词跳转、剪切粘贴都有对应快捷键,熟练之后修改长命令基本不用碰方向键。

下面这些是我实际用得最多的一组,按用途分四类:Tab 补全;Ctrl+A/E/F/B 和 Esc+B/F 移动光标;Ctrl+K/U/W 剪切、Ctrl+Y 把剪掉的内容粘回来;Ctrl+R 反查历史命令、Ctrl+C/D/Z 控制当前任务。

值得单独说的是 Ctrl+R:输入片段就能从历史里模糊匹配,连按可以继续往前翻,找到后直接回车执行或用方向键改。长命令不用再翻 history 复制了。

快捷键清单

tab # 命令或路径等的补全键,linux用的最多的一个快捷键
ctrl+a # 光标迅速回到行首
ctrl+e # 光标迅速回到行尾
ctrl+f # 光标向右移动一个字符
ctrl+b # 光标向左移动一个字符
ctrl+insert # 复制命令行内容(mac系统不能使用)
shift+insert # 粘贴命令行内容(mac系统不能使用)
ctrl+k # 剪切(删除)光标处到行尾的所有字符
ctrl+u # 剪切(删除)光标处到行首的所有字符
ctrl+w # 剪切(删除)光标前的一个字符
ctrl+y # 粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符
ctrl+c # 中断终端正在执行的任务并开启一个新的一行
ctrl+h # 删除光标前的一个字符(相当于退格键)
ctrl+d # 退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户
ctrl+r # 搜索命令行使用过的历史命令记录
ctrl+g # 从ctrl+r的搜索历史命令模式中退出
ctrl+l # 清除屏幕所有的内容,并开启一个新的一行
ctrl+z # 暂停在终端运行的任务,使用"fg"命令可以使暂停恢复
!! # 执行上一条命令
esc+b # 移动到当前单词的开头
esc+f # 移动到当前单词的结尾

注意事项

  • Ctrl+C 和 Ctrl+Z 不一样:前者发 SIGINT 直接终止进程,后者只是把任务挂到后台停住,用 fg 能恢复、bg 能让它在后台继续跑。误按 Ctrl+Z 后以为程序退了、结果端口一直被占,就是这个原因,用 jobs 能看到这些挂起的任务。
  • Ctrl+S 会冻结终端输出(软件流控),看起来像卡死,按 Ctrl+Q 即可恢复,不用关窗口。
  • Ctrl+L 只是把屏幕滚上去,不清除历史输出,往上翻还能看到;真要清空缓冲区得用 clear 加参数或者终端自己的清屏功能。
  • macOS 的终端不支持 Ctrl+Insert / Shift+Insert 这组复制粘贴,用 Cmd+C / Cmd+V。zsh 下如果 Esc+B/F 不灵,检查是不是被改成了 vi 键位(bindkey -v),换回 bindkey -e 即可。
💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVELinux 终端常用快捷键大全加载中