提高UNIX/Linux工作效率的十個小貼士
引言:如果您在伺服器上安裝的是Linux操作系統,並且每天都需要用到大量UNIX命令的話,我們在此為您準備了十個用於加速UNIX/Linux輸入和提高工作效率的小貼士。
您是否曾為看到有人在UNIX上飛快地操作指令而讚嘆不已?至少我就碰到過好幾次,而且我將他們視為自己努力提高UNIX技能的目標。在本文中,我將與您分享一些自己曾經在Linux系統中實現快速、高效工作的常用UNIX命令操作的範例,希望能對您有所幫助。
本人供職於金融服務業,工作內容主要涉及到在電子交易及衍生品系統上,開發和支持在線股票與期貨業務。由於我們所有的服務都運行在Linux伺服器上,所以對我來說,能夠在Linux上流暢嫻熟地工作是非常重要的。
與本文屬於相同系列的文章有:《UNIX的10大基本網路命令》,如果您沒有閱讀過且饒有興趣的話,可以去找來參考閱讀一下。
1.使用 ! 來執行最後一條命令
此用法節省了我平均30%的時間。通常情況下,您可能會碰到需要在較短的時間內,屢次輸入相同UNIX命令的情況。以前,我所使用的普通技巧是:通過鍵盤上的向上和向下箭頭,來查找我最近使用過的命令,選中後再回車執行。這顯然需要我逐一檢索的時間。
但是,如今我知道了可以使用 ! 這一技巧。而我只需要記住輸入過的命令名稱便可。例如:
- 如果輸入「!ls」,系統就會執行我最後一次輸入過的「ls -lrt」。
- 如果輸入「!vim」則能夠打開我最後一次編輯過的文件,而不必輸入其完整的命令。
通過使用該技巧,您不但能夠節省在繁複命令的拼寫上所花費的輸入時間,還能在某些不能運用向上和向下箭頭來調出過往命令的bash shell(如csh或ksh)中進行使用。
例如:如果您在執行了「ls -l stocks.txt」之後,想直接打開stocks.txt文件,就可以直接使用「vi !$(最後一個參數)」。
2.使用 !! 來調用最後一條命令
該技巧是前面的 ! 的一個擴展,可以幫您引用且調出前面執行過的最後一條命令。只要雙擊 ! ,您就能獲得驚人的快捷體驗。
例如:我前面執行過 ifconfig | grep "inet addr:",但是現在卻碰到了許可權不夠,需要root用戶許可權,那麼我就可以直接輸入su -c "!!" root。此處su用來選擇用戶,-c用來表示要執行的具體命令,而「!!」就代替了我最後一次運行過的命令。
該技巧同樣對於那些不能運用向上和向下箭頭的csh或ksh特別有效。如果您要經常停止/啟動伺服器、或使用Java來調試應用的話,請熟悉該技巧。
順便說一句,如果您還不熟悉bash shell和shell腳本的話,我建議您參看一下:《bash shell腳本的初學者速成課程》。它對於Linux初學者非常實用。
3.使用 CTRL+R 去匹配稍久遠的命令
在Linux系統中,如果您要查找那些並非最近幾次輸入過,而是相對久遠的命令,那麼僅靠使用鍵盤的向上和向下箭頭,顯然效率不高。此時,我們就可以使用該技巧來通過相同的參數進行反向搜索查找。
例如:您只需按下「CRTL+R」,然後輸入您在以前命令中所出現過的關鍵字,UNIX就能幫您找到該命令。您在確認後直接按下回車鍵便可。當然,您也可以繼續按向上或向下鍵,來查找該命令之前或之後的命令,並通過左右鍵來移動游標,以修改此條命令。
就我自己而言,由於上述三種技巧的使用頻率比較高,它們基本上能節省我50%-60%的時間。
4.使用 History 命令,獲得最常用的UNIX命令
該命令實際上是我初學UNIX時的入門級技巧,想必也是在UNIX和Shell腳本中對您最有用的命令。
在大多數情況下,您經常會在Linux系統中執行諸如啟動、停止、檢查日誌文件、編譯或執行發布等特定命令。由於不同的應用所使用的拼寫方式會略有不同,因此如果您不記得確切的命令語法也不必擔心,只要輸入:history | grep "關鍵字",您就能從Linux系統的歷史記錄中找到相應的命令。
當然,系統有一些特定的環境變數,如HISTSIZE就定義了UNIX的history里能存儲的命令條數。因此它在幫助您節約時間的同時,也省去了您去頻繁地翻閱手冊。
順便說一句,如果您不熟悉Linux基本命令的話,那麼我強烈建議您通過《linux 命令行基礎知識》,來補足自己的短板,以免在手頭任務吃緊時,還不得不在線搜索相關的Linux命令。
5.在 grep 中使用正則表達式進行查找
grep和find是UNIX提供給我們的兩個絕好的工具。我們不可避免地需要在UNIX中搜索某些內容,例如文件、目錄、文件中的某些字(如ERROR或Exception)。因此如果您知道如何使用grep與find的正則表達式,那麼就能節省大量輸入命令的時間。
例如:如果您知道如何使用egrep,那麼就能通過輸入 egrep "ERROR|Exception" *. xml,來取代兩個單獨的grep命令去分別查找ERROR和Exception。
如果想了解更多grep和find命令的有關信息,您可以參看《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.使用管道來替代發送兩次命令
上面的示例中已經展示了管道的用法,不知您是否已經注意到了呢?
7.使用別名,並在Bash Profile或bashrc文件中定義它們
您是否有看過別人會在自己的系統中用到一些奇怪的命令?也許他們使用的就是在其.bashrc或.profile文件所預先設置好的別名機制。
他們會通過在.bashrc和.profile文件中大量地使用簡化了的別名命令,來節約反覆輸入的時間。例如:
- 用"l"來表示查找所有的隱藏文件。
- 用"ls"來包括所有的有用選項,如 -lrtH就可以顯示所有的相關信息。
您可以通過參看《linux命令行界面(CLI)基礎知識》,來進一步了解更多有關Linux的登錄機制,以及.login、.profile和.bashrc文件在Linux bash shell中的作用。
8.使用 pushd、popd、cd -、~來切換目錄
不知大家是否有過這樣的體驗:由於任務的要求,我們需要不停地在多個深層次的目錄之間進行切換。雖然在輸入cd命令的時候,我們可以使用tab鍵,但是冗長的路徑著實會花費時間。
因此根據我的經驗,我們完全可以:
- 使用"cd –"回到前一級目錄,以實現兩個目錄位置之間的切換。
- 使用"pushd"以切換到一個作為參數的目錄,並把原目錄和當前的目錄存入到一個虛擬的堆棧中,從而實現目錄的交換。
- 使用"popd"以彈出堆棧中最近的目錄。
9.最小化擊鍵或增加打字速度
眾所周知,您的鍵盤輸入越少,工作效率就越高。因此您可以在bash中充分使用tab鍵,來讓系統自動猜想,並幫您完成後續的參數內容。當然您也可以用到我們在前面提到過的CRTL+R,來對前面輸入過的複雜命令,進行小修小改快速成型。
10.不斷學習新的Linux命令
學習使人熟練。只有通過不斷嘗試新的命令和參數選項,才能縮短您在執行特定任務時的切換時間。另外,您還可以使用ctrl+z、fg和bg來暫停某個進程。其中:
- 使用"ctrl+z"可以將某個正在前台執行的命令掛起。
- 使用"fg"可以將後台某個命令調至前台繼續運行。
- 使用"bg"可以對某個在後台被暫停的命令予以恢復並繼續執行。
這些命令對於您需要同時查看多個文件或日誌時,都是極其實用的。
如果您在伺服器上安裝的是Linux操作系統,並且每天都需要用到大量UNIX命令的話,那麼我們上述羅列的十項小貼士,定能幫您加速UNIX/Linux的輸入並提高工作效率。當然,如果您願意分享自己的Linux經驗或Shell實用程序的話,請記得給我留言。
※關於使用fastjson統一序列化響應格式
※「MySQL」之 開發規範
TAG:程序員小新人學習 |