OSDN Git Service

util-linux: script.1, scriptreplay.1, scriptlive.1 to 2.36
[linuxjm/jm.git] / manual / util-linux / release / man1 / script.1
1 .\" Copyright (c) 1980, 1990 Regents of the University of California.
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)script.1    6.5 (Berkeley) 7/27/91
33 .\"
34 .\"*******************************************************************
35 .\"
36 .\" This file was generated with po4a. Translate the source file.
37 .\"
38 .\"*******************************************************************
39 .\"
40 .\" Japanese Version Copyright (c) 1999 NAKANO Takeo
41 .\"      and 2001 Yuichi SATO
42 .\"      and 2020 Yoichi Chonan,
43 .\"    all rights reserved.
44 .\" Translated Thu 14 Oct 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
45 .\" Updated Tue Jan  9 18:33:39 JST 2001
46 .\"      by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
47 .\" Updated Sat Nov 17 15:27:01 JST 2001
48 .\"      by Yuichi SATO <ysato@h4.dion.ne.jp>
49 .\" Updated & Modified Sat May  1 17:38:44 JST 2004
50 .\"      by Yuichi SATO <ysato444@yahoo.co.jp>
51 .\" Updated & Modified (util-linux 2.36) Sun Nov 15 10:54:22 JST 2020
52 .\"      by Yuichi SATO <ysato444@ybb.ne.jp>
53 .\"      and Yoichi Chonan <cyoichi@maple.ocn.ne.jp>
54 .\"
55 .TH SCRIPT 1 "October 2019" util\-linux "User Commands"
56 .SH 名前
57 script \- 端末セッションの忠実な記録を作成する
58 .SH 書式
59 \fBscript\fP [options] [\fIfile\fP]
60 .SH バージョンについて
61 このマニュアルは、util-linux 2.36 所収の \fBscript\fP
62 コマンドのマニュアルである。\fBscript\fP コマンドは util-linux 2.35
63 でかなり大幅な改訂が行われた。そのため、バージョン 2.34 以前の \fBscript\fP
64 では、このマニュアルで述べている機能やオプションに使えないものがあると思う。
65 バージョン 2.34 やそれ以前の \fBscript\fP の動作やオプションについては、
66 付属の英語マニュアルをご覧いただきたい。
67 .SH 説明
68 \fBscript\fP は、端末セッションで行われるすべてについて忠実な記録
69 (タイプスクリプト、typescript) を作成する。端末上のデータは、未加工のまま
70 (in raw form) ログファイルに記録され、
71 タイミングに関する情報は、(作成する、しないが任意の)
72 構造化された別のログファイルに記録される。このタイミングのログファイルは、後で
73 \fBscriptreplay\fP(1) を使用して、セッションを再生するためにも、
74 またセッションに関する補足情報を記録するためにも必要である。
75 .PP
76 バージョン 2.35 以降の \fBscript\fP は、複数ストリームをサポートし、
77 入力と出力を別々のファイルに記録することも、
78 両者を一つのファイルに記録することも可能になっている。
79 またそうしたバージョンでは、補足情報を記録する新型のタイミングファイルも使用できる。
80 \fBscriptreplay \-\-summary\fP
81 というコマンドを使えば、そうした補足情報のすべてを見ることができる。
82
83 .PP
84 引き数の \fIfile\fP やオプションの \fB\-\-log\-out\fP \fIfile\fP
85 を指定すると、\fBscript\fP はセッションのやり取りを \fIfile\fP
86 という名前のファイルに記録する。ファイル名を指定しない場合は、セッションのやり取りを
87 \fItypescript\fP というファイルに記録することになる。
88 .PP
89 \fB\-\-log\-in\fP や \fB\-\-log\-io\fP
90 を使って入力のログを取ると、セキュリティ的に危険な情報まで記録されることになるかもしれない。
91 端末のエコーフラグ (echo flag) の設定がどうなっていようと、
92 ログファイルに端末セッションにおけるすべての入力が書き込まれるからである
93 (たとえば、パスワードまでも)。
94 .SH オプション
95 以下で使用する引き数 \fIsize\fP の後ろには、KiB (=1024), MiB (=1024*1024)
96 のような乗数を表す接尾辞を付けることができる。GiB, TiB, PiB, EiB, ZiB, YiB
97 も同様に使える ("iB" を続けるのは任意であり、たとえば、"K" は "KiB"
98 と同じ意味である)。また、KB (=1000), MB (=1000*1000)
99 のような接尾辞を付けてもよい。GB, TB, PB, EB, ZB, YB も同様に使える。
100 .TP 
101 \fB\-a\fP, \fB\-\-append\fP
102 出力を \fIfile\fP や \fItypescript\fP
103 に追加する。ファイルの既存の内容はそのまま保持される。
104 .TP 
105 \fB\-c\fP, \fB\-\-command\fP \fIcommand\fP
106 対話シェルではなく、\fIcommand\fP を直接実行する。
107 そうすることで、標準出力が端末 (tty)
108 ではない場合に動作が違ったものになるプログラムの出力が、取り込みやすくなる。
109 .TP 
110 \fB\-E\fP, \fB\-\-echo\fP \fIwhen\fP
111 このオプションは、セッション中で使われる疑似端末の ECHO
112 フラグを制御する。サポートされるモードは、\fIalways\fP, \fInever\fP, \fIauto\fP
113 である。デフォルトは \fIauto\fP であり、その場合は、目下の標準入力が端末ならば、
114 二重のエコーを避けるために、ECHO は抑止され、標準入力が端末でないならば
115 (たとえば、\fBecho date | script\fP のように、標準入力がパイプの場合)、
116 セッションログに入力の記録漏れが起きないように、ECHO は有効になる。
117 .TP 
118 \fB\-e\fP, \fB\-\-return\fP
119 子プロセスの終了ステータスを返す (訳注: 詳しく言うと、\fBscript\fP
120 上で最後に実行したプロセスの終了ステータスを \fBscript\fP
121 の終了ステータスとして返すようにする)。
122 子プロセスがシグナルによって終了させられたときの終了ステータスには、bash
123 の場合と同じ形式を使用する (すなわち、「128 + シグナル番号」である)。
124 子プロセスのその終了ステータスは、タイプスクリプトファイルにも常に記録される。
125 .TP 
126 \fB\-f\fP, \fB\-\-flush\fP
127 書き込みをするたびに出力をフラッシュする。
128 離れた場所で共同作業をしているとき、これは役に立つ。
129 片方が `mkfifo foo; script \-f foo' をすれば、もう一方は `cat foo'
130 を使って、相手が何をやっているかリアルタイムで監視できるわけである。
131 頻繁にフラッシュすると、パフォーマンスに影響が出ることに注意していただきたい。
132 SIGUSR1 シグナルを使って、オンデマンドでログをフラッシュすることもできる。
133 .TP 
134 \fB\-\-force\fP
135 デフォルトの出力ファイル \fItypescript\fP
136 がハードリンクやシンボリックリンクであってもよいことにする。すなわち、\fBscript\fP
137 コマンドがシンボリックをたどるようになる。
138 .TP 
139 \fB\-B\fP, \fB\-\-log\-io\fP \fIfile\fP
140 入力と出力のログを同じファイル \fIfile\fP
141 に記録する。注意してほしいが、このオプションに意味があるのは、\fB\-\-log\-timing\fP
142 オプションも一緒に指定した場合だけである。そうしないと、ログファイル
143 \fIfile\fP 中の出力ストリームと入力ストリームを分離できないことになる。
144 .TP 
145 \fB\-I\fP, \fB\-\-log\-in\fP \fIfile\fP
146 入力を \fIfile\fP に記録する。\fB\-\-log\-in\fP
147 だけを指定すると、出力のログは作成されないことになる。
148 .sp
149 このログ機能を使うときは、気を付けていただきたい。
150 端末でエコーフラグを「抑止」にしているときの入力も含めて、すべての入力を記録するからである
151 (たとえば、パスワードの入力も記録する)。
152 .TP 
153 \fB\-O\fP, \fB\-\-log\-out\fP \fIfile\fP
154 出力を \fIfile\fP に記録する。オプション \fB\-\-log\-out\fP や \fB\-\-log\-in\fP
155 を指定しない場合、出力が記録されるのは、デフォルトでは \fItypescript\fP
156 という名前のファイルである。\fB\-\-log\-in\fP
157 だけを指定すると、出力のログは作成されないことになる。
158 .TP 
159 \fB\-T\fP, \fB\-\-log\-timing\fP \fIfile\fP
160 タイミング情報を \fIfile\fP に記録する。現在では、タイミングファイルに
161 2 種類のフォーマットが使用できるようになっている。
162 classic (従来型) フォーマットは、(入力なり、出力なり)
163 片方のストリームのロギングのみが有効になっている場合に使用される。
164 マルチストリーム型のフォーマットが使用されるのは、\fB\-\-log\-io\fP
165 のときか、\fB\-\-log\-in\fP と \fB\-\-log\-out\fP が一緒に使われているときである。
166 \fB\-\-logging\-format\fP も参照していただきたい。
167 .RS
168 .IP "[\fB訳注\fP]" 8
169 次の \fB\-\-logging\-format\fP
170 についても言えることだが、「デフォルトでは、\fB\-\-log\-in\fP
171 さえ指定されていれば、\fB\-\-log\-out\fP 
172 が指定されていないでも、\fIadvanced\fP (新型)
173 フォーマットが使用される」、というのが正確な説明のようだ。\fB\-\-log\-in\fP
174 だけ指定するというのは、\fBscriptlive\fP
175 での再実行を考えているのでないかぎり、意味のないことだが。
176 .RE
177 .TP 
178 \fB\-m\fP, \fB\-\-logging\-format\fP \fIformat\fP
179 タイミングファイルに強制的に \fIadvanced\fP (新型) または \fIclassic\fP
180 (従来型) フォーマットを使用させる。
181 デフォルトは、出力のみをログに記録する場合は、従来型であり、
182 入力と出力、両方のロギングが要求されている場合は、新型である。
183 .sp
184 .RS
185 \fBclassic フォーマット\fP
186 .PP
187 ログは、スペースで区切られた二つのフィールドからなる。
188 最初のフィールドは、前回の出力から経過した時間を示し、2
189 番目のフィールドは、今回、何文字 (characters) 出力したかを示している。
190 .sp
191 \fBadvanced (multi\-stream) フォーマット\fP
192 .PP
193 最初のフィールドは、記載事項のタイプ識別子である
194 ('I'nput, 'O'utput, 'H'eader, 'S'ignal)。2
195 番目のフィールドは、前回の記録から経過した時間。
196 そして、記載事項の残りの部分は、タイプ特有のデータである。
197 .RE
198 .TP 
199 \fB\-o\fP, \fB\-\-output\-limit\fP \fIsize\fP
200 タイプスクリプトファイルやタイミングファイルの上限を \fIsize\fP
201 までとし、そのサイズを越えたら、子プロセスをストップする。
202 ファイルサイズの計算には、\fBscript\fP
203 コマンドが子プロセスの出力の前後に付ける開始や終了のメッセージは入らない。
204 バッファリングのせいで、生成される出力ファイルが、指定した値より大きくなることがある。
205 .TP 
206 \fB\-q\fP, \fB\-\-quiet\fP
207 寡黙モード (開始や終了のメッセージを標準出力に書き出さない)。
208 .TP 
209 \fB\-t\fP[\fIfile\fP], \fB\-\-timing\fP[=\fIfile\fP]
210 タイミングデータを標準エラーに出力する。\fIfile\fP を指定した場合は、
211 タイミングデータの出力先がそのファイルになる (訳注: 短いオプション \fB\-t\fP
212 とタイミングファイル名は、間に空白を入れず、続けて書かなければならない。
213 そうしないと、タイミングデータが標準エラーに出力されてしまう)。
214 このオプションは非推奨であり、\fB\-\-log\-timing\fP の使用をお勧めする。
215 なお、\fB\-\-log\-timing\fP では、引き数 \fIfile\fP の指定は任意ではない
216 (訳注: つまり、必須である)。
217 .TP 
218 \fB\-V\fP, \fB\-\-version\fP
219 バージョン情報を表示して終了する。
220 .TP 
221 \fB\-h\fP, \fB\-\-help\fP
222 ヘルプを表示して終了する。
223 .SH シグナル
224 \fBSIGUSR1\fP を受け取ると、\fBscript\fP
225 は直ちにバッファの内容を出力ファイルにフラッシュする。
226 .SH 環境変数
227 次の環境変数を \fBscript\fP は利用する。
228 .TP 
229 \fBSHELL\fP
230 環境変数 \fBSHELL\fP が存在すれば、\fBscript\fP
231 からフォークするシェルは、そのシェルになる。\fBSHELL\fP
232 が設定されていない場合は、Bourne シェルだと見なされる
233 (ほとんどのシェルが、この変数を自動的に設定する)。
234 .SH 注意
235 script コマンドが記録を終えるのは、フォークしたシェルが終了するときである
236 (Bourne シェル (\fBsh\fP(1)) では、\fIcontrol\-D\fP で終了する。C シェル
237 (\fBcsh\fP(1)) では、\fIexit\fP, \fIlogout\fP、あるいは (\fIignoreeof\fP
238 が設定されていない場合は) \fIcontrol\-D\fP で終了する)。
239 .PP
240 \fBvi\fP のような対話的なコマンドには、タイプスクリプトファイルにゴミを作るものがある。
241 \fBscript\fP は、複雑な画面処理をしないコマンドを使ったとき、一番うまく行く。
242 作成される記録は、ハードコピー端末
243 (訳注: スクリーンではなく、紙に出力する端末。テレタイプがその一例)
244 をエミュレートするようになっているのである。
245 .PP
246 \fBscript\fP を非対話的シェルで動かすのは、お勧めできない。\fBscript\fP
247 の内側のシェルは、常に対話的であり、そのため予期せぬ結果をもたらすかもしれないからだ。
248 もし、\fBscript\fP をシェルの初期化ファイルで使用するのなら、
249 無限ループに陥らないように気を付けなければならない。たとえば、以下のような \fB\%.profile\fP
250 ファイルを使うことができるが、これなら読み込むのは、ログインシェルだけになる。
251 .sp
252 .na
253 .RS
254 .nf
255 if test \-t 0 ; then
256     script
257     exit
258 fi
259 .fi
260 .RE
261 .ad
262 .PP
263 また、パイプを使ったコマンドで \fBscript\fP を使うのも避けたほうがよい。
264 \fBscript\fP が、ユーザの思っている以上に入力を読み込むかもしれないからである。
265 .SH 歴史
266 \fBscript\fP コマンドは 3.0BSD で登場した。
267 .SH バグ
268 \fBscript\fP は、ラインフィードやバックスペースも含めて、\fIすべて\fPをログファイルに書き込む。
269 これは、初心ユーザの予想する動作ではないだろう。
270 .PP
271 \fBscript\fP は、そもそも対話的な端末セッションを対象に設計されている。
272 そのため、標準入力が端末でないときは (たとえば、\fBecho foo | script\fP)、
273 セッションがハングするかもしれない。何故なら、script
274 セッション内の対話的シェルが EOF を受け取りそこなうと、\fBscript\fP
275 としては、いつセッションを閉じればよいのか、手がかりをつかめないからである。
276 詳しくは、「\fB注意\fP」セクションをご覧になっていただきたい。
277 .SH 関連項目
278 \fBcsh\fP(1) (\fIhistory\fP のメカニズムについて), \fBscriptreplay\fP(1),
279 \fBscriptlive\fP(1)
280 .SH 入手方法
281 この script コマンドは、util\-linux パッケージの一部であり、Linux Kernel Archive
282 <https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util\-linux/>
283 から入手できる。