2015-02-13

Ubuntu 用 PROMPT_COMMAND 變數設定自動執行指令

Shell 的環境變數裡,有一個叫做「PROMPT_COMMAND」的,可以用來設定每次提示服符號出現之前,就執行這個 PROMPT_COMMAND 變數所指定的指令,阿舍會發現這個 PROMPT_COMMAND 變數的用法,就是在研究如何同步 history 指令和 .bash_history 檔案裡的記錄的時候哩 !

PROMPT_COMMAND 環境變數使用方式

如果你想讓 history 和 .bash_history 檔案的內容隨時都保持一致的話 (為什麼不會同步 ? 請參考阿舍寫的這一篇囉! ),就可以用下面指令來在每次執行指令完成後,都自動執行一次更新及重讀 .bash_history 檔案,但是,就阿舍的經驗來說,阿舍還是比較建議有需要再手動執行就好,自動同步不一定比較實用哩 ! (下面指令可以直接放進 .bash_history 檔案)

export PROMPT_COMMAND='history -a; history -n'

上面舉的是 PROMPT_COMMAND 變數最常應用的方式,不過,阿舍在想的是,還有什麼更好的應用嗎 ? 想了好久,只有想要沒什麼實用的用途,就是在每次執行後顯示日期和時間或用 echo 指令顯示固定訊息,可是,真的沒什麼實用哩 !

後來,阿舍有想到說,用來側錄使用者的操作記錄,不過,似乎也不太實用,這招似乎只可以騙騙比較沒經驗和警覺性的使用者,因為使用者自己就可以下個下面的指令來清除掉你所埋的指令哩 !

export PROMPT_COMMAND=''



unset PROMPT_COMMAND

不過,如果你真的想試試看的話,下面是阿舍想到的,會把指令的執行日期和時間寫到家目錄下的 .cmdlog 檔案,但是,使用者一旦發現,就可以自己刪除了,純粹提供參考囉 ! ... 呵呵 !

export PROMPT_COMMAND='date >> ~/.cmdlog ; history 1 >> ~/.cmdlog'



推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁