使用Linux終端不只僅是隻輸入命令。學習這些基本的技巧,你就會逐漸掌握Bash shell,這個在大多數Linux發行版上默認使用的終端工具。linux
這篇文章是寫給缺少經驗的新手的,我相信大多數高級用戶已經知道了全部的這些技巧。可是,你仍然能夠看看,也許能學到你一直以來都忽略了的東西。shell
使用Tab鍵自動補全是基本的技巧。它能節省你不少時間,並且當你不肯定一個文件名或者命令怎麼拼寫時,它也及其有用。segmentfault
舉個例子,好比在當前目錄你有一個文件,文件名是「really long file nam」,你想刪除這個文件。你能夠輸入整個文件名,可是你得當心輸錯空格符(須要用\轉義)。若是你輸入」rm r」,而後按Tab鍵,Bash會自動爲你補全這個文件的名字。瀏覽器
固然,若是當前目錄中你有不少以字母r開頭的文件,Bash就會不知道你指的是哪個。好比當前目錄你有另外一個名字叫作「really very long file name」的文,當你按Tab鍵時,Bash會補全到「really\」部分,由於兩個文件都是以這開頭的。而後,再按Tab鍵你會看到全部能匹配該開頭的文件列表,以下圖。bash
接着輸入你想要的文件名而後按Tab鍵。這樣,當咱們輸「l」而後按Tab鍵時,Bash會自動補全咱們想要的文件名。工具
這種方法對於輸入命令來講一樣適用。當你不肯定你想要的命令是什麼,只記得以」gnome」開頭時,輸入「gnome」而後按Tab鍵,你就會看到全部可能的結果。學習
管道命令容許你把一個命令的輸出結果轉移給另外一個命令。在Unix的設計哲學中,每一個程序都是隻有少而精的功能。舉個例子,」ls」命令會顯示當前目錄中全部的文件列表,而」grep」命令會在制定的地方搜索輸入的字符串。spa
把這二者經過管道命令(用「|」符號表示)結合起來,你就能夠在當前目錄搜索某個文件了,如下命令用來搜索「really」:.net
ls | grep really
星號*``是一個能夠匹配任何東西的通配符。好比,若是咱們想把
really long file name和
really very long file name`從當前目錄都刪了,咱們可使用以下命令:firefox
rm really*name
這個命令刪除了全部以really開頭,以name結尾的文件。若是你用`rm *``命令,將會刪除該目錄下的全部文件,因此需謹慎使用。
>
字符能夠把一個命令的輸出結果重定向到一個文件,而不須要額外使用另外一個命令。好比,下圖的代碼使用ls
命令來列出當前目錄的全部文件,並把輸出的列表輸入到了一個名爲file1
的文件,而不是僅僅輸出顯示在終端上。
ls > file1
Bash會記得你使用過的命令的歷史。你可使用向上鍵和向下鍵來翻閱你已經使用過的命令。使用history
命令會把歷史命令都打印出來,所以你可使用管道命令來搜索你最近使用的命令。
關於命令行歷史,還有不少可使用的技巧
波浪符~
表明當前用戶的主目錄。因此,你可使用cd ~``切換到你的主目錄,而不用輸入
cd /home/name。這對相對路徑一樣適用,好比
cd ~/Desktop`會切換到當前用戶的桌面目錄。
與之相似的是,.
表明當前目錄,..
表明父級目錄。全部,cd ..
會跳到父級目錄。這對相對路徑一樣有效,好比你在Desktop目錄,你想切換到與Desktop目錄同級的Document目錄,你可使用cd ../Documents
命令。
默認狀況下,Bash會在當前終端下運行你的命令。正常來講沒有問題,可是當你想同時運行一個應用程序而又要繼續使用該終端時怎麼辦?好比你輸入」firefox」命令來運行火狐瀏覽器,火狐將會佔據你的終端而且顯示一些錯誤信息等輸出,直到你關閉它。可是加一個」&」符號在命令後面會使Bash在後臺運行該程序:
firefox &
你一樣能夠用Bash運行兩個命令,一個接着一個。第二個命令只有當第一個命令成功運行完畢後纔會運行。要想作到這樣,把兩個命令在同一行中用`&&``分隔便可。
好比,sleep
命令會以秒爲單位接受一個參數,而後倒計時,容許結束。單獨來用的話,該命令沒有任何用處,可是你能夠把它做爲運行下一個程序以前的延時。下面的命令會停5秒而後運行gnome的截屏工具:
sleep 5 && gnome-screenshot
你還有任何想要分享的技巧嗎?請留言。
原文 Become a Linux Terminal Power User With These 8 Tricks
翻譯 極客範 - minejo