こんな基本的なコマンドもまだまだ知らないんです(^^;
知らないことが多すぎるのでメモ
time – コマンドの時間計測やリソース使用量を表示する
script – 端末セッションの写し (typescript) を作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
TIME(1) Linux User’s Manual TIME(1) 名前 time - コマンドの時間計測やリソース使用量を表示する 書式 time [options] command [arguments...] 説明 time コマンドは、指定されたプログラム command を渡された引き数で実行す る。 command が終了すると、 time はこのプログラムの実行時間の統計情報に つ いてのメッセージを標準エラー出力に出力する。表示される統計情報は以下 の三つから構成される: (i) 起動から終了までに経過した実時間 (real time) 、 (ii) ユ ーザ CPU 時間 (times(2) が返す struct tms の tms_utime と tms_cutime の値の合計)、 (iii) システム CPU 時 間 (times(2) が 返 す struct tms の tms_stime と tms_cstime の値の合計)。 (bash(1) などの) いくつかのシェルには、ここで説明するコマンドよりも機能 が少ない、組み込みの time コマンドが存在する。組み込みではない実際の コ マ ンドを使用するためには、 (/usr/bin/time のような) コマンドのパス名を 指定する必要があるかもしれない。 オプション -p POSIX ロケールの場合、伝統的なフォーマットである "real %f\nuser %f\nsys %f\n" が使用される (各数字は秒単位)。 %f の出力での小数点以下の桁数 は 規定されていないが、クロック・ティック (clock tick) の精度を表す のに十分な桁数となり、少なくとも一桁は存在する。 終了ステータス command が起動された場合は、 command の終了ステータスが終了ステータスと な る 。 command が見つからなかった場合は終了ステータスは 127 で、 com- mand が見つかったが起動できなかった場合は 126 となる。これ以外で何か エ ラ ーがあった場合は、終了ステータスは 0 以外の前記以外の値 (1-125) の何 かになる。 環境変数 環境変数 LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_NUMERIC, NLSPATH, PATH が使用される。 PATH は command を探すのに使われる。それ以外は出力文字や 書式に使用される。 GNU バージョン 以下は GNU 1.7 バージョンの time の説明である。コマンド名と は 裏 腹 に 、GNU バージョンでは有益な情報がたくさん出力される。使用時間だけでなく 、 (取得できる場合には) メモリや I/O、IPC 呼び出しなどの他のリソース に 関 する情報も出力される。出力はフォーマット文字列を使って整形され、フォ ーマット文字列は -f オプションか環境変数 TIME で指定できる。 デフォルトのフォーマット文字列は以下の通り。 %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps -p オプションが指定された場合には、(他と互換性のある) 出力フォーマッ ト が使用される。 real %e user %U sys %S フォーマット文字列 フ ォーマットはよくある printf 形式で解釈される。通常の文字はそのままコ ピーされ、タブ、改行 (newline)、バックスラッシュはそれぞれ \t, \n, \\ でエスケープされる。パーセント記号は %% で表現され、それ以外の % は変換 を示す。末尾には必ず改行文字 (newline) が追加される。変換は以下の通りで ある。 tcsh(1) で使用される変換は全てサポートされている。 Time %E 経過した実時間 ([hours:]minutes:seconds の形式)。 %e (tcsh にはない) 経過した実時間 (秒単位)。 %S そのプロセスがカーネルモードで消費した CPU 時間の合計 (秒単位)。 %U そのプロセスがユーザモードで消費した CPU 時間の合計 (秒単位)。 %P このジョブが獲得した CPU の割り合い (パーセンテージ)。 (%U + %S) / %E で計算される。 Memory %M プロセス生存中のそのプロセスの resident set size の最大値。キロ バイト単位。 %t (tcsh にはない) そのプロセスの resident set size の平均値。キ ロ バイト単位。 %K そのプロセスのメモリ使用量の合計 (データ+スタック+テキスト) の平 均値。キロバイト単位。 %D そのプロセスの非共有データ領域の平均サイズ。キロバイト単位。 %p (tcsh にはない) そのプロセスの非共有スタック空間の平均サイズ。キ ロバイト単位。 %X そのプロセスの共有テキスト空間の平均サイズ。キロバイト単位。 %Z (tcsh にはない) システムのページサイズ (バイト単位)。この値はシ ステム毎に決まる定数だが、システムにより異なる。 %F プロセスの動作中に発生したメジャーページフォルトの回数。これは、 ディスクからページを読み込む必要があったページフォルトに関するも のである。 %R マイナーページフォールト、つまり回復可能なページフォルトの回数。 これは、そのページは有効でないが、まだ他の仮想ページに奪われてい なかったページに対するページフォルトに関するものである。 %W そのプロセスが主記憶からスワップアウトされた回数。 %c そのプロセスが (タイムスライスの経過により) 強制的にコンテキスト スイッチされた回数。 %w wait の回数、つまりそのプログラムが自発的にコンテキストスイッチ された回数。例えば、I/O 操作の完了を待っている間などが該当する。 I/O %I そのプロセスによるファイルシステムからの入力の回数。 %O そのプロセスによるファイルシステムへの出力の回数。 %r そのプロセスが受信したソケットメッセージ数。 %s そのプロセスが送信したソケットメッセージ数。 %k そのプロセスに配送されたシグナル数。 %C (tcsh にはない) time の対象となったコマンド名とコマンドライン引 き数。 %x (tcsh にはない) コマンドの終了ステータス。 GNU オプション -f FORMAT, --format=FORMAT 出力フォーマットを指定する。環境変数 TIME で指定されたフォーマッ トよりも優先される。 -p, --portability 他の time と互換性のある出力フォーマットを使用する。 -o FILE, --output=FILE 結果を stderr に送らず、指定されたファイルに書き込む。ファイルは 上書きされる。 -a, --append (-o と一緒に使用する。) ファイルを上書きせずに、結果をファイル末 尾に追加する。 -v, --verbose 非常に詳しい出力で、入手できる全ての情報を出力する。 GNU 標準オプション --help 使用方法に関するメッセージを標準出力に表示し、正常終了する。 -V, --version バージョン情報を標準出力に表示し、正常終了する。 -- オプションリストの末尾を示す。 バグ 全 てのリソースが Unix の全てのバージョンで計測されているわけではないの で、いくつかの値が 0 と報告される可能性がある。現在の出力項目のほとんど は 4.2BSD や 4.3BSD で取得可能なデータに基づいて選択されている。 GNU time バージョン 1.7 はまだローカライズされていない。そのため、POSIX の要件を実装していないことになる。 TIME という環境変数は名前の選択がまずい。 autoconf(1) や make(1) のよう な システムでは、使用するコマンドを上書きするのにそのコマンドの名前の環 境変数を使うのが珍しくない。 MORE や TIME のような名前を (プログラム の パ ス名の指定ではなく) プログラムへのオプションを指定するのに使うと、面 倒なことを引き起こす可能性が高い。 -o が追記ではなく上書きになっているのは残念なことだ (つまり -a オプショ ンがデフォルトになっているべきだろうということだ)。 GNU time に対する提案やバグレポートは bug-utils@prep.ai.mit.edu ま でメールを送ってほしい。その場合には time や OS、使用している C コン パイラのバージョンを記載してほしい。 time のバージョンは以下のコマン ド で取得できる。 time --version 関連項目 tcsh(1), times(2), wait3(2) 2008-11-14 TIME(1) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
名前 script - 端末セッションの写し (typescript) を作成する。 書式 script [-a] [-c COMMAND] [-f] [-q] [-t] [file] 説明 script は端末に表示されたものすべての写し (typescript) を作成する。これは 宿題を出された学生が、インタラクティブなセッションのハードコピーを必要と する場合などに便利だろう。記録された typescript ファイルを、後で lpr(1) などを使って印刷すれば良い。 引き数 file が指定されると、 script はすべての記録を file に保存する。フ ァイル名が与えられなければ、写しは typescript というファイルに保存される 。 オプション: -a 出力を file または typescript に追加 (append) する。以前の内容が 保存される。 -c COMMAND インタラクティブなシェルではなく、COMMAND を実行する。標準出力が 端末 (tty) でないと動作が変わってしまうプログラムの出力を、 script が簡単に記録できるようにする。 -f 書き込みをするごとに出力をフラッシュする。これは遠隔で共同作業を する場合に良い。一方の人が ‘mkfifo foo; script -f foo’ を実行した 場合、もう一方の人は、‘cat foo’ を使うことにより、何が実行されて いるかをリアルタイムで監視することができる。 -q 寡黙な動作にする。 -t タイミングデータを標準エラーに出力する。このデータはスペースで区 切られた 2 つのフィールドからなる。 1 番目のフィールドは、前の出 力からの経過時間を表す。 2 番目のフィールドは、そのときに何文字出 力されたかを表す。この情報は、タイピングと出力の実際の遅延時間で 、写しを再現するために使われる。 script は fork されたシェルが終了したときに記録を終える (Bourne シェル (sh(1)) を終わるには control-D を入力する。 C シェル (csh(1)) なら exit, logout, control-d のいずれかを入力する。ただし control-d が有効なのは ignoreeof がセットされていない場合である)。 vi(1) のようなインタラクティブなコマンドでは、 typescript ファイルにゴミ ができることがある。 script は画面を操作しないコマンドを扱ったときに最も うまく動作する。その場合の結果は、ハードコピー端末をエミュレートしたもの となる。 環境変数 script は以下の環境変数を用いる。 SHELL 環境変数 SHELL が定義されていると、 script が fork するシェルはそ れになる。 SHELL が定義されていなければ、 Bourne シェルが用いられ る。 (ほとんどのシェルはこの環境変数を自動的にセットする。) 関連項目 csh(1) (history メカニズムに関する部分), scriptreplay(1). 履歴 script コマンドは 3.0BSD で登場した。 バグ script はラインフィードやバックスペースも含め、 すべてをログファイルに書 きこむ。これは普通のユーザが期待するものとは異なるかもしれない。 |
man pageはRHEL 6.5からの転載です