如何讓linux的history命令顯示時間記錄

linux和unix上都提供了history命令,可以查詢以前執行的命令歷史記錄
但是,這個記錄並不包含時間項目
因此只能看到命令,但是不知道什麼時間執行的
如何讓history記錄時間呢?  

解決方案
注意:本方法只對bash-3.0以上版本有效
執行rpm -q bash即可顯示bash的版本
對於常見的linux AS4、AS5,都是有效的

---------------------------------------------

編輯/etc/bashrc文件,加入如下三行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "  或者HISTTIMEFORMAT="%Y%m%d %T "
export HISTTIMEFORMAT
或者一句話:

echo "HISTFILESIZE=2000">>/etc/bashrc && echo "HISTSIZE=2000">>/etc/bashrc && echo 'HISTTIMEFORMAT="%Y%m%d %T "'>>/etc/bashrc && export HISTTIMEFORMAT



保存後退出,關閉當前shell,並重新登錄
這個時候,在~/.bash_history文件中,就有記錄命令執行的時間了

用cat命令顯示這個文件,但是卻會看到這個時間不是年月日顯示的
而是按照unix time來顯示:

[root@vz ~]# cat ~/.bash_history
#1184649982
touch 3
#1184649984
exit
#1184650148
history
[root@vz ~]#

這個時間叫做unix time,是從1970年1月1日臨時起,到現在一共經過了多少秒
因爲1969年是unix系統誕生,因此1970年1月1日被規定爲unix系統誕生的時間的初始
linux系統因爲和unix系統的相似性,也完全採用這種方式來記錄時間

爲了按照人類的年月日方式來顯示時間,執行history命令來查看,就可以了,例如:
[root@vz ~]# history | more
1 20070717-132935: ll
2 20070717-132935: w
3 20070717-132935: rm -rf *
4 20070717-132935: ll
5 20070717-132935: w
6 20070717-132935: cat /etc/redhat-release
7 20070717-132935: rpm -ivh expect-5.42.1-1.i386.rpm
8 20070717-132935: ll
9 20070717-132935: vi /etc/sysconfig/i18n
10 20070717-132935: ll
11 20070717-132935: rpm -q expect
[root@vz ~]#

這樣即可查看到在什麼時間執行了什麼命令。

注意:本方法必須在服務器剛剛新安裝好時候,就設置這個參數。
如果是已經運行了很久的服務器才添加這個參數,則以前的那些命令歷史記錄是不顯示時間的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章