3 個提高生產力的必備 Linux 速查表
Linux 因其命令聞名,部分原因是 Linux 執行的幾乎所有操作都可以從終端調用;另一部分原因是 Linux 是一個高度模塊化的操作系統,它的工具被設計用於產生十分確定的結果,在非常了解一些命令後,你可以將這些命令進行奇妙的組合,產生有用的輸出。Linux 的學習過程一半是學習命令,另一半是學習如何將這些命令連成有意思的組合。
然而有這麼多 Linux 命令需要學習,邁出第一步似乎令人望而生畏。應該先學習哪一個命令?有那些命令需要熟練掌握,又有哪些命令只需要淺嘗輒止?認真考慮過這些問題後,我個人不相信有一個通用的答案。對所有人來說,「基本」命令很可能是相同的:
ls
cd
mv
有這些命令你就可以瀏覽自己的 Linux 文件系統。
但是,除了基本命令,不同行業的「默認」命令有所不同。系統管理員需要 系統自我檢查和監測 的工具;藝術家需要 媒體轉換 和 圖形處理 工具;家庭用戶可能想要 PDF 處理、日曆、文檔轉換 工具。這份列表無窮無盡。
然而一些 Linux 命令由於極其重要能夠脫穎而出 —— 或者因為這些命令是每個人不時需要的常用的底層工具,或者因為這些命令是每個人在大多數時間都會覺得有用的萬能工具。
這裡有三個需要添加到你的列表中的命令。
Sed
用途: sed
是一個任何 Linux 用戶都可以從學習中獲益的優良通用工具。從表面上看,它只是一個基於終端的「查找和替換」,能夠簡單快速地糾正多個文檔。sed
命令為我節省了打開單個文件、尋找和替換一個單詞、保存文件、關閉文件所需要的數個小時(也可能是數天)時間,僅此一條命令就證明了我在學習 Linux 終端的投入是合理的。一旦充分了解 sed
,你很有可能發現一個使生活更加輕鬆的潛在編輯技巧世界。
長處: 命令的長處在於重複。如果你只有一個要編輯的文件,很容易在傳統的 文本編輯器打開並進行「查找和替換」。然而,如果要替換 5 或 50 個文件,恰當地使用 sed
命令(可能結合 GNU Parallel 進行加速)可以幫你節省數個小時。
不足: 你需要權衡直接更改期望所花的時間和構建正確的 sed
命令可能需要的時間。使用常見的 sed 's/foo/bar/g'
語法所做的簡單編輯通常值得上輸入這些命令所花的時間;但是利用保持空間和任何 ed
形式子命令的複雜 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
是一個簡單的搜索命令,如果你閱讀了上面的例子,就已經基本有所了解。為了增強靈活性,你可以使用命令的擴展正則表達式語法。
不足: grep
的問題也是它的長處:它只有搜索功能。一旦你找到想要的內容,可能會面臨一個更大的問題 —— 如何處理找到的內容。有時進行的處理可能簡單如重定向輸出到一個文件,作為過濾後的結果列表。但是,更複雜的使用場景可能需要對結果做進一步處理,或者使用許多類似 awk、curl(湊巧的是,我們也有 curl 速查表)的命令,或者使用現代計算機上你所擁有的數千個其他選項中的任何一個命令。
秘技: 下載我們的 grep 速查表 獲取更多命令選項和正則表達式語法的快速參考。
Parted
用途: GNU parted
不是一個常用命令,但它是最強大的硬碟操作工具之一。關於硬碟驅動器的沮喪事實是 —— 數年來你一直忽略它們,直到需要設置一個新的硬碟時,才會想起自己對於格式化驅動器的最好方式一無所知,而此時熟悉 parted
會十分有用。GNU parted
能夠創建磁碟卷標,新建、備份、恢復分區。此外,你可以通過命令獲取驅動器及其布局的許多信息,並為文件系統初始化驅動器。
長處: 我偏愛 parted
而不是 fdisk
等類似工具的原因在於它組合了簡單的交互模式和完全的非交互選項。不管你如何使用 parted
,它的命令符合相同的語法,其編寫良好的幫助菜單包含了豐富的信息。更棒的是,命令本身是 智能 的 —— 給一個驅動器分區時,你可以用扇區和百分比指明分區的大小,parted
會儘可能計算出更精細的位置存放分區表。
不足: 在很長一段時間內我不清楚驅動器的工作原理,因此切換到 Linux 後,我花費了很長時間學習 GNU parted
。GNU parted
和大多數終端磁碟工具假定你已經知曉什麼是一個分區、驅動器由扇區組成、初始時驅動器缺少文件系統,需要磁碟卷標和分區表等等知識。硬碟驅動器的基礎而不是命令本身的學習曲線十分陡峭,而 GNU parted
並沒有做太多的努力來彌補潛在的認知差距。可以說,帶你完成磁碟驅動器的基礎知識學習不是命令的職責,因為有類似的 圖形應用,但是一個聚焦於工作流程的選項對於 GNU parted
可能是一個有用的附加功能。
秘技: 下載我們的 parted 速查表 獲取大量子命令和選項的快速參考。
了解更多
這是一些我最喜歡的命令列表,但是其中的命令自然取決於我如何使用自己的計算機。我編寫很多命令解釋器腳本,因此頻繁地使用 grep
查找配置選項,通過 sed
編輯文本。我還會用到 parted
,因為處理多媒體項目時,通常涉及很多硬碟驅動器。你可能已經開發了,或者很快就要使用最喜歡的(至少是 頻繁使用的)命令開發自己的工作流程。
整合新的流程到日常工作時,我會創建或者下載一個速查表(就像上面的鏈接),然後進行練習。我們都有自己的學習方式,找出最適合你的方式,學習一個新的必需命令。你對最常使用的命令了解越多,你就越能充分地使用它們。
via: https://opensource.com/article/21/4/linux-cheat-sheets
作者:Seth Kenlon 選題:lujun9972 譯者:YungeG 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive