按日期检索Linux命令行历史记录


Answers:


32

默认情况下,History记录运行命令时的时间,但不显示它。这样做的原因是当您运行History命令时,它会寻找一个名为的环境变量HISTTIMEFORMAT,该变量告诉它如何格式化时间。如果null未设置该值,则默认情况下它不会显示任何时间。

一个有一段时间的例子

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %t '
[qweet@superbox ~]$ history
    1  2012-03-06        su -
    2  2012-03-06        jbach@mobiletribe.net
    3  2012-03-06        mysql
    4  2012-03-06        ll
    5  2012-03-06        cd /opt/
    6  2012-03-06        ll
    7  2012-03-06        exit
    8  2012-03-06        ll
    9  2012-03-06        ls -lsa
   10  2012-03-06        cd ../
   11  2012-03-06        ll
   12  2012-03-06        ll
....

但这还不是全部。由于HISTTIMEFORMAT采用strftime值(可以在这里找到),因此您可以进行各种神奇的事情。但是对于您想做的事情,以下工作。

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %T %t'
[qweet@superbox ~]$ history | grep -e "2012-03-06 14:48"
 1006  2012-03-06 14:48:05      export HISTTIMEFORMAT='%F %T %t'
 1007  2012-03-06 14:48:07      history
 ...

另外,如果您希望HISTTIMEFORMAT保持不变,请考虑按自己的意愿将其附加bashrc

echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc

当您在终端中打开一个新选项卡或注销然后登录时,您将看到更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.