如何让AIX、LINUX的History命令显示执行时间

问题描述: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

你可能感兴趣的:(linux,命令,时间,职场,history,AIX,休闲)