|--linux--history命令
用于显示历史记录和执行过的指令命令
history命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。
在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。
默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。
在家目录的.bash_history文件记录用户所使用的命令和历史信息
语法:
history(选项)(参数)
选项:
-N: 显示历史记录中最近的N个记录;
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中;
-d<offset>:删除历史记录中第offset个命令
-n<filename>:读取指定文件
参数:
n:打印最近的n条历史命令。
|--使用!执行指定序号的历史命令。
!number 执行第几条命令
!command 从最近的命令查到以command开头的命令执行
!! 执行上一条
|--定制history功能
语法格式:NAME='VALUE'
HISTSIZE:history记录的行数
HISTFILE:history记录文件目录
HISTFILESIZE:history记录文件目录行数
变量写入/etc/profile或/etc/profile.d下的文件中
或者写入到家目录的.proflie文件中
eg:
查看history记录的行数
echo $HISTSIZE
修改history记录的配置
HISTSIZE=1000
export HISTSIZE
或者
export HISTSIZE=1000
显示执行历史记录时间
1、默认情况下,history并不记录命令的执行时间,分析起来很困难。
我们可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP(时间戳)。
2、把上面的 export HISTTIMEFORMAT="%F %T " 命令加入到~/.bashrc中
即可在登录后自动开启history时间戳。添加完成后,
执行source .bashrc 让其生效。仅针对当前账号有效。
3、其实HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T ",
%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。
eg:
编辑/etc/profile或在/etc/profile.d下新建*.sh文件。
vim /etc/profile.d/shit.sh输入下面两行
HISTTIMEFORMAT="%Y%m%d-%H%M%S "
或者 HISTTIMEFORMAT="%Y%m%d %T "
或者 HISTTIMEFORMAT="%F %T "
export HISTTIMEFORMAT
或者一行搞定
export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "