2011-09-02 74 views
2

有一个可爱的方式登录在Linux控制台的所有命令的开始日期/时间。您应该将变量HISTTIMEFORMAT设置为“%F%T”。然后通过运行“历史记录”命令,你会看到类似的东西:记录命令执行时间

 
    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',但我不想每次手动写入时间。也许有自动保存每个命令执行时间的方法吗?

+0

你使用哪种壳呢?庆典? zsh的?在你的日志文件中你到底想要什么 - 有很多'时间'输出格式,比如'xxx 0,00s用户0,00s系统0%cpu 0,001 total'或者类似的东西: 'real 0m0.007s user 0m0.000s sys 0m0.004s' 你想要什么(时间)和以什么格式? – GreyCat

+0

我正在使用bash。理想的时间是四舍五入的秒数。 – bessarabov

+0

至少有3个可能的时间 - 通常是“用户时间”,“系统时间”和“墙(总)时间”。你想要哪一个? – GreyCat

回答

0

如果不是太分心,可以更改提示以显示当前的日期和时间。

如果你正在使用bash,考虑是这样的:

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

这将是这样的:

[2011-09-03 03:39:21][[email protected] ~]$ echo $PS1 
[\D{%Y-%m-%d} \T][\[email protected]\h \W]$ 
[2011-09-03 03:39:30][[email protected] ~]$ vi 
[2011-09-03 03:39:39][[email protected] ~]$ 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][[email protected] ~]$ 

,你可以,当然,你的裁缝提示您的个人喜好。

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

alias prompt_ts_on='export $PS1=...' 
alias prompt_ts_off='export $PS1="[\[email protected]\h \W]\$ "' 

注意...应该是你的封闭提示字符串双引号的选择。

在PS1转义序列一些参考:herehere

+0

这个问题在提示符时显示了创建promt的时间而不是命令运行时间。 – bessarabov