通過8個技巧讓你成為一個超強的Linux終端使用者

geekfan發表於2014-03-08

  使用Linux終端不僅僅是隻輸入命令。學習這些基本的技巧,你就會逐漸掌握Bash shell,這個在大多數Linux發行版上預設使用的終端工具。

  這篇文章是寫給缺乏經驗的新手的,我相信大多數高階使用者已經知道了所有的這些技巧。但是,你仍然可以看看,也許能學到你一直以來都忽略了的東西。

ternimal

 Tab鍵自動補全

  使用Tab鍵自動補全是基本的技巧。它能節省你很多時間,而且當你不確定一個檔名或者命令怎麼拼寫時,它也及其有用。

  舉個例子,比如在當前目錄你有一個檔案,檔名是“really long file nam”,你想刪除這個檔案。你可以輸入整個檔名,但是你得小心輸錯空格符(需要用\轉義)。如果你輸入”rm r”,然後按Tab鍵,Bash會自動為你補全這個檔案的名字。

  當然,如果當前目錄中你有很多以字母r開頭的檔案,Bash就會不知道你指的是哪一個。比如當前目錄你有另一個名字叫做“really very long file name”的文,當你按Tab鍵時,Bash會補全到“really\”部分,因為兩個檔案都是以這開頭的。然後,再按Tab鍵你會看到所有能匹配該開頭的檔案列表,如下圖。

tab

  接著輸入你想要的檔名然後按Tab鍵。這樣,當我們輸“l”然後按Tab鍵時,Bash會自動補全我們想要的檔名。

  這種方法對於輸入命令來說同樣適用。當你不確定你想要的命令是什麼,只記得以”gnome”開頭時,輸入“gnome”然後按Tab鍵,你就會看到所有可能的結果。

 管道命令

  管道命令允許你把一個命令的輸出結果轉移給另一個命令。在Unix的設計哲學中,每個程式都是隻有少而精的功能。舉個例子,”ls”命令會顯示當前目錄中所有的檔案列表,而”grep”命令會在制定的地方搜尋輸入的字串。

  把這兩者通過管道命令(用“|”符號表示)結合起來,你就可以在當前目錄搜尋某個檔案了,以下命令用來搜尋“really”: 

ls | grep really

pipe

 萬用字元

  星號”*”是一個可以匹配任何東西的萬用字元。比如,如果我們想把”really long file name“和”really very long file name“從當前目錄都刪了,我們可以使用如下命令: 

rm really*name

  這個命令刪除了所有以really開頭,以name結尾的檔案。如果你用”rm *”命令,將會刪除該目錄下的所有檔案,所有需謹慎使用。

wildcards

 輸出重定向

  “〉”字元可以把一個命令的輸出結果重定向到一個檔案,而不需要額外使用另一個命令。比如,下圖的程式碼使用”ls”命令來列出當前目錄的所有檔案,並把輸出的列表輸入到了一個名為”file1“的檔案,而不是僅僅輸出顯示在終端上。 

ls > file1

redirection

 命令列歷史

  Bash會記得你使用過的命令的歷史。你可以使用向上鍵和向下鍵來翻閱你已經使用過的命令。使用”history”命令會把歷史命令都列印出來,因此你可以使用管道命令來搜尋你最近使用的命令。

  關於命令列歷史,還有很多可以使用的技巧

history

 ~,.& ..

  波浪符”~”代表當前使用者的主目錄。所以,你可以使用”cd ~”切換到你的主目錄,而不用輸入”cd /home/name”。這對相對路徑同樣使用,比如”cd ~/Desktop”會切換到當前使用者的桌面目錄。

  與之類似的是,”.”代表當前目錄,”..”代表父級目錄。所有,”cd ..”會跳到父級目錄。這對相對路徑同樣有效,比如你在Desktop目錄,你想切換到與Desktop目錄同級的Document目錄,你可以使用”cd ../Documents”命令。

cd

 後臺執行命令

  預設情況下,Bash會在當前終端下執行你的命令。正常來說沒有問題,但是當你想同時執行一個應用程式而又要繼續使用該終端時怎麼辦?比如你輸入”firefox”命令來執行火狐瀏覽器,火狐將會佔據你的終端並且顯示一些錯誤資訊等輸出,直到你關閉它。但是加一個”&”符號在命令後面會使Bash在後臺執行該程式: 

firefox &

background

 條件執行

  你同樣可以用Bash執行兩個命令,一個接著一個。第二個命令只有當第一個命令成功執行完畢後才會執行。要想做到這樣,把兩個命令在同一行中用”&&”分隔即可。

  比如,”sleep”命令會以秒為單位接受一個引數,然後倒數計時,允許結束。單獨來用的話,該命令沒有任何用處,但是你可以把它作為執行下一個程式之前的延時。下面的命令會停5秒然後執行gnome的截圖工具:

sleep 5 && gnome-screenshot

  你還有任何想要分享的技巧嗎?請留言。

  原文連結: Chris Hoffman 翻譯: 極客範 - minejo

相關文章