天天看點

成為 Linux 終端高手的七種武器

linux 終端不僅是一個鍵入指令的地方。如若你能熟谙這些基礎技巧,那麼你會在絕大多數 linux 發行版的預設使用的 bash shell中遊刃有餘。

這是howtogeek.com 網站特供給初級使用者更新打怪時不能忘記攜帶的七種武器——

成為 Linux 終端高手的七種武器

<a target="_blank"></a>

這樣能節省時間,并且對于輸入那些你不很确定其具體名稱的檔案和指令來說很友善。比如,目前目錄下有一個名為“really long file name”的檔案,你想要删除它。你可以輸入完整的檔案名,但是你必須確定正确地輸入了空格和每個字母。若目前目錄下還有許多以字母“r”開頭的檔案,(如果你沒有正确地輸入字元) bash 将不知道你想要删除哪一個檔案。

如果在目前目錄下存在着另一個名為“really very long file name”的檔案,你敲擊了tab鍵。bash 将為所有以“r”開頭的檔案自動補充“really\ ”部分。此時繼續敲擊tab鍵,你将得到比對所有檔案名的清單。

這種機制允許你把一條指令的輸出傳送到另一條指令。按照 unix 哲學,每個程式都足夠小,隻做一件事并将之做到最好。例如,ls指令列出目前目錄下的所有檔案,grep指令搜尋輸入其中的指定檢索項。

你可以通過管道機制(|字元)把二者結合起來,在目前目錄下搜尋檔案。以下給出的指令(在目前檔案夾下)搜尋關鍵字為“word”的檔案:

“*”(星号)字元是一種比對任意長度字元的通配符。比如,你想删除目前檔案夾下名為“really long file name”和“really very long file name”的兩個檔案,你可以運作以下指令:

這條指令會删除所有以“really”開頭以“name”結尾的檔案。但是,如果你運作的是 rm * 這條指令,你将會删除檔案夾下的所有檔案。(譯注:使用通配符時要小心,尤其是你的rm沒有-f确認時!)

“&gt;”字元可以把一條指令的輸出重定向到一個檔案或另一條指令。比如,下面這行指令執行完 ls 後會列出目前檔案夾下的所有檔案,其結果不是在終端顯示,而是輸出到目前檔案夾下一個名為“file1”的檔案中去:

bash 能記住你以前輸入過的指令,上、下方向鍵可以逐行調出它們。使用 history 指令列印曆史記錄,以管道機制 grep 選擇性地輸出你想要的結果。

“~”,也叫做波浪符,用來表示目前使用者的主目錄。相比通過 cd /home/name 到達你的主目錄,你可以輸入 cd ~ 來達到相同效果。這點也可以在相關路徑上使用:比如 cd ~/desktop 能夠到達目前使用者的 desktop 目錄。

同樣,“.”代表目前目錄,“..”代表目前目錄的父目錄。使用 cd .. 可以傳回上一級目錄。它們也可以用在相關路徑上,舉例說明:你目前處在 desktop 檔案夾下,通過 cd ../documents 指令,你可以轉到與 desktop 共有同一父檔案夾的 documents 檔案夾去。

(譯注:“-”代表前一個目錄,cd - 可以傳回到前一個工作目錄。)

bash 預設情況下會在目前終端下執行你鍵入的每條指令。通常這樣是沒有問題的,但是如果你想要在啟動某個應用後繼續使用終端呢?通過輸入 firefox 啟動火狐浏覽器,你的終端将被錯誤提示等各種資訊輸出占據,直到你關閉火狐浏覽器為止。在 bash 中你可以通過在指令結尾添加“&amp;”操作符來背景執行程式。

bash 也可以連續執行兩條指令。 第二條指令僅在第一條指令成功執行後才會開始執行。如要如此,你可以通過鍵入“&amp;&amp;”,也就是兩個“&amp;”字元進行分隔,在同一行輸入兩條指令。下面給出的指令會在等待 5 秒後運作 gnome-screenshot 工具:

原文釋出時間為:2013-12-25

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀