提高UNIX/Linux工作效率的十個(gè)小貼士
譯文【51CTO.com快譯】引言:如果您在服務(wù)器上安裝的是Linux操作系統(tǒng),并且每天都需要用到大量UNIX命令的話(huà),我們?cè)诖藶槟鷾?zhǔn)備了十個(gè)用于加速UNIX/Linux輸入和提高工作效率的小貼士。
您是否曾為看到有人在UNIX上飛快地操作指令而贊嘆不已?至少我就碰到過(guò)好幾次,而且我將他們視為自己努力提高UNIX技能的目標(biāo)。在本文中,我將與您分享一些自己曾經(jīng)在Linux系統(tǒng)中實(shí)現(xiàn)快速、高效工作的常用UNIX命令操作的范例,希望能對(duì)您有所幫助。
本人供職于金融服務(wù)業(yè),工作內(nèi)容主要涉及到在電子交易及衍生品系統(tǒng)上,開(kāi)發(fā)和支持在線(xiàn)股票與期貨業(yè)務(wù)。由于我們所有的服務(wù)都運(yùn)行在Linux服務(wù)器上,所以對(duì)我來(lái)說(shuō),能夠在Linux上流暢嫻熟地工作是非常重要的。
與本文屬于相同系列的文章有:《UNIX的10大基本網(wǎng)絡(luò)命令》,如果您沒(méi)有閱讀過(guò)且饒有興趣的話(huà),可以去找來(lái)參考閱讀一下。
1.使用 ! 來(lái)執(zhí)行***一條命令
此用法節(jié)省了我平均30%的時(shí)間。通常情況下,您可能會(huì)碰到需要在較短的時(shí)間內(nèi),屢次輸入相同UNIX命令的情況。以前,我所使用的普通技巧是:通過(guò)鍵盤(pán)上的向上和向下箭頭,來(lái)查找我最近使用過(guò)的命令,選中后再回車(chē)執(zhí)行。這顯然需要我逐一檢索的時(shí)間。
但是,如今我知道了可以使用 ! 這一技巧。而我只需要記住輸入過(guò)的命令名稱(chēng)便可。例如:
- 如果輸入“!ls”,系統(tǒng)就會(huì)執(zhí)行我***一次輸入過(guò)的“ls -lrt”。
- 如果輸入“!vim”則能夠打開(kāi)我***一次編輯過(guò)的文件,而不必輸入其完整的命令。
通過(guò)使用該技巧,您不但能夠節(jié)省在繁復(fù)命令的拼寫(xiě)上所花費(fèi)的輸入時(shí)間,還能在某些不能運(yùn)用向上和向下箭頭來(lái)調(diào)出過(guò)往命令的bash shell(如csh或ksh)中進(jìn)行使用。
例如:如果您在執(zhí)行了“ls -l stocks.txt”之后,想直接打開(kāi)stocks.txt文件,就可以直接使用“vi !$(***一個(gè)參數(shù))”。
2.使用 !! 來(lái)調(diào)用***一條命令
該技巧是前面的 ! 的一個(gè)擴(kuò)展,可以幫您引用且調(diào)出前面執(zhí)行過(guò)的***一條命令。只要雙擊 ! ,您就能獲得驚人的快捷體驗(yàn)。
例如:我前面執(zhí)行過(guò) ifconfig | grep "inet addr:",但是現(xiàn)在卻碰到了權(quán)限不夠,需要root用戶(hù)權(quán)限,那么我就可以直接輸入su -c "!!" root。此處su用來(lái)選擇用戶(hù),-c用來(lái)表示要執(zhí)行的具體命令,而“!!”就代替了我***一次運(yùn)行過(guò)的命令。
該技巧同樣對(duì)于那些不能運(yùn)用向上和向下箭頭的csh或ksh特別有效。如果您要經(jīng)常停止/啟動(dòng)服務(wù)器、或使用Java來(lái)調(diào)試應(yīng)用的話(huà),請(qǐng)熟悉該技巧。
順便說(shuō)一句,如果您還不熟悉bash shell和shell腳本的話(huà),我建議您參看一下:《bash shell腳本的初學(xué)者速成課程》。它對(duì)于Linux初學(xué)者非常實(shí)用。
3.使用 CTRL+R 去匹配稍久遠(yuǎn)的命令
在Linux系統(tǒng)中,如果您要查找那些并非最近幾次輸入過(guò),而是相對(duì)久遠(yuǎn)的命令,那么僅靠使用鍵盤(pán)的向上和向下箭頭,顯然效率不高。此時(shí),我們就可以使用該技巧來(lái)通過(guò)相同的參數(shù)進(jìn)行反向搜索查找。
例如:您只需按下“CRTL+R”,然后輸入您在以前命令中所出現(xiàn)過(guò)的關(guān)鍵字,UNIX就能幫您找到該命令。您在確認(rèn)后直接按下回車(chē)鍵便可。當(dāng)然,您也可以繼續(xù)按向上或向下鍵,來(lái)查找該命令之前或之后的命令,并通過(guò)左右鍵來(lái)移動(dòng)光標(biāo),以修改此條命令。
就我自己而言,由于上述三種技巧的使用頻率比較高,它們基本上能節(jié)省我50%-60%的時(shí)間。
4.使用 History 命令,獲得最常用的UNIX命令
該命令實(shí)際上是我初學(xué)UNIX時(shí)的入門(mén)級(jí)技巧,想必也是在UNIX和Shell腳本中對(duì)您最有用的命令。
在大多數(shù)情況下,您經(jīng)常會(huì)在Linux系統(tǒng)中執(zhí)行諸如啟動(dòng)、停止、檢查日志文件、編譯或執(zhí)行發(fā)布等特定命令。由于不同的應(yīng)用所使用的拼寫(xiě)方式會(huì)略有不同,因此如果您不記得確切的命令語(yǔ)法也不必?fù)?dān)心,只要輸入:history | grep "關(guān)鍵字",您就能從Linux系統(tǒng)的歷史記錄中找到相應(yīng)的命令。
當(dāng)然,系統(tǒng)有一些特定的環(huán)境變量,如HISTSIZE就定義了UNIX的history里能存儲(chǔ)的命令條數(shù)。因此它在幫助您節(jié)約時(shí)間的同時(shí),也省去了您去頻繁地翻閱手冊(cè)。
順便說(shuō)一句,如果您不熟悉Linux基本命令的話(huà),那么我強(qiáng)烈建議您通過(guò)《linux 命令行基礎(chǔ)知識(shí)》,來(lái)補(bǔ)足自己的短板,以免在手頭任務(wù)吃緊時(shí),還不得不在線(xiàn)搜索相關(guān)的Linux命令。
5.在 grep 中使用正則表達(dá)式進(jìn)行查找
grep和find是UNIX提供給我們的兩個(gè)絕好的工具。我們不可避免地需要在UNIX中搜索某些內(nèi)容,例如文件、目錄、文件中的某些字(如ERROR或Exception)。因此如果您知道如何使用grep與find的正則表達(dá)式,那么就能節(jié)省大量輸入命令的時(shí)間。
例如:如果您知道如何使用egrep,那么就能通過(guò)輸入 egrep "ERROR|Exception" *. xml,來(lái)取代兩個(gè)單獨(dú)的grep命令去分別查找ERROR和Exception。
如果想了解更多grep和find命令的有關(guān)信息,您可以參看《grep命令的十種示例》(http://javarevisited.blogspot.sg/2011/06/10-examples-of-grep-command-in-unix-and.html)和《Linux中find命令的十種示例》(http://javarevisited.blogspot.sg/2011/03/10-find-command-in-unix-examples-basic.html)。
6.使用管道來(lái)替代發(fā)送兩次命令
上面的示例中已經(jīng)展示了管道的用法,不知您是否已經(jīng)注意到了呢?
7.使用別名,并在Bash Profile或bashrc文件中定義它們
您是否有看過(guò)別人會(huì)在自己的系統(tǒng)中用到一些奇怪的命令?也許他們使用的就是在其.bashrc或.profile文件所預(yù)先設(shè)置好的別名機(jī)制。
他們會(huì)通過(guò)在.bashrc和.profile文件中大量地使用簡(jiǎn)化了的別名命令,來(lái)節(jié)約反復(fù)輸入的時(shí)間。例如:
- 用"l"來(lái)表示查找所有的隱藏文件。
- 用"ls"來(lái)包括所有的有用選項(xiàng),如 -lrtH就可以顯示所有的相關(guān)信息。
您可以通過(guò)參看《linux命令行界面(CLI)基礎(chǔ)知識(shí)》,來(lái)進(jìn)一步了解更多有關(guān)Linux的登錄機(jī)制,以及.login、.profile和.bashrc文件在Linux bash shell中的作用。
8.使用 pushd、popd、cd -、~來(lái)切換目錄
不知大家是否有過(guò)這樣的體驗(yàn):由于任務(wù)的要求,我們需要不停地在多個(gè)深層次的目錄之間進(jìn)行切換。雖然在輸入cd命令的時(shí)候,我們可以使用tab鍵,但是冗長(zhǎng)的路徑著實(shí)會(huì)花費(fèi)時(shí)間。
因此根據(jù)我的經(jīng)驗(yàn),我們完全可以:
- 使用"cd –"回到前一級(jí)目錄,以實(shí)現(xiàn)兩個(gè)目錄位置之間的切換。
- 使用"pushd"以切換到一個(gè)作為參數(shù)的目錄,并把原目錄和當(dāng)前的目錄存入到一個(gè)虛擬的堆棧中,從而實(shí)現(xiàn)目錄的交換。
- 使用"popd"以彈出堆棧中最近的目錄。
9.最小化擊鍵或增加打字速度
眾所周知,您的鍵盤(pán)輸入越少,工作效率就越高。因此您可以在bash中充分使用tab鍵,來(lái)讓系統(tǒng)自動(dòng)猜想,并幫您完成后續(xù)的參數(shù)內(nèi)容。當(dāng)然您也可以用到我們?cè)谇懊嫣岬竭^(guò)的CRTL+R,來(lái)對(duì)前面輸入過(guò)的復(fù)雜命令,進(jìn)行小修小改快速成型。
10.不斷學(xué)習(xí)新的Linux命令
學(xué)習(xí)使人熟練。只有通過(guò)不斷嘗試新的命令和參數(shù)選項(xiàng),才能縮短您在執(zhí)行特定任務(wù)時(shí)的切換時(shí)間。另外,您還可以使用ctrl+z、fg和bg來(lái)暫停某個(gè)進(jìn)程。其中:
- 使用"ctrl+z"可以將某個(gè)正在前臺(tái)執(zhí)行的命令掛起。
- 使用"fg"可以將后臺(tái)某個(gè)命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。
- 使用"bg"可以對(duì)某個(gè)在后臺(tái)被暫停的命令予以恢復(fù)并繼續(xù)執(zhí)行。
這些命令對(duì)于您需要同時(shí)查看多個(gè)文件或日志時(shí),都是極其實(shí)用的。
如果您在服務(wù)器上安裝的是Linux操作系統(tǒng),并且每天都需要用到大量UNIX命令的話(huà),那么我們上述羅列的十項(xiàng)小貼士,定能幫您加速UNIX/Linux的輸入并提高工作效率。當(dāng)然,如果您愿意分享自己的Linux經(jīng)驗(yàn)或Shell實(shí)用程序的話(huà),請(qǐng)記得給我留言。
原文標(biāo)題:10 Tips on Working Fast in UNIX or Linux,作者:Nitesh Behani
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】