history命令
history命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。
該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2
個歷史命令,則輸入!2
。
128 ls
129 history
[root@localhost ~]# !128
ls
aa.txt anaconda-ks.cfg awk.txt grep sed sed1 sed2
語法
history(選項)(參數)
選項
-c
:清空當前歷史命令; -a
:將歷史命令緩沖區中命令寫入歷史命令文件中; -r
:將歷史命令文件中的命令讀入當前歷史命令緩沖區; -w
:將當前歷史命令緩沖區命令寫入歷史命令文件中。
參數
n
:打印最近的n條歷史命令。
[root@localhost ~]# history 3
133 echo $HISTSIZE
134 history -3
135 history 3
歷史命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲
1000
條歷史命令,該數量是由環境變量HISTSIZE
進行控制。
[root@localhost ~]# echo $HISTSIZE
1000
HISTFILE
:指定歷史文件,默認為~/.bash_histor
或存放在 /etc/profile
HISTFILESIZE
:命令歷史文件記錄歷史的條數; HISTTIMEFORMAT=“%F %T“
顯示時間 export 變量名=" 值“
[root@localhost ~]# export HISTTIMEFORMAT='%F %T '
[root@localhost ~]# history
.........
138 2016-09-02 03:12:12 vim .bash_history
139 2016-09-02 03:14:46 export HISTTIMEFORMAT='%F %T '
140 2016-09-02 03:14:49 history
141 2016-09-02 03:15:15 export HISTTIMEFORMAT='%F %T '
142 2016-09-02 03:15:16 history
控制命令歷史的記錄方式:
環境變量:HISTCONTROL
ignoredups
:忽略重復的命令;連續且相同方為“重復” ignorespace
:忽略所有以空白開頭的命令 ignoreboth
:ignoredups, ignorespace erasedups
: 刪除重復命令
History命令的用途確實很大!但需要小心安全的問題!尤其是 root 的歷史紀錄檔案,這是黑客們的最愛!因為不小心的 root 會將很多的重要資料在執行的過程中會被紀錄在 ~/.bash_history 當中,如果這個檔案被解析的話,后果不堪設想!
原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/42910