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

發表於2017-11-28

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

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

1.Tab 補全

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

如果在當前目錄下存在著另一個名為“really very long file name”的檔案,你敲擊了Tab鍵。Bash 將為所有以“r”開頭的檔案自動補充“really\ ”部分。此時繼續敲擊Tab鍵,你將得到匹配所有檔名的列表。

2.管道機制

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

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

3.萬用字元

“*”(星號)字元是一種匹配任意長度字元的萬用字元。比如,你想刪除當前資料夾下名為“really long file name”和“really very long file name”的兩個檔案,你可以執行以下命令:

這條命令會刪除所有以“really”開頭以“name”結尾的檔案。但是,如果你執行的是 rm * 這條命令,你將會刪除資料夾下的所有檔案。(譯註:使用萬用字元時要小心,尤其是你的rm沒有-f確認時!)

4.輸出重定向

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

5.歷史記錄

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

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

同樣,“.”代表當前目錄,“..”代表當前目錄的父目錄。使用 cd .. 可以返回上一級目錄。它們也可以用在相關路徑上,舉例說明:你當前處在 Desktop 資料夾下,通過 cd ../Documents 命令,你可以轉到與 Desktop 共有同一父資料夾的 Documents 資料夾去。

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

6.後臺命令

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

7.條件執行

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

 

相關文章