Linux的history功能

我们知道,普通的history指令会输出前段时间到当前的运行指令记录,默认大约1000条,且形式如下:
1064  ll
1065  pwd
1066  cat taskmanager.sh
1067  ll
1068  ll
1069  cd
1070  ll
1071  cat test.sh
1072  echo -e "33[1;33mFAILED: 33[1;31m${check_version} 33[0m"
...
...
1081  who -u am i
1082  history
 
这些操作记录是没有记录操作时间的,那么,我们能够自行设置这些参数,让他达到我们期望中的样子。
 
最常使用到的参数就是小下面几个:
我们可以在bashrc或者/etc/profile文件中添加下面几行:
HISTFILESIZE=2000                      #修改记录的最大条数,记录在~/.bash_history文件中记录条数
HISTSIZE=2000                         #指定在执行history指令时,输出~/.bash_history文件的最后‘$HISTSIZE’行
HISTTIMEFORMAT="%F %T "                    #指定history的记录和输出格式
export HISTTIMEFORMAT                       #申明HISTTIMEFORMAT变量
 
保存退出,执行指令:
source /etc/profile
 
执行history命令,就会显示每条命令的详细执行时间了;
就像这样:
3010  2018-08-09 14:22:20 tail -f messages
3011  2018-08-09 14:22:24 ll
3012  2018-08-09 14:25:02 history | more
3013  2018-08-09 14:29:18 iptables -L
3014  2018-08-09 14:29:25 ll
3015  2018-08-09 14:29:34 tail -500 secure
3016  2018-08-09 14:30:59 echo $HISTTIMEFORMAT
3017  2018-08-09 14:36:11 history
3018  2018-08-09 14:38:41 vim ~/.bash_history
3019  2018-08-09 14:42:42 who -u am i
3020  2018-08-09 14:42:51 ifconfig
3021  2018-08-09 14:45:32 who -u am i | awk '{print $7}'
3022  2018-08-09 14:46:15 who -u am i | awk '{print $7}'| grep [0-9]
3023  2018-08-09 14:46:29 echo `who -u am i | awk '{print $7}'| grep [0-9]`
3024  2018-08-09 14:46:32 ll
3025  2018-08-09 14:46:45 who -u am i | awk '{print $NF}'
3026  2018-08-09 14:48:36 echo `who -u am i | awk '{print $7}'| grep [^0-9]`
3027  2018-08-09 14:57:26 history
 
这样就详细多了!对于查找问题的时候也会更方便准确~!
 
以上,共勉!
原文地址:https://www.cnblogs.com/storyawine/p/13414190.html