1. 程式人生 > >[Linux]十條為系統管理員節省時間的命令!

[Linux]十條為系統管理員節省時間的命令!

儘管Linux桌面在過去二十年中經歷了巨大的改變(例如:Ubuntu Unity介面),但命令列操作模式永遠是對一個系統開發或維護人員的能力衡量標準,通常我們所理解的Linux高手大多是在命令列模式下操作的,所以接下來的十個技巧大部分關於Bash shell的。

1. 運用一條命令來建立並進入目錄

建立接著進入一個新目錄是一個非常普通的任務,似乎在shell中執行兩種命令都該有捷徑。雖然沒有捷徑,你可以將以下函式新增到你的.bashrc檔案:

mkcd()
{
mkdir $1
cd $1
}

接著執行源.bashrc來讀取記憶體中的變化,並運用mkcd命令完成兩個服務:
[email protected]

:~$ mkcd articles
[email protected]:~/articles $

2. 回到前一目錄
當你需要從結構複雜的目錄中轉移並想要回到初始目錄時,你可以將之前一路徑傳遞到cd命令,但是鮮為人知的cd命令讓這件事變得瑣碎。該順序展示了該行為:
[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd
[email protected]:~$ cd –
~/Documents/techtarget_articles/ten_command_line_tricks/test2$

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

3. 建立目錄書籤
繼續跟隨目錄互動的主題,你會不可避免地一次次回到某些目錄。可以通過新增到$CDPATH shell變體的路徑(在你的.bashrc檔案中)來建立能讓你快速導航到這些目錄的書籤:
CDPATH=’.:/home/tektea/books’
一旦新增,你可以從作業系統路徑中的任一處直接導航到書籤目錄,只需要執行如下命令:
$ cd books

4. 熟練地編輯命令列
你有多少次在沉悶地編輯和執行一系列略微不同的命令?例如我在忙於建立來自Markdown源的不同書本章節的PDF版本時,我通常執行以下命令:

$ pandoc -o html/chapter06.html chapters/chapter06.md –template=templates/html.template

為了也建立chapter04.md原始檔,命令列初學者會很快厭倦用向上箭頭在歷史中檢索之前執行(上一)命令,然後用左指箭頭直到用 chapter04.md更換了所有chapter06.md例項。還有很多更高效的方式來執行該任務。首先,考慮使用Bash的命令列編輯鍵盤快捷鍵(兩種支援模式:Emacs和vi),這讓你可以快速地導航到想去的位置:

Ctrl + a:去往首行
Ctrl + e: 去往末行
Alt + f: 前進一個字
Alt + b: 退後一個字

第二種且可能更有效的方法是使用命令列替換。接下來的命令會將在之前執行命令中發現的06用04代替:
$ pandoc -o html/chapter06.html chapters/chapter06.md –template=templates/html.template
$ !!:gs/06/04
pandoc -o html/chapter04.html chapters/chapter04.md –template=templates/html.template

如果你正偶然地使用GNOME終端,那麼元(Alt)鍵不會如描述般工作,因為GNO ME終端已經繫結Alt鍵到工具欄命令。你還可以選擇使用Shift + Alt作為元鍵,但是這有點笨拙。相反地,如果你不需要工具欄命令快捷鍵,通過導航到編輯-> 鍵盤快捷鍵來關閉它們…也能關閉啟用選單訪問鍵選項。

5. 為之後的使用儲存長命令
當通過一列系統管理員操作的工作時,可以輸入特定的長命令並在執行它之前意識到省去序列中的一個步驟。相比於刪除該命令,你可以將其儲存到歷史,而不用通過新增井號鍵(#)到命令開端:
$ #this is some ridiculously long command that I want to save
在按下Enter鍵後,用向上箭頭,你會看見儲存的命令。要執行該命令,只要在執行前從行的開始移開井號鍵。

6. 運用命令別名儲存輸入
ls命令的長列表格式(ls -l)可以頻繁地運用,但是連字元讓它在大量輸入時有點不實用。你可以使用.bashrc內的別名命令建立命令別名用於長命令。在這個例子中,命令別名dir是ls –l的替代。
alias dir=’ls -l’

7. 通過忽略輸入錯誤儲存更多輸入
你正處於終端區域,在任意地複製、更新和移除檔案時從一個目錄激發到下一個。或者你不在終端區域,由於手指比大腦運動得更快,甚至鍵盤反應時間可以處理,這導致你要不斷地返回並更正你的輸入錯誤。在你的.bashrc檔案中新增以下行,shell會在識別檔案或路徑名字時自動地修正所有輸入錯誤。
shopt -s cdspell

8. 在後臺開啟應用程式
當巡視命令列時,你也許會需要進行另一個任務,如響應一封郵件。當然,可以按你執行其它命令的方式從終端開啟GUI應用,只需通過呼叫它們的名字完成,在這個例子中,開啟Gimp:
$ gimp
但是有效地這麼做結束了你的終端會話,因為應用程式會在前臺開啟。如果你正從命令列中常規開啟一個特定程式,考慮在你的.bashrc檔案裡修改它的預設呼叫:

gimp()
{
command gimp “[email protected]” &
}

過載你的.bashrc檔案(見源命令),你將能呼叫Gimp應用,和任意你想要開啟的影象檔名稱一起傳遞,還有保留終端控制的附加福利。

9. 以少換多
更多的命令在快速細讀文字檔案內容時實用。一旦檔案負載到頁面,你可以運用/來搜尋檔案。問題並是一旦你發現想要的行,向上導航並檢檢視上去高於該行的內容不可能。更少的命令並不是劣勢,它允許你可以實現向上和向下的文字滾動。以相同的方式呼叫越少的命令得到的越多:
$ less sometextfile.txt

10.清理你的命令列歷史
歷史命令(history command)很容易成為你能支配的最有力工具之一。但是有一個節省時間的命令尤其值得一提:$HISTIGNORE shell變數。
隨著時間,你的歷史列表會變得非常長。利用$HISTIGNORE變數來排洩你認為不相關的記錄:

$ export $HISTIGNORE=”&:cd:exit:ls”

這會導致所有複製的命令、cd、離開和ls命令從歷史命令中遺漏。

速度是管理命令列的關鍵,而這十個技巧看似雕蟲小技,但關鍵時刻(比如:面試)應該可以幫得上你的。

【文章來源:TechTarget中國】