2011-09-02 73 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