在 GNU/Linux 機器上發出的最後一個命令

在 GNU/Linux 機器上發出的最後一個命令

有人在我本地 LUG 的郵件列表中詢問是否有任何方法可以了解 GNU/Linux 系統上發出的最後一個命令。

我猜我們正在以系統範圍的方式談論最後一個命令。經過一段時間的推理後,如果您將命令集限制為實際使用者使用互動式控制台發出的命令,那麼最後一個應該已在命令歷史記錄中註冊。

思考這個問題的另一種方式是詢問如何判斷哪個是在 GNU/Linux 機器上創建的最後一個進程,關於它是否仍在運行或已經完成執行,哪個是父進程和其他相關資訊。

答案1

我找到了一個用於 Linux 的軟體包,可以幫助進行進程統計。

在我的 Ubuntu 9.10 系統上,我這樣做是為了安裝程式「acct」:

sudo apt-get install acct

然後需要建立一個空白日誌文件,您可以這樣做:

sudo touch /var/log/pacct

之後,需要啟動進程記帳:

sudo /usr/sbin/accton /var/log/pacct

從那時起,進程與執行它們的使用者和關聯的終端一起記錄。

可以使用以下命令查看日誌檔案:

lastcomm -f /var/log/pacct

我仍在研究這個程式......但看起來這有幫助。

答案2

對於特定使用者(和 shell):歷史記錄

對於當前進程: ps

答案3

嗯,系統範圍的看起來相當複雜。這樣的系統意味著應該有一些進程來監視每個使用者.bash_history。然後,當更新時,中央資料庫也會更新。完成此操作後,我們就可以對從中央資料庫中選取的「歷史」命令進行擴充。不過,這並不是一個壞主意。

答案4

您可以使用史努比監視所有執行的命令。

相關內容