# Linux命令行中使用history相關的技巧是什么
## 引言
在Linux系統中,命令行是管理員和開發者最常用的工具之一。而`history`命令則是命令行操作中不可或缺的利器,它能記錄用戶執行過的命令,幫助快速回溯、重復或修改歷史操作。本文將深入探討`history`命令的實用技巧,涵蓋基礎用法、高級配置、安全優化等方面,助你提升命令行效率。
---
## 一、基礎用法:快速調用歷史命令
### 1. 查看歷史命令列表
```bash
history
默認顯示最近執行的500條命令(數量取決于HISTSIZE變量),每條命令前有行號標識。
通過行號調用
!行號
例如:!203 執行歷史列表中第203條命令。
通過關鍵字調用
!關鍵字
執行最近一條以”關鍵字”開頭的命令,如!git會執行最近一條git命令。
^原字符串^新字符串
例如:若上一條命令是cat /ect/passwd(拼寫錯誤),運行^ect^etc可快速修正為cat /etc/passwd。
按下Ctrl+R后輸入關鍵字,可實時搜索歷史命令。重復按Ctrl+R可循環匹配結果,按Enter執行或Esc退出。
fc命令編輯歷史fc [行號]
打開編輯器修改指定行號的命令(默認上一條),保存后自動執行。
grep過濾歷史history | grep "關鍵詞"
例如搜索所有含ssh的命令:
history | grep "ssh"
| 變量名 | 作用 | 示例值 |
|---|---|---|
HISTSIZE |
內存中保存的歷史命令數量 | 5000 |
HISTFILESIZE |
歷史文件(~/.bash_history)記錄上限 | 10000 |
HISTTIMEFORMAT |
為歷史添加時間戳 | %F %T |
HISTCONTROL |
控制記錄規則(忽略重復/空格開頭等) | ignorespace |
在~/.bashrc中添加:
export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTTIMEFORMAT='%F %T '
export HISTCONTROL=ignoredups:erasedups
生效配置:
source ~/.bashrc
通過HISTIGNORE變量屏蔽敏感或不重要命令:
export HISTIGNORE="pwd:ls:history"
!$ # 上條命令的最后一個參數
!^ # 上條命令的第一個參數
!:n # 上條命令的第n個參數
示例:
mkdir /tmp/test
cd !$ # 等效于 cd /tmp/test
!n-m # 執行第n到m條命令的組合
例如!100-105會執行100~105條命令。
set +o history
恢復記錄:
set -o history
chmod 600 ~/.bash_history
history -c # 清空內存記錄
history -w # 同步到文件(覆蓋)
history -d 行號
在~/.bashrc中添加:
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
hstr交互式歷史命令搜索工具,支持關鍵詞高亮:
sudo apt install hstr
hstr
fzf模糊搜索工具,可集成history:
history | fzf
掌握history命令的技巧能顯著提升Linux命令行效率。從基礎調用到高級定制,再到安全維護,合理配置可讓歷史記錄成為你的得力助手。建議將常用配置寫入~/.bashrc,并定期備份重要歷史記錄。
提示:不同Shell(如zsh/fish)的history行為可能略有差異,需參考對應文檔調整。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。