history 概述
每當用戶在終端輸入命令時,該命令都會記錄到歷史文件中(通常是 `~/.bash_history` 或 `~/.zsh_history`)。`history` 命令會讀取該文件的內容並顯示在屏幕上,並且歷史在 Shell 會話結束後仍然會被保存。
history 的主要角色
`history` 命令主要用於以下目的:
主要應用領域
- 命令重執行: 可以輕鬆地重新執行之前使用的長命令,而無需再次輸入。
- 工作追蹤: 幫助確認過去執行了哪些操作,並了解工作流程。
- 提高生產力: 快速找到經常使用的命令,節省輸入時間。
- 編寫腳本的參考: 利用過去成功執行的命令組合來編寫腳本。
環境變數和 history
歷史功能受到一些環境變數的影響:
主要相關環境變數
- `HISTSIZE`: 在內存中保存的最大命令歷史數量。保持在當前 Shell 會話期間。
- `HISTFILESIZE`: 在歷史文件(如 `~/.bash_history`)中保存的最大命令歷史數量。跨 Shell 會話保留。
- `HISTFILE`: 指定命令歷史保存的文件路徑。默認為 `~/.bash_history`。
- `HISTCONTROL`: 控制歷史記錄的方式。(例如:`ignoredups` - 忽略重複命令,`ignorespace` - 忽略以空格開頭的命令)
主要 history 命令選項
`history` 命令提供了查詢、修改和管理歷史列表所需的各種選項。
1. 查詢和輸出歷史
2. 修改和重新執行歷史
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`history` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用示例
通過 `history` 命令的各種應用示例,學習如何有效查詢和重用命令歷史。
查詢最近 20 條命令
history 20
輸出最近執行的 20 條命令列表及其編號。
在命令歷史中搜索特定字符串
history | grep docker
使用 `grep` 命令查找 `history` 歷史中包含 'docker' 的命令。
重新執行上次 `ls` 命令
!ls
查找最近執行的以 `ls` 開頭的命令並重新執行。
重用最後一個命令的最後一個參數
cat /var/log/syslog
less !$
在執行 `cat /var/log/syslog` 後,想要使用 `less` 命令重新打開 `/var/log/syslog` 時非常有用。
立即將當前 Shell 歷史保存到文件
history -w
在關閉 Shell 前,立即將當前會話中執行的所有命令保存到 `~/.bash_history` 文件中。
刪除特定歷史編號
history -d 125
使用 `history` 命令確認後,刪除編號為 125 的命令。(注意:刪除後無法恢復)