Shell 作為Unix 系作業系統當中最有魅力且不可或缺的組件,經過數十載的洗禮不僅沒有被淘汰,而且愈加變得成熟穩健究其原因,大概因為它是個非常穩固的粘合劑能夠把大量功能強大的組件任意配搭,總能很好很快地完成使用者的任務。
1、sudo運行上條命令
$ sudo !!
大家應該都知sudo,不解釋。但通常出現的情況是,敲完命令執行後報錯才發現忘了sudo。這時候,一般都會按Ctrl-p,按Ctrl-a,輸入sudo,斷行符號。
重量級命令sudo !! 就可以很方面解決上述問題。兩個驚嘆號其實是bash的一個特性,稱為事件引用符。!! 其實相當於 ! -1 ,引用前一條命令,當然也可以 ! -2 ,! -50。預設情況下bash 會在 ~/.bash_history 檔案內記錄使用者執行的最近500 條命令,history 命令可以顯示這些命令。
2、以普通使用者開啟的VIM當中儲存一個ROOT使用者檔案
:w !sudo tee %
這題目讀起來糾結,其實是很常見的,常常忘記了sudo 就直接用vim 編輯/etc 內的檔案,(不過也不一定,vim 發現儲存的檔案無法儲存時候會提示)等編輯好了,儲存時候才發現沒許可權。
3、切換上一個目錄
$ cd -
4、替換上一條命令中的一個短語
$ ^foo^bar^
在需要重複運行調試一道長長的命令,需要測試某個參數時候,用這個命令會比較實用;但多數人會首先選擇按上箭頭提出上道命令,再移動游標去修改某參數,這樣更直觀,但效率上就不夠使用引用符高,而且在指令碼中用這個方法可以簡化很多。
5、快速備份檔案
$ cp filename{,.bak}
這道命令把filename 檔案拷貝成filename.bak,大家應該在一些比較複雜的安裝教程裡面見過這樣的用法。其原理就在於bash 對大括弧的展開操作,filename{,.bak} 這一段會被展開成filename filename.bak 再傳給cp,於是就有了備份的命令了。
待續中。。。