在管理服务器中为了提高history命令的效率,可以history命令加上一些参数,比如时间、用户和IP等等参数。
(1)加上时间和用户
export HISTTIMEFORMAT="%F %T `whoami` "
(2)再加上IP
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] "
(3)为了持久保存需要写进配置
编辑 /etc/profile 将上一步内容写入,然后source一下。
source /etc/profile
第一步效果:
0x0bUnix-2:~ kill3r$ history
5 2017-01-15 20:56:39 kill3r ls
6 2017-01-15 20:56:51 kill3r pwd
7 2017-01-15 20:56:56 kill3r whoami
8 2017-01-15 20:56:58 kill3r id
9 2017-01-15 20:57:05 kill3r history
第二步效果:
0x0bUnix-2:~ kill3r$ history
5 [2017-01-15 21:41:50][kill3r][833] ls
6 [2017-01-15 21:41:53][kill3r][833] pwd
7 [2017-01-15 21:41:58][kill3r][833] whoami
8 [2017-01-15 21:42:01][kill3r][833] id
9 [2017-01-15 21:42:14][kill3r][833] history
原理:
0x0bUnix-2:~ kill3r$ who -u am i
kill3r ttys000 Jan 15 20:55 . 833
0x0bUnix-2:~ kill3r$ who -u am i 2>/dev/null| awk '{print $NF}'
833
NF其实是number of field, 即整行域的总数,print就是打印最后一个域
NR是指awk正在处理的记录位于文件中的位置(行号)
NF是指awk正在处理的记录包含几个域(字段),这于域分隔符有关,默认为空
%F 完整日期格式,等价于 %Y-%m-%d
%T 时间,等于%H:%M:%S