Bash
事後發現命令執行時間
我剛剛從 bash 提示符處執行了一個長時間執行的程序。事後看來,我希望我能
time
堅持下去,或者記下我啟動它的時間。有什麼方法可以追溯獲取這些資訊?
.bash_history
似乎不包括時間戳。在我的特殊情況下,它是 Mac OS X,但我對一般的 Unix/Linux 解決方案感興趣。
澄清一下,該過程現在已經完成,除非絕對必要,否則我不想再次執行它!
bash
實際上會記住時間,直到您關閉外殼。所以嘗試執行
HISTTIMEFORMAT='%x %X ' history
如果你也放
HISTTIMEFORMAT=<some format>
在您的 中
~/.bashrc
,它也會~/.bash_history
在退出時被寫入,因此您也可以檢查以前的 shell 會話中發生的情況。
Mikel 的回答很好,除瞭如果您執行程序並離開一段時間,您無法確定該過程何時完成。所以即使你有啟動程序的時間,你也不知道它花了多少時間。
當您需要在沒有準備的情況下找出答案時,我沒有解決方案。但是,如果您要再次這樣做,您可以像我一樣:將目前時間與 shell 提示符一起列印。這樣,如果您仍然打開終端,您可以看到您啟動程序的時間,以及列印下一個提示的時間。一些數學運算將為您提供執行時間。
要做到這一點
bash
,把它放在你的.bashrc
:export PS1="\A \u@\h \W \$ "
在
zsh
,把它放在你的.zshrc
:export PS1="%D{%H:%M} %n@%m %1~ %# "
以上將給你的 shell 提示一個
<time> <username>@<hostname> <current dir> <$ or % or #>
. 對於不同的 shell 和瘋狂的 花哨提示,請閱讀 shell 的手冊頁。注意:如果您需要高精度,或者程序產生的輸出太多以至於您看不到前面的提示,這可能無濟於事。