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

Linuxでのコマンドまたはプロセスの実行時間を検索する

コマンド/プロセスの開始時刻とプロセスの実行時間を知っていると思います。 LinuxおよびUnixライクなシステム。しかし、コマンドまたはプロセスがいつ終了したか、および/またはコマンド/プロセスが完了するのにかかった合計時間はどのようにしてわかりますか?まあ、それは簡単です! Unixライクなシステムには、「GNUtime」という名前のユーティリティがあります。 これは、この目的のために特別に設計されています。 Timeユーティリティを使用すると、Linuxオペレーティングシステムでのコマンドまたはプログラムの合計実行時間を簡単に測定できます。良い点は、ほとんどのLinuxディストリビューションに「time」コマンドがプリインストールされているため、インストールに煩わされる必要がないことです。

Linuxでのコマンドまたはプロセスの実行時間を検索する

コマンド/プログラムの実行時間を測定するには、実行するだけです。

$ /usr/bin/time -p ls

または、

$ time ls

出力例:

dir1 dir2 file1 file2 mcelog

real 0m0.007s
user 0m0.001s
sys 0m0.004s
$ time ls -a
. .bash_logout dir1 file2 mcelog .sudo_as_admin_successful
.. .bashrc dir2 .gnupg .profile .wget-hsts
.bash_history .cache file1 .local .stack

real 0m0.008s
user 0m0.001s
sys 0m0.005s

上記のコマンドは、'lsの合計実行時間を表示します ' 指図。 「ls」を置き換えます 「任意のコマンド/プロセスを使用して、合計実行時間を見つけます。

ここで

  1. real -コマンド/プログラムにかかった合計時間を指します
  2. user -ユーザーモードでプログラムにかかる時間を指します
  3. sys -カーネルモードでプログラムにかかる時間を指します。

コマンドを特定の時間だけ実行するように制限することもできます。詳細については、次のガイドを参照してください。

  • Linuxで特定の時間コマンドを実行する方法

時間と/usr/ bin / time

お気づきかもしれませんが、2つのコマンド'time' を使用しました および'/usr/bin/time ' 上記の例では。だから、あなたはそれらの違いは何であるか疑問に思うかもしれません。

まず、実際の'timeを見てみましょう 'は'typeを使用しています ' 指図。知らない人のために、タイプ コマンドは、Linuxコマンドに関する情報を見つけるために使用されます。詳細については、このガイドを参照してください。 。

$ type -a time
time is a shell keyword
time is /usr/bin/time

上記の出力でわかるように、時間は両方です

  • BASHシェルに組み込まれているキーワード
  • 実行可能ファイル、つまり /usr/bin/time

シェルキーワードは実行可能ファイルよりも優先されるため、時間を実行するだけの場合 フルパスなしのコマンドでは、組み込みのシェルコマンドを実行します。ただし、 /usr/bin/timeを実行すると 、実際のGNU時間を実行します プログラム。したがって、実際のコマンドにアクセスするには、その明示的なパスを指定する必要がある場合があります。クリア?いいね!

組み込みの「time」シェルキーワードは、BASH、ZSH、CSH、KSH、TCSHなどのほとんどのシェルで使用できます。「time」シェルキーワードには、実行可能ファイルよりもオプションが少なくなっています。 'time'キーワードで使用できる唯一のオプションは、 -pです。

'time'コマンドを使用して、特定のコマンド/プロセスの合計実行時間を見つける方法をマスターしました。 「GNU時間」ユーティリティについてもう少し知りたいですか?続きを読む!

「GNUtime」プログラムについての簡単な紹介

GNUタイムプログラムは、指定された引数を使用してコマンド/プログラムを実行し、コマンドの完了後にシステムリソースの使用状況を標準出力として要約します。 'time'キーワードとは異なり、GNUタイムプログラムは、コマンド/プロセスで使用された時間を表示するだけでなく、メモリ、I / O、IPC呼び出しなどの他のリソースも表示します。

Timeコマンドの一般的な構文は次のとおりです。

/usr/bin/time [options] command [arguments...]

上記の構文の「オプション」は、特定の機能を実行するためにtimeコマンドで使用できるフラグのセットを指します。利用可能なオプションのリストを以下に示します。

  • -f--format -このオプションを使用して、必要に応じて出力の形式を指定します。
  • -p--portability -ポータブル出力形式を使用します。
  • -o ファイル、--output =ファイル -出力をFILEに書き込みます 標準出力として表示する代わりに。
  • -a--append -出力を上書きするのではなく、ファイルに追加します。
  • -v--verbose -このオプションは、「time」ユーティリティの出力の詳細な説明を表示します。
  • --quiet -このオプションは、time'time'ユーティリティがプログラムのステータスを報告するのを防ぎます。

オプションなしで「GNUtime」プログラムを使用すると、次のような出力が表示されます。

$ /usr/bin/time wc /etc/hosts
9 28 273 /etc/hosts
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2024maxresident)k
0inputs+0outputs (0major+73minor)pagefaults 0swaps

シェルビルトインのキーワード「time」を使用して同じコマンドを実行すると、出力が少し異なります。

$ time wc /etc/hosts
9 28 273 /etc/hosts

real 0m0.006s
user 0m0.001s
sys 0m0.004s

場合によっては、ターミナルに表示するのではなく、システムリソース使用量の出力をファイルに書き込みたいことがあります。これを行うには、 -oを使用します 以下のようなフラグ。

$ /usr/bin/time -o file.txt ls
dir1 dir2 file1 file2 file.txt mcelog

出力からわかるように、Timeユーティリティは出力を表示しません。なぜなら、出力をfile.txtという名前のファイルに書き込むからです。 。このファイルを見てみましょう:

$ cat file.txt 
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2512maxresident)k
0inputs+0outputs (0major+106minor)pagefaults 0swaps

-oを使用する場合 フラグ、「file.txt」という名前のファイルがない場合は、出力を作成して書き込みます。 file.txtの場合 はすでに存在しているため、コンテンツが上書きされます。

-aを使用してファイルを上書きする代わりに、ファイルに出力を追加することもできます。 フラグ。

$ /usr/bin/time -a file.txt ls

-f フラグを使用すると、ユーザーは好みに応じて出力の形式を制御できます。たとえば、次のコマンドは'lsの出力を表示するとします。 'コマンドで、ユーザー、システム、合計時間を表示します。

$ /usr/bin/time -f "\t%E real,\t%U user,\t%S sys" ls
dir1 dir2 file1 file2 mcelog
0:00.00 real, 0.00 user, 0.00 sys

組み込みのシェルコマンド「time」がGNUタイムプログラムのすべての機能をサポートしているわけではないことに注意してください。

GNUタイムユーティリティの詳細については、manページを参照してください。

$ man time

Bashの組み込みの「Time」キーワードについて詳しく知るには、次のコマンドを実行してください:

$ help time

Linux
  1. Linux の find コマンドを使用してファイルを検索する方法

  2. Linux での locate コマンド

  3. Linux プロセスの状態

  1. Linuxatコマンドでタスクをスケジュールする

  2. Linuxlsコマンドをマスターする

  3. Linuxでプロセスの優先順位を見つけるコマンドは何ですか?

  1. 検索コマンドを使用してLinuxでファイルを検索する方法

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

  3. Linux の「検索」コマンドのガイド