Linux命令詳解 time

2021-04-06 13:02:02 字數 2853 閱讀 6175

【命令】time — 執行命令並計時

【格式】time [-p] command [arguments...]

【說明】

執行命令列"command [arguments...]",命令列執行結束時在標準輸出中列印執行該命令列的時間統計結果,其統計結果包含以下資料:

1)實際時間(real time): 從command命令列開始執行到執行終止的消逝時間;

2)使用者cpu時間(user cpu time): 命令執行完成花費的使用者cpu時間,即命令在使用者態中執行時間總和;

3)系統cpu時間(system cpu time): 命令執行完成花費的系統cpu時間,即命令在核心態中執行時間總和。

其中,使用者cpu時間和系統cpu時間之和為cpu時間,即命令占用cpu執行的時間總和。實際時間要大於cpu時間,因為linux是多工作業系統,往往在執行一條命令時,系統還要處理其它任務。

另乙個需要注意的問題是即使每次執行相同命令,但所花費的時間也是不一樣,其花費時間是與系統執行相關的。

例1:

1. # time date

2. sun mar 26 22:45:34 gmt-8 2006

3. 4. real    0m0.136s

5. user    0m0.010s

6. sys     0m0.070s

7. #

在例1中,執行命令"time date"(見第1行)。系統先執行命令"date",第2行為命令"date"的執行結果。第3-6行為執行命令"date"的時間統計結果,其中第4行"real"為實際時間,第5行"user"為使用者cpu時間,第6行"sys"為系統cpu時間。以上三種時間的顯示格式均為mmmnn[.fff]s。

在例1中,cpu時間 = 使用者cpu時間 + 系統cpu時間 = 0m0.010s + 0m0.070s = 0m0.080s,實際時間大於cpu時間,說明在date命令執行的同時,還有其它任務在執行。

【引數說明】

-p 以posix預設的時間格式列印時間統計結果,單位為秒。詳細的輸出格式見例2。

例2:

1. # time -p date

2. wed mar 27 00:33:11 gmt-8 2006

3. real 0.11

4. user 0.00

5. sys 0.02

6. #

在例2中,同樣執行命令"time date"(見第1行)。系統先執行命令 "date",第2行為該命令的執行結果。第3-5行為執行命令"date"的時間統計結果。注意本例的時間格式與例1中的時間格式差別,使用-p 引數後的時間顯示格式為nn.ff,其單位為秒。

【相關環境變數說明】

timeformat 自定義輸出的時間格式。

我們也可以通過環境變數timeformat來自定義輸出的時間格式[1]。格式中使用和標準c中的函式printf一致的轉義符,以及使用以下的轉義序列來指定輸出的時間格式:

%[prec][l][rus]

其中,選項prec為指定時間精度,即小數點後面的位數;選項l表示使用分秒(具體格式為:mmmnn[.fff]s)的格式;最後乙個字元表示時間的型別,其中r表示實際時間,u表示使用者cpu時間,s表示系統cpu 時間,它們的單位均為秒。

time命令預設輸出的時間格式同 timeformat=$'/nreal/t%3lr/nuser/t%3lu/nsys/t%3ls'。

使用-p引數的time命令輸出的時間格式同 timeformat=$'real %2r/nuser %2u/nsys %2s'。

例3:

1. # export timeformat=$'real %2r/nuser %2u/nsys %2s'

2. # time date

3. wed mar 27 00:52:03 gmt-8 2006

4. real 0.04

5. user 0.00

6. sys 0.01

7. #

比較例2和例3顯示結果,很容易發現例3雖然沒有使用引數-p,但其輸出的結果和例2一模一樣。

當然,我們也可以修改為任何自己喜歡的時間格式。

例4:

1. # export timeformat=$'/nhello, thinkerabc!/nreal time :       %lr/nuser cup time :   %lu/nsystem cpu time : %ls'

2. # time date

3. wed mar 27 01:09:26 gmt-8 2006

4.5. hello, thinkerabc!

6. real time :       0m0.016s

7. user cup time :   0m0.006s

8. system cpu time : 0m0.008s

9. #

例4的第4-8行正是我們自定義的輸出格式。

從以上介紹了三種指定時間格式的方法,即預設的時間格式、使用引數-p的posix預設的時間格式和設定環境變數timeformat自定義的時間格式,linux系統使用的先後順序如下:

1.引數-p的posix預設時間格式;

2.環境變數timeformat自定義的時間格式;

3.預設的時間格式。

【退出狀態說明】

如果能執行command命令,則返回該命令的退出狀態,否則返回如下的退出狀態值:

127 命令未找到

126 命令找到,但不能執行

1-125 其它錯誤

[1] bash-2.05b源程式, http://ftp.gnu.org/gnu/bash/bash-2.05b.tar.gz , 2002.07

[2] linux man pages

每天回顧linux命令(time)

time命令 time命令用於統計給定命令或者程式執行所花的總時間。語法 time 引數 引數 需要進行統計的程式。沒有引數的時候統計自己。結果解釋 1 real時間是指從程式開始執行到結束的時間。這段時間包括其他程序占用的時間片 程序阻塞所耗費的時間。2 user時間是指程序在使用者模式中的cpu...

Linux 教程 被忽視的time命令

如果要選 linux 下最容易被忽視的命令,time 應該算乙個。簡單來說,它是乙個用來計算命令執行時間的工具,之所以說它容易被忽視,一方面很多人根本不知道 time 的存在,而是習慣在命令啟動前後記錄兩個時間戳,然後手動計算命令執行時間 另一方面很多人雖然知道 time 的存在,但是卻並沒有真正理...

Linux使用time命令獲取命令執行時間

linux下time命令可以獲取到乙個程式的執行時間,包括程式的實際執行時間 real time 以及程式執行在使用者態的時間 user time 和核心態的時間 sys time 它的使用方法和前面講過的strace類似,在待執行的命令前加上time即可。來看乙個例子程式test.c includ...