Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338095
  • 博文数量: 105
  • 博客积分: 358
  • 博客等级: 一等列兵
  • 技术积分: 444
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-25 23:00
个人简介

爱生活,爱养生 www.sijiyang.com 欢迎朋友来友联

文章分类

全部博文(105)

文章存档

2017年(2)

2016年(2)

2014年(24)

2013年(34)

2012年(39)

2011年(4)

分类: LINUX

2013-09-30 21:56:31

    在bash中,所执行的命令可以用history显示出来,但是bash的机制是:先将命令写入baffer,退出shell时才会写入.bash_history文件中,所以最后.bash_history文件中的命令无法分辨出来时间,解决这个问题可以采用时间戳的方法。
    bash中提供了时间戳的参数HISTTIMEFORMAT

HISTTIMEFORMAT
              If this variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each history entry displayed by the history builtin. If this variable is set, time stamps are written to the history file so they may be pre-served across shell sessions.


    有了这个参数,可以让执行的命令用history显示时,前面加上时间戳。举例如下:

 1008 2009-10-14 14:31:00 history
 1009 2009-10-14 14:32:23 cat .bash_profile
 1010 2009-10-14 14:36:01 man bash
 1011 2009-10-14 14:37:53 history


    另外就是需要让bash实时写入历史命令。这也有相关参数:

export PROMPT_COMMAND="history -a"         #用以实时写入history
export HISTTIMEFORMAT="%F %T "             #history带时间戳


阅读(1135) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~