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.178linux.com/42910