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















 
 
 












 
 
 
 