问题描述:Linux、AIX上都提供了History命令,可以查询以前执行的命令历史记录,但是这个记录并不包含时间项目。有时候需要回溯源头时比较郁闷。如何让History记录时间呢?如下针对LINXU和AIX进行了实践,本文本意是作为个人记录。
一、LINUX系统
1、编辑编辑/etc/bashrc文件,加入如下三行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "
export HISTTIMEFORMAT
保存后退出,关闭当前shell,并重新登录这个时候,在~/.bash_History文件中,就有记录命令执行的时间了
注意:本方法必须在服务器刚刚新安装好时候,就设置这个参数。
如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。
2、显示的时间格式
[weblogic@localhost ~]$ history
992 20120223-103953: hisrory
993 20120223-103953: history
994 20120223-103953: vi /etc/bashrc
995 20120223-103953: vi /etc/bashrc
996 20120223-103953: cd /etc
1040 20120222-114927: sl
1041 20120222-114932: cat
1042 20120222-114955: tac
1043 20120222-115000: more
1044 20120222-115005: erom
1045 20120223-103956: hisroy
1046 20120223-104000: history
二、AIX系统
1、用ROOT用户VI,添加EXTENDED_HISTORY=ON至/etc/environment
2、其他用户登陆
AIX Version 5
(C) Copyrights by IBM and by others 1982, 2006.
login: oracle
oracle's Password:
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
Last unsuccessful login: Sat Nov 19 02:10:46 BEIST 2011 on ftp from ::ffff:172.16.128.16
Last login: Wed Feb 15 16:52:01 BEIST 2012 on /dev/pts/0 from 172.16.3.6
[YOU HAVE NEW MAIL]
$ env
_=/bin/env
TMPDIR=/tmp
LANG=en_US
TEMP=/tmp
LOGIN=oracle
PATH=/home/oracle/database/bin:/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/oracle/bin:/usr/bin/X11:/sbin:.
EXTENDED_HISTORY=ON==========================环境变量已经有了
ORACLE_BASE=/home/oracle
LC__FASTMSG=true
LOGNAME=oracle
TMP=/tmp
MAIL=/usr/spool/mail/oracle
ORACLE_SID=standby
LOCPATH=/usr/lib/nls/loc
USER=oracle
AUTHSTATE=compat
SHELL=/usr/bin/ksh
ODMDIR=/etc/objrepos
HOME=/home/oracle
TERM=xterm
3、fc -t命令看到此后的命令已经有时间记录了
$ fc -t
143 ? :: cd /home/oracle/admin/standby/bdump
144 ? :: tail -f *.log
145 ? :: df -g
146 ? :: tail -f *.log
147 ? :: cd /home/oracle/admin/zjport/bdump
148 ? :: tail -f *.log
149 ? :: cd /home/oracle/admin/standby/bdump
150 ? :: tail -f *.log
151 ? :: errpt
152 ? :: cd /home/oracle/admin/standby/bdump
153 ? :: tail -f *.log
154 ? :: vi ~/.bash_profile
155 ? :: su -
156 2012/02/23 10:54:45 :: env
157 2012/02/23 10:54:49 :: history
158 2012/02/23 10:54:54 :: fc -t
4、切换回ROOT,发现也可以实现记录时间了
$ su -
root's Password:
P560A:/#fc -t
539 ? :: set -o vi or ksh -o vi
540 ? :: history
541 ? :: errpt -a>errpt-a.20111223
542 ? :: fc -t
543 ? :: whoami
544 ? :: more /etc/profile
545 ? :: cp /etc/profile /etc/profile_bak
546 ? :: vi /etc/profile
547 ? :: whoami
548 ? :: cd /etc
549 ? :: ls -lt|grep pro
550 ? :: vi /etc/environment
551 ? :: env
552 ? :: fc -t
553 ? :: fc -t
554 2012/02/23 10:56:04 :: fc -t
附:在AIX下 运行history命令显示出来的历史命令的语句是什么
1. $set -o vi or ksh -o vi
2. 按esc,k--上一次命令,j下一个命令,可以编辑命令,操作同vi