三個提高生產(chǎn)力的必備 Linux 速查表
下載
sed
、grep
和parted
的速查表來整合新的流程到你的工作中。
Linux 因其命令聞名,部分原因是 Linux 執(zhí)行的幾乎所有操作都可以從終端調(diào)用;另一部分原因是 Linux 是一個高度模塊化的操作系統(tǒng),它的工具被設(shè)計用于產(chǎn)生十分確定的結(jié)果,在非常了解一些命令后,你可以將這些命令進行奇妙的組合,產(chǎn)生有用的輸出。Linux 的學習過程一半是學習命令,另一半是學習如何將這些命令連成有意思的組合。
然而有這么多 Linux 命令需要學習,邁出第一步似乎令人望而生畏。應(yīng)該先學習哪一個命令?有那些命令需要熟練掌握,又有哪些命令只需要淺嘗輒止?認真考慮過這些問題后,我個人不相信有一個通用的答案。對所有人來說,“基本”命令很可能是相同的:
ls
cd
mv
有這些命令你就可以瀏覽自己的 Linux 文件系統(tǒng)。
但是,除了基本命令,不同行業(yè)的“默認”命令有所不同。系統(tǒng)管理員需要 系統(tǒng)自我檢查和監(jiān)測 的工具;藝術(shù)家需要 媒體轉(zhuǎn)換 和 圖形處理 工具;家庭用戶可能想要 PDF 處理、日歷、文檔轉(zhuǎn)換 工具。這份列表無窮無盡。
然而一些 Linux 命令由于極其重要能夠脫穎而出 —— 或者因為這些命令是每個人不時需要的常用的底層工具,或者因為這些命令是每個人在大多數(shù)時間都會覺得有用的萬能工具。
這里有三個需要添加到你的列表中的命令。
Sed
用途: sed
是一個任何 Linux 用戶都可以從學習中獲益的優(yōu)良通用工具。從表面上看,它只是一個基于終端的“查找和替換”,能夠簡單快速地糾正多個文檔。sed
命令為我節(jié)省了打開單個文件、尋找和替換一個單詞、保存文件、關(guān)閉文件所需要的數(shù)個小時(也可能是數(shù)天)時間,僅此一條命令就證明了我在學習 Linux 終端的投入是合理的。一旦充分了解 sed
,你很有可能發(fā)現(xiàn)一個使生活更加輕松的潛在編輯技巧世界。
長處: 命令的長處在于重復(fù)。如果你只有一個要編輯的文件,很容易在傳統(tǒng)的 文本編輯器打開并進行“查找和替換”。然而,如果要替換 5 或 50 個文件,恰當?shù)厥褂?nbsp;sed
命令(可能結(jié)合 GNU Parallel 進行加速)可以幫你節(jié)省數(shù)個小時。
不足: 你需要權(quán)衡直接更改期望所花的時間和構(gòu)建正確的 sed
命令可能需要的時間。使用常見的 sed 's/foo/bar/g'
語法所做的簡單編輯通常值得上輸入這些命令所花的時間;但是利用保持空間和任何 ed
形式子命令的復(fù)雜 sed
命令可能需要高度集中的注意力和多次的試錯。事實證明,使用 sed
進行編輯通常是更好的方式。
秘技: 下載我們的 sed 速查表 獲取命令的單字母子命令和語法概述的快速參考。
Grep
用途: grep
一詞來源于其公認的笨拙描述:全局正則表達式打印。換言之,在文件中(或者其他形式的輸入中)找到的任何匹配模式,grep
都會打印到終端。這使得 grep
成為一個強大的搜索工具,尤其擅長處理大量的文本。
你可以使用 grep
查找 URL:
$ grep --only-matching \
http\:\/\/.* example.txt
你可以使用 grep
查找一個特定的配置項:
$ grep --line-number \
foo= example.ini
2:foo=true
當然,你還可以將 grep
和其他命令組合:
$ grep foo= example.ini | cut -d= -f2
true
長處: grep
是一個簡單的搜索命令,如果你閱讀了上面的例子,就已經(jīng)基本有所了解。為了增強靈活性,你可以使用命令的擴展正則表達式語法。
不足: grep
的問題也是它的長處:它只有搜索功能。一旦你找到想要的內(nèi)容,可能會面臨一個更大的問題 —— 如何處理找到的內(nèi)容。有時進行的處理可能簡單如重定向輸出到一個文件,作為過濾后的結(jié)果列表。但是,更復(fù)雜的使用場景可能需要對結(jié)果做進一步處理,或者使用許多類似 awk、curl(湊巧的是,我們也有 curl 速查表)的命令,或者使用現(xiàn)代計算機上你所擁有的數(shù)千個其他選項中的任何一個命令。
秘技: 下載我們的 grep 速查表 獲取更多命令選項和正則表達式語法的快速參考。
Parted
用途: GNU parted
不是一個常用命令,但它是最強大的硬盤操作工具之一。關(guān)于硬盤驅(qū)動器的沮喪事實是 —— 數(shù)年來你一直忽略它們,直到需要設(shè)置一個新的硬盤時,才會想起自己對于格式化驅(qū)動器的最好方式一無所知,而此時熟悉 parted
會十分有用。GNU parted
能夠創(chuàng)建磁盤卷標,新建、備份、恢復(fù)分區(qū)。此外,你可以通過命令獲取驅(qū)動器及其布局的許多信息,并為文件系統(tǒng)初始化驅(qū)動器。
長處: 我偏愛 parted
而不是 fdisk
等類似工具的原因在于它組合了簡單的交互模式和完全的非交互選項。不管你如何使用 parted
,它的命令符合相同的語法,其編寫良好的幫助菜單包含了豐富的信息。更棒的是,命令本身是 智能 的 —— 給一個驅(qū)動器分區(qū)時,你可以用扇區(qū)和百分比指明分區(qū)的大小,parted
會盡可能計算出更精細的位置存放分區(qū)表。
不足: 在很長一段時間內(nèi)我不清楚驅(qū)動器的工作原理,因此切換到 Linux 后,我花費了很長時間學習 GNU parted
。GNU parted
和大多數(shù)終端磁盤工具假定你已經(jīng)知曉什么是一個分區(qū)、驅(qū)動器由扇區(qū)組成、初始時驅(qū)動器缺少文件系統(tǒng),需要磁盤卷標和分區(qū)表等等知識。硬盤驅(qū)動器的基礎(chǔ)而不是命令本身的學習曲線十分陡峭,而 GNU parted
并沒有做太多的努力來彌補潛在的認知差距。可以說,帶你完成磁盤驅(qū)動器的基礎(chǔ)知識學習不是命令的職責,因為有類似的 圖形應(yīng)用,但是一個聚焦于工作流程的選項對于 GNU parted
可能是一個有用的附加功能。
秘技: 下載我們的 parted 速查表 獲取大量子命令和選項的快速參考。
了解更多
這是一些我最喜歡的命令列表,但是其中的命令自然取決于我如何使用自己的計算機。我編寫很多命令解釋器腳本,因此頻繁地使用 grep
查找配置選項,通過 sed
編輯文本。我還會用到 parted
,因為處理多媒體項目時,通常涉及很多硬盤驅(qū)動器。你可能已經(jīng)開發(fā)了,或者很快就要使用最喜歡的(至少是 頻繁使用的)命令開發(fā)自己的工作流程。
整合新的流程到日常工作時,我會創(chuàng)建或者下載一個速查表(就像上面的鏈接),然后進行練習。我們都有自己的學習方式,找出最適合你的方式,學習一個新的必需命令。你對最常使用的命令了解越多,你就越能充分地使用它們。