GNU/Linux >> Linux の 問題 >  >> Linux

12 UNIX / Linux 時刻コマンド出力形式オプション例

Linux の time コマンドは、コマンドにかかった時間を特定するのに役立ちます。

Linux の time コマンドを使用すると、コマンド、シェル スクリプト、またはその他のプログラムの実行にかかった時間を把握できます。

デフォルトでは、 time command は指定されたコマンドまたはプログラムを実行します。実行後、統計とリソースの使用状況を標準エラーに表示します。

Time コマンドには、このチュートリアルで説明されているように、いくつかのコマンド ライン オプションとさまざまな形式オプションが用意されています。

1.基本的な時間コマンドの使用例

時間コマンドの構文:

$ time [-options] <command arg1 arg2 ..>

たとえば、time コマンドはオプションなしで sleep コマンドで実行されます。

$ /usr/bin/time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+172minor)pagefaults 0swaps

このコマンドのいくつかの重要なコマンド ライン オプションを理解しましょう。

2. -o オプションを使用して時間統計出力をファイルに書き込む

このオプションは、コマンド結果の送信を標準エラーに制限しますが、結果は出力ファイルに書き込みます。このオプションは、指定されたファイルを上書きします。

以下に例を示します:

$ /usr/bin/time -o time.txt sleep 2

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

3. -a オプションを使用して時間統計出力を既存のファイルに追加

このオプションを使用すると、time コマンドの出力をファイルに追加できます。 -o オプションとともに使用します。このオプションは、time コマンド出力を指定された出力ファイルに追加することにより、出力ファイルの内容の上書きを回避します。

以下に例を示します:

$ /usr/bin/time -a -o time.txt sleep 4

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+176minor)pagefaults 0swaps

4. CPU 使用率の表示 – %P

-f オプションを使用して出力形式を選択できます。このオプションを使用すると、ユーザーは出力フォーマット オプションを指定できます。環境変数 TIME で指定された形式をオーバーライドする可能性があります。 %P、%M、%S、%e、%E、%C、%Z、%c、%x の書式設定オプションについては、以下で説明します。

このオプションは、コマンドのプロセス (つまり、time コマンドの下で実行) がその実行のために獲得した CPU のパーセンテージを示します。これは、ユーザー + システム時間を総実行時間で割ったものです。また、パーセント記号も表示されます。

$ /usr/bin/time -f "\t%P CPU Percentage" find / -name my-program.sh
/root/my-program.sh
        82% CPU Percentage

ここで、コマンド出力は、find コマンドが CPU の 82% を使用したことを示しています。

5.最大常駐セット サイズの表示 – %M

このオプションは、コマンドのプロセス (つまり、time コマンドで実行) の存続期間中の常駐セットの最大サイズをキロバイト単位で指定します。

$ /usr/bin/time -f "\t%M Max Resident Set Size (Kb)" find / -name my-program.sh
/root/my-program.sh
        8688 Max Resident Set Size (Kb)

ここで、コマンド出力は、find コマンドがプロセスの最大常駐サイズとして 8688 KB を使用したことを示しています。

6. CPU 秒の合計数を表示 – %S

このオプションは、システムがプロセスに代わって (カーネル モードで) 使用した合計 CPU 秒数を秒単位で示します。

$ /usr/bin/time -f "\t%S CPU-seconds" find / -name my-program.sh
/root/my-program.sh
        0.35 CPU-seconds

ここで、コマンド出力は、カーネル モードで find コマンドが 0.35 CPU 秒かかったことを示しています。

7.経過リアルタイムを秒単位で表示 – %e

このオプションは、プロセスが使用した実経過時間 (ウォール クロックなど) を秒単位で示します。

$ /usr/bin/time -f "\t%e Elapsed Real Time (secs)" sleep 2
        2.00 Elapsed Real Time (secs)

ここで、コマンド出力は、sleep コマンドの実行が 2 秒まで経過したことを示しています。

8.経過リアルタイムを別の形式で表示 – %E

このオプションは、プロセスで使用された実際の経過時間 (ウォール クロック) を [時間:]分:秒の形式で示します。

$ /usr/bin/time -f "\t%E Elapsed Real Time (format)" sleep 2
        0:02.00 Elapsed Real Time (format)

ここで、コマンド出力は、sleep コマンドの実行に 0 時間 0 分 2 秒かかったことを示しています。

9.プログラム名とコマンド ライン引数の表示 – %C

このオプションは、コマンドの名前とコマンド ライン引数を指定します (つまり、time コマンドで実行します)。

$ /usr/bin/time -f "\t%C (Program Name and Command Line)" find / -name my-program.sh
/root/my-program.sh
        find / -name my-program.sh test_time (Program Name and Command Line)

ここで、time コマンド出力には、実行中のコマンドの名前とそのコマンド ライン引数が表示されます。

10.システム ページ サイズをバイト単位で表示 – %Z

このオプションは、システムのページ サイズをバイト単位で指定します。これはシステムごとの定数ですが、システムごとに異なる場合があります。

$ /usr/bin/time -f "\t%Z System Page Size (bytes)" sleep 2
        4096 System Page Size (bytes)

ここで、コマンド出力は、sleep コマンドがシステム ページ サイズとして 4096 バイトを使用したことを示しています。

11.コンテキスト スイッチの数を表示 – %c

このオプションは、(タイム スライスが期限切れになったため) プロセスが意図せずにコンテキスト スイッチされた回数を示します。

$ /usr/bin/time -f "\t%c Context Switches" find / -name my-program.sh
/root/my-program.sh
        254 Context Switches

ここで、コマンド出力は、time コマンドの下で find コマンドを実行中に、プロセスのコンテキスト切り替えが 254 回発生したことを示しています。

12.コマンドの終了ステータスを表示 – %x

このオプションは、コマンドの終了ステータスを示します (つまり、time コマンドの下で実行します)。

$ /usr/bin/time -f "\t%x Exit Status" top1
/usr/bin/time: cannot run top1: No such file or directory
        127 Exit Status

ここで、コマンド出力は、ファイルとしてのこの tope1 が存在しないため、top1 コマンドが失敗したことを示しています。

time コマンドのマニュアル ページによると、time コマンドの終了ステータスは次のようになります。

  • time コマンドに指定されたコマンドが呼び出された場合、終了ステータスは time コマンドで実行されたコマンドの終了ステータスになります。
  • time コマンドに指定されたコマンドが見つからなかった場合は 127 です。
  • time コマンドに指定されたコマンドが見つかったが起動できなかった場合は 126。
  • 何か問題が発生した場合のその他のゼロ以外の値 (1-125)。

最後に、「time」だけを実行する場合と「/usr/bin/time」を実行する場合では違いがあります。これについては、以前のタイム コマンドの紹介記事で説明しました。


Linux
  1. Linux 時間コマンドの例

  2. 7 Linux df コマンドの例

  3. 8 Linux TR コマンドの例

  1. Linux での rm コマンドの例

  2. Linux での ps コマンドの例

  3. Linux での pinky コマンドの例

  1. UNIX / Linux:10 の Netstat コマンドの例

  2. UNIX/Linux での tail コマンドの例

  3. Linux での uptime コマンドの例