作者 主題: Linux shell 時間計算  (閱讀 11740 次)

0 會員 與 1 訪客 正在閱讀本文。

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
Linux shell 時間計算
« 於: 2009-02-12 00:29 »
各位高手好.
想請問一下不知道有誰知道linux有什麼可以統計執行一段指令所需的時間呢?
Ex:我想跑個程式,有辦法知道程式從執行到結束所花的時間.
謝謝!

pippeng

  • 活潑的大學生
  • ***
  • 文章數: 329
  • 性別: 男
    • 檢視個人資料
    • IT Ranger
回覆: Linux shell 時間計算
« 回覆 #1 於: 2009-02-12 08:42 »
time ./wowo.sh

用心用心再用心

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #2 於: 2009-02-12 09:25 »
真是感謝大大,我寫了一堆shell script 用了`date +%s` 跟一堆參數,沒想到答案這麼簡單
那不好意思我在請問大大請問一下喔.我執行完後畫面如下.
real    0m0.374s
user    0m0.004s
sys     0m0.032s

real是真正執行所花的時間嗎?
感謝!

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
回覆: Linux shell 時間計算
« 回覆 #3 於: 2009-02-12 11:50 »
真是感謝大大,我寫了一堆shell script 用了`date +%s` 跟一堆參數,沒想到答案這麼簡單
那不好意思我在請問大大請問一下喔.我執行完後畫面如下.
real    0m0.374s
user    0m0.004s
sys     0m0.032s
real是真正執行所花的時間嗎?

man time

These statistics consist of
(i) the elapsed real time between  invocation and  termination,
(ii) the user CPU time (the sum of the tms_utime and tms_cutime values in a struct tms as returned by times(2)),
(iii) the system CPU time (the sum of the tms_stime and tms_cstime values in a struct tms as returned by times(2)).
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #4 於: 2009-02-13 00:43 »
感謝大大的回答.
小弟部才請教最後一個問題.我執行下列指令後:
#time find / -name test
real    0m0.035s
user    0m0.002s
sys     0m0.022s
但是我想把結果存下來,我就改下
#time find / -name test >>/root/data
real    0m0.035s
user    0m0.002s
sys     0m0.022s
結果我的/root/data內容都是空的.
想請問一下shell要如何將結果畫面存下來呢?
再次感謝

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3673
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: Linux shell 時間計算
« 回覆 #5 於: 2009-02-13 05:18 »

使用 2> filename 方式來導向儲存

2 為 stderr
I am kenduest - 小州

my website: http://kenduest.sayya.org/

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #6 於: 2009-02-13 09:43 »
高手您好,感謝您的答案.
但是我試過你的方法還是不行.
time cp -af /lvs/read/1mb /local/r/1mb 3>/root/1.txt
我是執行上面的指令
然後去cat /root/1.txt 結果檔案內容都是空白的喔
感謝囉

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #7 於: 2009-02-13 09:48 »
引用
time cp -af /lvs/read/1mb /local/r/1mb 3>/root/1.txt
3代表什麼,是你key錯嗎?
或許你可以試試看這個
time cp -af /lvs/read/1mb /local/r/1mb &>/root/1.txt
沒問題和有問題的訊息都會記錄在1.txt

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #8 於: 2009-02-13 10:05 »
感謝您大大.
不好意思,剛剛那是我貼錯.
我原先是打下面
 time cp -af /lvs/read/1mb /local/r/1mb 2>/root/1.txt
後來依照您的方式改成
 time cp -af /lvs/read/1mb /local/r/1mb &>/root/1.txt
cat /root/1.txt
但是1.txt內容還是空白的喔.真是想不出來.
PS:我為避免copy檔案有出現詢問畫面,我有先下個指令 aliase cp='cp'--->原先系統預設aliase cp='cp -i',只要遇到相同檔案都會詢問是否附蓋.
« 上次編輯: 2009-02-13 10:06 由 linunix »

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
回覆: Linux shell 時間計算
« 回覆 #9 於: 2009-02-13 10:52 »
也可以用 script 把結果都錄下來;
另,cp 時不要 interactive 可以直接用 -f 強制執行,mv, rm 等指令都相同。
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

pippeng

  • 活潑的大學生
  • ***
  • 文章數: 329
  • 性別: 男
    • 檢視個人資料
    • IT Ranger
回覆: Linux shell 時間計算
« 回覆 #10 於: 2009-02-13 14:04 »
感謝您大大.
不好意思,剛剛那是我貼錯.
我原先是打下面
 time cp -af /lvs/read/1mb /local/r/1mb 2>/root/1.txt
後來依照您的方式改成
 time cp -af /lvs/read/1mb /local/r/1mb &>/root/1.txt
cat /root/1.txt
但是1.txt內容還是空白的喔.真是想不出來.
PS:我為避免copy檔案有出現詢問畫面,我有先下個指令 aliase cp='cp'--->原先系統預設aliase cp='cp -i',只要遇到相同檔案都會詢問是否附蓋.


man time (不懂要查字典)

1.要顯示以秒為單位請使用 -p 參數
2.要把結果輸出請使用GNU 1.7的time指令使用-o參數
下載Tarball 請到這裡http://gnu.07vn.com/gnu/time/
(請看一下INSTALL文件)

使用GNU的time
#/usr/local/bin/time -po 1.txt cp -af /lvs/read/1mb /local/r/1mb
請注意time的路徑
« 上次編輯: 2009-02-13 14:14 由 pippeng »
用心用心再用心

linunix

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: Linux shell 時間計算
« 回覆 #11 於: 2009-02-13 23:13 »
感謝高手指點.我的疑問已解.
感謝囉!