关于Terminal你不知道的事儿

Alt text

做为开发者天天平常工做包含许多琐碎重复的内容,耗费了大量开发时间,终端中命令操做就是其中一项。若是你认同这点,那么你就有必要跟了解一下如何从重复低效的操做解脱出来。前端

一般状况下接触最多就是Bash(大多数Linux发行版本和MacOS默认shell),Bash提供大量的可用快捷键 (Shortcut)帮助使用者提高效率。这些快捷键延伸到开发工具,例如Chrome Devtool的Console对部分经常使用快捷键作了兼容。node

0. 写在前面

在开始正文以前,有必要做以下说明: 本文列举了部分经常使用的快捷键,考虑MacOs和兼容性,不涉及Alt相关快捷键,主要为Ctrl(快捷键中符号^)核心快捷键。全部本文演示Gif都同步展现当时键入的快捷键(右下角)。此外,针对部分Chrome devtool兼容快捷键使用✅做为标识。git

1. 进程管理

在上图示例中,使用ping命令持续获取一个百度域名的联通性,可能中间有插入工做须要临时执行,此时只须要使用CTRL+z暂停前台进程。完成操做以后,可使用fg(1)命令恢复执行。CTRL+c用来终止进程,CTRL+d则退出shell进程。github

  • CTRL + C:终止shell前台正在执行的进程。实际上发送SIGINT信号到终端,一般状况进程都会遵照终端处理规范,终止进程。
  • CTRL + D:退出shell进程。实际上发送EOF到shell,标识流结束。
  • CTRL + Z:将shell前台执行的进程暂停推到后台。可使用fg命令回复。

2. 控制屏幕

shell中执行进程会将日志输出打印到屏幕,每每因为日志过快的输出,屏幕一直处于翻滚状态,基本没法捕捉到有用的信息。尤为在启动服务时候,可能须要查看关键日志内容。这种状况下,不少同窗的作法是等待启动完毕,日志不在输出时候回翻查看,这时也许用户信息已经不在屏幕输出缓存中,导致没法查看。 其实,并正确的方式是:在看到关注内容瞬间将屏幕定格,具体方法就是使用CTRL + s暂停输出,查看完成以后,使用CTRL + q回复输出便可。两个快捷键解决这个问题。 关于屏幕控制有必要提一下CTRL + l快捷键,相信不少人都已熟悉,做用就是清空当前屏幕内容。shell

  • CTRL + l
  • CTRL + s
  • CTRL + q

3. 移动光标

习得屏幕控制对于平常开发来讲远远不够的,最为频繁的操做莫过于命令编辑过程。相信不少人都有以下经历:使用 rm删除某个特定文件夹,如 node_modules,输入命令 rm nodes_modules后,发现因为删除对象是文件夹,须要追加递归强制参数,要怎么办呢?

有一部分同窗可能选择疯狂猛击退格删除按钮,想要删除node_modules部分从新输入,一个不当心连同rm都干掉,呜呼~ 从新当心翼翼的码了一遍,生怕在出错。编程

看了这波操做,心情也是蛮复杂。如今来看看下面这组快捷键怎么解救你,如上图演示gif,使用CTRL + a将光标移动到最开始位置,再使用CTRL + f向前移动光标到rm以后,追加-rf参数,最后使用CTRL + e移动光标到结尾继续编辑命令便可。 ↑↓←→缓存

  • CTRL + a✅:移动光标到最开始(←);
  • CTRL + e✅:移动光标到结尾(→);
  • CTRL + u✅:清空光标所在行;
  • CTRL + f✅:光标向前移动一个字符位置(→);
  • CTRL + b✅: 光标回退一个字符位置(←)

4. histrory

能够灵活编辑命令已经节省了很多的工做,这里还要介绍一个提效利器—— history。关于历史记录大部分人都有所了解。笔者遇到不少人只知道能够经过方向键上下来切换历史记录,以找到以前的历史命令,固然也一种方式。在这里介绍是快捷键, CTRL + p向上移动历史记录, CTRL + n向下移动历史记录。

其实,了解history命令的人都知道,可使用![命令前缀]的方式也能找到特定命令开始的历史命令,例如!rm。这种方式存在一个问题,假如以前历史中同时存在rm index.jsrm -rf node_modules等多个rm相关命令时,只能找到最近使用的一个,而且前缀限制致使不够灵活。那是否有方法可以灵活的查找历史命令呢?函数式编程

敲黑板,答案是YES。CTRL + r就是来知足中需求的快捷键。使用CTRL + r会进入到历史命令查找的交互模式,此时键入关键字,重复使用此快捷键即可以方面切换全部包含关键字的历史命令,你说棒不棒~ 当你选中目标命令以后,只须要回车或者CTRL + o就能够执行命令。函数

  • CTRL + r: 进入历史命令搜索交互模式
  • CTRL + p✅:上一条命令历史记录
  • CTRL + n✅:下一条命令历史记录
  • CTRL + o: 在历史命令搜索模式中确认选择

4. 扩展说明

熟悉文本介绍的快捷键,可以必定程度给你带来效率提高。若是你使用Ohmyzsh增强版shell,能够有更多选择,好比自动补全等高级技巧。假若你想快速修正错误的命令,也能够考虑thefuck等。工具

参考

  • signal(3)

FE One

FE One
关注咱们的公众号FE One,会不按期分享JS函数式编程、深刻Reaction、Rxjs、工程化、WebGL、中后台构建等前端知识
相关文章
相关标签/搜索