一文掌握所有命令行包括73個“冷門但有用”的技巧
作為程序員,都知道命令行的好處。奈何實在學不會、記不住。今天,恰好有一個專門總結了各種常用和冷門命令行技巧的項目,號稱《命令行的藝術》,登上了GitHub熱榜。
一看,確實還有點來頭。
光看標星數,就有足足112k。
而它的作者,主要由19位程序員組成,除此之外,還有數十人作出了貢獻。
其內容主要都與Linux命令行有關(另有兩章專門講macOS和Windows系統),覆蓋了基礎、日常使用、文件及數據處理、系統調試、單行命令、“冷門但有用”等多方面的知識和技巧,用很簡潔的方式+示例予以了說明。
最開始,該項目只是在Quora上傳播,後來挪到GitHub上後便火得一發不可收拾。
由於實在太乾貨,還被翻譯成了17種語言,其中就包括中文。
那麼,對於我們那不太熟的命令行技術,再挽救一下?
Ps. 熟的也可以看哦,畢竟還有一些“奇技淫巧”。
一文掌握所有命令行
文中所用命令主要基於交互式Bash,一共分為8篇。
基礎篇
這篇主要需要你掌握命令行基礎知識,一共12小項,包括:
- 會用man bash命令查閱手冊,會用apropos查找文檔,熟悉一個文本編輯器(推薦Vim);
- 懂得> 、<、|、>>等符號的區別,會使用通配符,會使用ssh進行遠程命令行登錄;
- 熟悉Bash中的任務管理工具、基本的文件管理工具、基本的網絡工具;
- 懂正則表達式,會git,懂得查找和安裝軟件包。
日常使用篇
基礎知識完成後,這裡要教的都是一些非常日常的技巧,一共43條,比如:
- ctrl-r可以搜索命令行歷史記錄,而按下右箭頭鍵可以不立即執行,進行修改;
- ctrl-x+ctrl-e可再打開一個編輯器來輸入當前正編輯的命令,這對於編寫長命令很方便;
- alias命令可以創建常用命令的快捷形式(eg. alias ll=’ls -latr’ ,就創建了一個別名為ll新命令);
- 當使用通配符匹配大量文件名時,常會遇到“Argument list too long”的錯誤信息,這種情況下換用find或xargs通常可以解決。
文件及數據處理篇
這篇有35條,比如:
- 在當前目錄下通過文件名查找一個文件,可以使用find . -iname ‘something’命令;
- 想要轉換Markdown、HTML等不同格式的文件時,使用pandoc;
- 處理棘手的XML時,用上古流傳下來的神器xmlstarlet;
- 更改文件時除了cut和paste,別忘了join。
系統調試篇
本篇也不少,共20條,比如:
- 進行web調試時用curl和curl -I命令,或者它們的好兄弟wget,或者更潮的httpie;
- 查看磁盤使用情況時用ncdu,它比普通du -sh *更節省時間;
- 如果刪除了一個文件,但通過du發現沒有釋放預期的磁盤空間,請用如下命令檢查文件是否被進程佔用:lsof | grep deleted | grep “filename-of-my-big-file”……
單行命令篇
這部分指的就是我們所說的one-liners命令,一共7條,比如:
想計算文本文件第三列中所有數的和時,下面的命令可能會比同等作用的Python代碼速度快三倍、代碼量少三倍:awk ‘{ x += $3 } END { print x }’ myfile。
冷門但有用篇
這部分是也算全文最長的一篇了,一共73條,各位可各取所需~
macOS篇和Windows篇
最後,對於使用macOS和Windows系統的程序員來說,也有一些小技巧不容錯過。
比如在macOS中,如果你想在終端中將Option鍵當作alt鍵使用,那麼只需打開“偏好設置-> 描述文件-> 鍵盤”,並勾選“使用Option鍵作為Meta鍵”;
由於macOS基於BSD UNIX,許多命令(例如ps,ls,tail,awk,sed)都和Linux中有微妙的不同,需要注意,具體區別可以通過標題為“BSD General Commands Manual” 的man頁面查看。
而在Windows中,只需安裝一個Cygwin,你就可以直接感受Unix shell的威力了——前6篇介紹的東西復用就ok。
所以在這篇,作者也提供了一些Cygwin命令的使用技巧。
更多詳細內容直接戳下面的地址~
項目主頁:
https://github.com/jlevy/the-art-of-command-line
中文版:
https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md
來源:量子位