關於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、中後臺構建等前端知識
相關文章
相關標籤/搜索