其實在系統上留下「輸入指令的記錄」是個安全的作法,至少下了什麼指令會有一個依據,萬一下錯指令還可以看看到底做錯了什麼,只是被老闆砍頭也要有個完整的紀錄,總不能說"好像"下錯指令,或許有些錯誤不是該自己造成的啊!因此在系統下command的記錄還是完整的保留一下好了!但是或許有時候會想來一個例外狀況,可能一些指令會有帶帳號密碼的,這時候當然就不會希望在系統上留下記錄,最簡單的做法就是
HISTSIZE=0,不過這樣的作法所有的歷史記錄都會被清除,會不會被老闆質疑「
你為什麼要把command記錄都刪除?」,當要查閱記錄的時候頭就大了。因此為了能繼續的有完整的指令記錄,但是又要避免掉一些敏感指令被記錄,這實就可以利用
HISTCONTROL來達成這個目的。
HISTCONTROL有簡單的三種用法:
- HISTCONTROL=ignorespace
執行以上的變數設定,之後只要是comannd前有空白的話,history將不會記錄你下的command。
[root@me] ~
$ echo wawa
wawa[root@me] ~
$ echo bebo #echo前有加空格
bebo[root@me] ~
$ history tail -2
16 echo wawa
echo bebo 那行並不會出現在history的記錄當中
17 history tail -10
- HISTCONTROL=ignoredups
執行以上的變數設定,之後只要是重複下的指令,只會被記錄一次。
[root@me] ~
$ echo easylife #echo 4次easylife
easylife[root@me] ~
$ echo easylife
easylife[root@me] ~
$ echo easylife
easylife[root@me] ~
$ echo easylife
easylife[root@me] ~
$ echo good #echo 1次good
good[root@me] ~
$ history tail -5
38 echo easylife
echo easylife 4次卻只出現一筆記錄
39 echo good
40 history tail -5
- HISTCONTROL=ignoreboth
這個就是結合以上兩種,就不再示範囉!
或許有人想說這的確是不錯的一個資訊,只是到底用到的時機到底是什麼時候?我在這邊可以簡易分享我所想到的用途,首先我絕對會把
HISTCONTROL=ignorespace加到
.bashrc裡面去,這樣以後只要登入系統就自動生效了,避免自己再去手動執行一次留下記錄(HISTCONTROL=ooxx的記錄),到時候老闆查歷史記錄還會問說你下那行幹嘛?有種你可以回答「做壞事」
本站下載" border="0">
改密碼可以用!若你管理的linux主機很多台,一台一台改密碼只有勞累而已,若你有script的能力,以後改密碼就是批次全部改完而已,連密碼都可以亂數產生(這個自己寫),簡單來說只是用到passwd --stdin的參數。
[root@me] ~
$ echo "ilovewawa" passwd --stdin root && history tail -3
Changing password for user root.
passwd: all authentication tokens updated successfully. #我改完密碼囉!
53 who
54 ls
55 who #歷史記錄渾然不覺
http_proxy和ftp_proxy可以用先參照「
Text Mode Use Http Proxy On Linux」了解一下用途,參照完之後可以了解如何在text mode透過http proxy連線,之前我還寫了一小段function加入在.bashrc,就是要避免帶帳號密碼的http_proxy在history中留下記錄,今天知道了HISTCONTROL的用法後,其實http_proxy帶帳號密碼的問題就可以不留痕跡囉!參考文章
http://plog.longwin.com.tw/my_note-unix/2009/04/22/linux-set-history-not-record-space-command-2009http://linux.about.com/cs/linux101/g/histcontrolenvi.htm好久沒有更新linux的文章囉