Skip to content

[Linux] 查看使用者所下的歷史指令

如果在 Linux 伺服器中我們擁有著 super user 的權限,那麼我們其實是可以檢查其他使用者(包括自己)曾經下達過的指令的。

其實我自己偶爾會用到這個功能,因為總是亂放權限給對 Linux 操作還比較不是那麼熟悉的後輩去練習,所以偶爾會突然發現自己程式的環境亂掉了,只好開始查戰犯 XDDD

雖然其實也沒那麼嚴重,不過嚴謹點的伺服器管理果然權限不能亂給呢。


查看自己過去所下達的指令

這是一個相當經典的指令,可以查看自己過去所下達的指令:

history

不過缺點就是只能查看自己的歷史命令。

如果想要順便查看下達指令的時間,也可以使用:

export HISTTIMEFORMAT='%F %T '

這樣一來,如果 history 的輸入就會帶有時間顯示了。如果想要一直維持這個輸出格式(畢竟重開就沒了),可以將其寫在 ~/.bashrc 的設定裡。然後再使用:

source ~/.bashrc

讓設定馬上生效。


檢查使用者的 .bash_history 檔案

上網查了查資料,似乎隨著環境的不同,這份會紀錄使用者所下達指令的檔案有各式各樣的名稱,有 .history.sh_history …… 之類的等等,不過總是會存在著這樣的一份文件。

在我的伺服器中,就叫做 .bash_history,比方說我想要查看自己(clay)所下達的指令,那麼我可以直接使用:

cat /home/clay/.bash_history

來查看我過去所下達的指令。順帶一提,如果要一直印出文件尾端,查看是否有追加指令,可以搭配 watch 指令:

watch -n 0.5 tail /home/clay/.bash_history

不過同時也會發現,指令並不是一下達就會馬上紀錄的,是經過一陣子才會儲存進文件中。而且如果使用者是發生意外登出(突然斷線),那麼這份文件是會少掉使用者最後輸入的幾個指令的。


References


Read More

Tags:

Leave a Reply