歡迎光臨
每天分享高質量文章

GitHub 達到 5W+ 星中文資源:命令列技巧大合集,新老司機各取所需

(點選上方快速關註並設定為星標,一起學Python)

圓慄子 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

 

 也可以是火車司機

熟練使用命令列,是成為一個老司機必備的技能。

這裡有一份入門&進階指南,名字叫“命令列的藝術”,在GitHub收穫了5萬標星

技巧改寫面廣,且富含具體的例子。主要為Linux所寫,卻也有Mac和Windows的專用章節。

專案作者Joshua Levy說:

文章並不長,但當你掌握這裡列出的所有技巧時,你就學會很多關於命令列的東西了。

他還說了:

這份資源不僅能幫助剛接觸命令列的新手,對有經驗的人也大有裨益。

從誕生之初到今天,專案被翻成了16種語言。就是說,如果感覺中文有翻譯腔,可以回去看英文原版 (手動狗頭) 。

那麼,先來觀察一下,老司機是怎樣煉成的。

基礎篇 & 日常篇

這份資源主要專註在互動式 Bash,但也有許多技巧可以用在其他shell和普通Bash腳本里。

基礎篇

所以,萌新就從Bash的基礎知識開始學習。然後:

要熟悉一種基於文字的編輯器;學會用man命令閱讀檔案。

還有,用apropos查詢檔案。要知道有些命令不對應可執行檔案,而是Bash內建好的。可以用helphelp-d來獲得幫助資訊。

另外,要學會用><來重定向輸入和輸出,用|來重定向管道;還要用萬用字元*和取用,瞭解取用中‘和”的區別。

……

包括Bash中的任務管理工具,檔案管理工具,網路管理工具等等,都要在這一篇裡熟絡起來。

此篇共分12條技能,算是比較短的一篇了。

基礎打好之後,進入:

日常使用篇

顧名思義,這裡實現的是一些日常技巧。

比如,為了方便長命令的編輯,用ctrl-x ctrl-e開啟一個編輯器,來輸入當前正編輯的命令;

比如,用xargs (或parallel)。這個非常給力。你可以控制每行的引數個數 (-L) 和最大並行數 (-P) 。如果不確定它會不會照你想的做,就先用xargs echo查一下。另外,用-I{}也很方便。

比如,對ssh設定做些小最佳化可能很有用,比如這個~/.ssh/config檔案包含了防止特定網路環境下連線斷開、壓縮資料、多通道等選項:

1TCPKeepAlive=yes
2      ServerAliveInterval=15
3      ServerAliveCountMax=6
4      Compression=yes
5      ControlMaster auto
6      ControlPath /tmp/%r@%h:%p
7      ControlPersist yes

註意,日常部分有44條技能。請君堅持修煉完成,然後前往下一章節。

各類專門技巧

首先,是檔案及資料處理技能,一共33條:

比如,用ag在原始碼或資料檔案裡檢索 (grep -r 同樣可以做到,但相比之下 ag 更加先進) 。

比如,將HTML 轉為文字:lynx -dump -stdin。

比如,當你要處理棘手的 XML 時候,xmlstarlet 算是上古流傳下來的神器了。

……

後面還有系統除錯技巧20條,和單行指令碼技巧7條 (每條都有例子) 。

以及別忘了,冷門但有用的工具,是一個大大大大大串列。

至此,各種技巧已分類仔細,就算是老司機也可以按照自己的需要,找到一些好用的方法了。

還有更多

學到這裡,Linux使用者可能已經吃飽了。

專案裡還有Mac的專用技巧,以及Windows的專用技巧,決定先不詳述,大家可以自行探索。

最後,作者毫不吝惜地列舉了其他人類出品的各種命令列指南:

各路資源排山倒海向你湧來,再不學習可能就要被淹了。

傳送門:
https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

贊(0)

分享創造快樂