GitHub五萬星中文資源:命令行技巧大合集,新老司機各取所需

△ 也可以是火車司機
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
熟練使用命令行,是成為一個老司機必備的技能。
這里有一份入門&進階指南,名字叫“命令行的藝術”,在GitHub收獲了5萬標星。
技巧覆蓋面廣,且富含具體的例子。主要為Linux所寫,卻也有Mac和Windows的專用章節。
項目作者Joshua Levy說:
文章并不長,但當你掌握這里列出的所有技巧時,你就學會很多關于命令行的東西了。
他還說了:
這份資源不僅能幫助剛接觸命令行的新手,對有經驗的人也大有裨益。
從誕生之初到今天,項目被翻成了16種語言。就是說,如果感覺中文有翻譯腔,可以回去看英文原版 (手動狗頭) 。

那么,先來觀察一下,老司機是怎樣煉成的。
基礎篇 & 日常篇
這份資源主要專注在交互式 Bash,但也有許多技巧可以用在其他shell和普通Bash腳本里。
基礎篇
所以,萌新就從Bash的基礎知識開始學習。然后:
要熟悉一種基于文本的編輯器;學會用man命令閱讀文檔。
還有,用apropos查找文檔。要知道有些命令不對應可執行文件,而是Bash內置好的。可以用help和help-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