aaa*_*aaa 23 linux bash shell history command-line
我想看看一周前的某一天我在 bash 命令行上输入了什么。有没有办法检索命令行历史记录?也许像下面这样?
> history --include-date | grep 2012-02-27`
Run Code Online (Sandbox Code Playgroud)
qwe*_*eet 35
默认情况下,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
....
Run Code Online (Sandbox Code Playgroud)
但这还不是全部。由于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
...
Run Code Online (Sandbox Code Playgroud)
另外,如果您希望 HISTTIMEFORMAT 保持不变,请考虑将其附加到您的bashrc类似内容中;
echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
当您在终端中打开新选项卡或注销并登录时,您将看到更改。
| 归档时间: |
|
| 查看次数: |
101099 次 |
| 最近记录: |