记录命令执行时间

时间:2011-09-02 19:40:49

标签: shell history command-line-interface

有一种可爱的方式来登录linux控制台中所有命令的开始日期/时间。您应该将变量HISTTIMEFORMAT设置为“%F%T”。然后通过运行'history'命令,您将看到如下内容:

  512  2011-09-02 22:57:41 export HISTTIMEFORMAT="%F %T "
  513  2011-09-02 22:57:42 ls
  514  2011-09-02 22:57:43 hist
  515  2011-09-02 22:57:45 history 

这非常酷且有用。但我的梦想是在这个日志中添加命令执行时间。我知道我可以运行'time。/ some_long_lasting_script',但我不想每次手动编写时间。也许有一些方法可以自动保存每个命令执行时间?

1 个答案:

答案 0 :(得分:0)

如果它不太分散注意力,您可以更改提示以显示当前日期和时间。

如果您正在使用bash,请考虑以下内容:

export PS1="[\D{%Y-%m-%d} \T][\u@\h \W]\$ "

看起来像:

[2011-09-03 03:39:21][james@fractal ~]$ echo $PS1
[\D{%Y-%m-%d} \T][\u@\h \W]$
[2011-09-03 03:39:30][james@fractal ~]$ vi
[2011-09-03 03:39:39][james@fractal ~]$ ping google.com
PING google.com (74.125.93.147) 56(84) bytes of data.
64 bytes from qw-in-f147.1e100.net (74.125.93.147): icmp_req=1 ttl=47 time=51.3 ms
^C
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 51.343/51.343/51.343/0.000 ms
[2011-09-03 03:39:44][james@fractal ~]$ 

当然,您可以根据个人喜好定制提示。

要永久更改提示,您可以将export PS1=...添加到~/.bashrc文件中。或者,您可以编写别名以来回切换,例如,在~/.bashrc文件中,

alias prompt_ts_on='export $PS1=...'
alias prompt_ts_off='export $PS1="[\u@\h \W]\$ "'

请注意,...应该是您选择的双引号括号提示字符串。

关于PS1转义序列的一些参考:herehere