history命令
1. history的基礎
1.相關文件
~/.bash_history | 該文件存儲已執行的命令 |
/etc/profile | 該文件存儲一些變量,本文中用來配置history,使history更易讀 |
文件位置 | 作用 |
2.history的理論常識
1. history的命令是實時的,即剛執行的命令,使用history就能查到
2. bash_history文件中存放的命令不是實時的,需要退出當前終端,或者執行 history -w命令
3. 同用戶多終端執行命令,history命令只顯示當前終端執行過的命令
4. 同用戶多終端執行命令,最先關閉的終端最先將命令寫入bash_history文件中,和命令執行先后順序無關
2. history的應用及場景
1. history 命令參數
參數 | 解釋 |
-a | 命令將新增命令寫入historyfile |
-w | 將目前history寫入到historyfile |
-r | 將historyfile內容讀入shell history記憶中 |
-c | 將目前shell history中命令消除(暫時,退出終端后恢復) |
[number] | 例:history 12 ; 執行歷史命令中的第12條命令 |
![number] | 例:!12 ;執行歷史命令中的第12條命令 |
疑問:
1. 先執行 history -c 然后執行 history -w 有什么效果?
2. 先執行 history -c 然后執行 history -r 有什么效果?
3. 已知 history -c 參數只能暫時清除命令,那么如何永久清除history?
2. 應用前的環境配置
先配置一下環境能讓學習變得更加暢快
1. 記錄history執行時間,history 默認不記錄時間,記錄時間方便學習,也方便自查
vim /etc/profile ,在文件尾部添加
export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "
或
export HISTTIMEFORMAT="%F %T " # 兩個效果是一樣的
添加完成后,source /etc/profile 使改動生效。
(后引號前要加空格,不加空格會擠成一團,改動后,source一下/etc/profile文件)
2. 改動 history 能存儲的命令數量
編輯 /etc/profile 文件
vim /etc/profile
行尾加入
HISTSIZE=1000 # 一天一千行,來年禿頭亮
保存退出后,執行
source /etc/profile
3. 應用
1. 查看剛才做了哪些操作
history
2. 查看最后20行命令
history | tail -n 20
3. 查看開始20行命令
history | head -n 20
4. 查看刪除文件(rm)命令
histroy | grep rm
5. 清空執行命令的歷史
history -c;history -w
6. 執行命令歷史中,第20條命令
history 20 或者 !20
3. history的補充
來個奇技淫巧 ---- 刪除特定命令不留下痕跡
1. vim隨便打開一個文件(建議是常用文件)
2. 設置vim 不記錄命令 :set history=0
3. 用vim的分屏功能:vsp ~/.bash_history
4. 恢復 :set history=20
遺憾的是,會留下 vim編輯常用文件的歷史