如何在 Bash 中為 history 命令加上時間戳記

Bash 中的 history 命令是回想過去命令的強大工具,但預設情況下,它不會顯示這些命令的執行時間。為命令歷史記錄加上時間戳記可以提供有價值的脈絡,尤其是在除錯、稽核和時間管理方面。本指南將向你展示如何在 Bash 歷史記錄中啟用時間戳記(暫時啟用和永久啟用),甚至如何根據你的偏好自訂時間戳記格式。


為什麼要為 Bash 歷史記錄加上時間戳記?

為 Bash 歷史記錄加上時間戳記有多種用途,非常有用:

  • 除錯:確定命令的確切執行時間,以便更有效地排查問題。
  • 稽核:帶著清晰的時間脈絡查看命令歷史記錄,這對系統管理員和安全稽核至關重要。
  • 學習:記錄任務耗時並分析工作流程,以最佳化生產力。

步驟 1:暫時加上時間戳記

如果你只想為目前的終端機會話啟用時間戳記,只需一條命令即可:

啟用時間戳記的命令

export HISTTIMEFORMAT="%F %T "

格式說明:

  • %F:以 YYYY-MM-DD 格式顯示日期。
  • %T:以 HH:MM:SS 格式顯示時間。

範例輸出:

執行上述命令後,使用 history 命令查看帶有時間戳記的歷史記錄:

history

範例輸出:

984  2024-12-16 12:28:59 cat /etc/*-release
985  2024-12-16 12:28:59 sudo su -
986  2024-12-16 12:29:00 history

此變更僅在目前的工作階段中有效。一旦關閉終端機,時間戳記將不再顯示。


步驟 2:讓時間戳記永久生效

要確保時間戳記始終包含在 Bash 歷史記錄中,你需要修改 shell 設定檔。具體步驟如下:

啟用永久時間戳記的步驟:

  • 打開 .bashrc 檔案:
 vi ~/.bashrc 
  • 或者,你也可以使用任何文字編輯器,例如 nano 或 vim。
  • 加入下面這一行:
    捲動到檔案底部並加入:
export HISTTIMEFORMAT="%F %T "
  • 儲存並離開:
    在 vi中,按 ESC,然後輸入 :wq,再按 Enter。對於 nano,按 CTRL+O 儲存,再按 CTRL+X 離開。
  • 重新載入 .bashrc 檔案:
    執行以下命令立即套用變更:
source ~/.bashrc
  • 驗證變更:
    執行 history 命令,確認時間戳記現已包含在內:
history
  • 範例輸出:
984  2024-12-16 12:28:59 cat /etc/*-release
985  2024-12-16 12:28:59 sudo su -
986  2024-12-16 12:29:00 history


額外提示:自訂時間戳記格式

可透過變數 HISTTIMEFORMAT 自訂時間戳記在歷史記錄中的顯示方式,它支援多種格式選項。以下是幾個範例:

歐洲日期格式:

export HISTTIMEFORMAT="%d-%m-%Y %H:%M:%S"

輸出:

984  16-12-2024 12:28:59 cat /etc/*-release

帶 AM/PM 的 12 小時制時間格式:

export HISTTIMEFORMAT="%r"

輸出:

984  12:28:59 PM cat /etc/*-release

極簡格式(僅時間):

export HISTTIMEFORMAT="%T"

輸出:

984  12:28:59 cat /etc/*-release

嘗試不同的格式,找到最適合你需求的一種。有關格式選項的完整清單,請參閱 strftime 文件,方法是在終端機中執行 man strftime 。


管理 Bash 歷史記錄的專業提示

  • 增大歷史記錄容量:預設情況下,Bash 只儲存有限數量的命令。你可以透過將以下幾行加入到你的 .bashrc 檔案中來提高此限制:export HISTSIZE=10000 export HISTFILESIZE=20000
  • 防止重複項目:透過加入以下內容,避免歷史記錄中出現重複命令:export HISTCONTROL=ignoredups
  • 保護你的歷史記錄:為防止敏感命令(例如密碼)被儲存,你可以暫時停用歷史記錄功能:unset HISTFILE

結論

為 Bash 歷史記錄加上時間戳記是一項簡單而強大的自訂設定,可以顯著改善你的命令列體驗。無論你是在除錯、稽核,還是僅僅對自己的工作流程感到好奇,時間戳記都能為你的終端機活動提供有價值的資訊。只需幾個步驟,你就可以暫時啟用時間戳記,或將其變成 Bash 環境的永久功能。

有關自訂 Linux 終端機和掌握 Bash 的更多技巧,請瀏覽我們在 sysosx.com上的其他文章。祝編碼愉快!

發表留言