SCRIPT
Section: User Commands (1)
Updated: June 2014
Index
Return to Main Contents
名前
script - 端末セッションの写し (typescript) を作成する。
書式
script
[options]
[file]
説明
script
は端末のセッションのすべての写し (typescript) を作成する。
端末のデータは、ログファイルに生の形式で格納され、
タイミングは、(オプションで) 別の構造化されたログファイルに格納される。
タイミングのログは、後で
scriptreplay(1)
でセッションを再生するのに必要であり、
セッションについての追加の情報を格納している。
バージョン 2.35 以降で、
script
は複数ストリームをサポートし、入力と出力を別のファイルに記録することも、
1 つのファイルに記録することもできる。
このバージョンでは、追加の情報を記録する新しいタイミングファイルも
サポートしている。
コマンド
scriptreplay --summary
で、すべての情報が提供される。
引き数
file
または、オプション --log-out file が指定されると、
script
はすべての記録を
file
に保存する。
ファイル名が与えられなければ、写しは
typescript
というファイルに保存される。
--log-in または --log-io を使った入力の記録では、
端末の echo フラグ設定に拘わらず、
ログファイルはすべての端末セッションの入力 (例えば、パスワード) を含むので、
セキュリティ上のセンシティブな情報も記録される点に注意すること。
オプション
size 引き数の後ろに倍数の拡張子
KiB (=1024), MiB (=1024*1024), GiB, TiB, PiB, EiB, ZiB, YiB を
付けることができる
("iB" はオプションであり、つまり "K" は "KiB" と同じ意味である)。
また、拡張子
KB (=1000), MB (=1000*1000), GB, TB, PB, EB, ZB, YB
を付けることもできる。
- -a, --append
-
出力を
file
または
typescript
に追加 (append) する。
以前の内容が保存される。
- -c, --command command
-
インタラクティブなシェルではなく、
command
を実行する。
標準出力が端末 (tty) でないと動作が変わってしまうプログラムの出力を、
script が簡単に記録できるようにする。
- -E, --echo when
-
このオプションは、セッションの擬似端末の ECHO フラグを制御する。
サポートされるモードは
always,
never,
auto
である。
デフォルトは
auto
であり -- この場合、現在の標準入力が端末であれば、
二重のエコーを避けるため、ECHO は無効化される。
また、標準入力が端末でない場合 (例えばパイプ
echo date | script
の場合)、セッションログの入力の喪失を避けるため、ECHO は有効化される。
- -e, --return
-
子プロセスの終了コードを返す。
bash でのシグナル終了と同じ形式である (つまり、終了コードは 128+シグナル番号になる)。
子プロセスの終了コードは、常に typescript ファイルに格納される。
- -f, --flush
-
書き込みをするごとに出力をフラッシュする。
これは遠隔で共同作業をする場合に良い。
一方の人が `mkfifo foo; script -f foo' を実行した場合、
もう一方の人は、`cat foo' を使うことにより、
何が実行されているかをリアルタイムで監視することができる。
フラッシュは性能に影響がある点に注意すること。
SIGUSR1 を使って、要求に応じてログをフラッシュできる。
- --force
-
typescript
ファイルがハードリンクやシンボリックリンクであっても、
デフォルトの出力ファイルを許可する。
コマンドはシンボリックリンクを辿る。
- -B, --log-io file
-
入力と出力を同じ file に記録する。
このオプションは、--log-timing も指定された場合にのみ、意味を持つ点に注意すること。
指定されない場合、出力と入力ストリームをログ file から分離することはできない。
- -I, --log-in file
-
入力を file に記録する。
--log-in しか指定されない場合、出力は記録されない。
このログ記録機能は、端末の echo フラグを無効化している場合の入力
(例えば、パスワード入力) を含む、すべての入力を記録するので、注意して使うこと 。
- -O, --log-out file
-
出力を file に記録する。
オプション --log-out または --log-in が指定されない場合、
デフォルトでは出力はファイル
typescript
に記録される。
--log-in しか指定されない場合、出力は記録されない。
- -T, --log-timing file
-
タイミング情報を file に記録する。
現在のところ、2 種類のタイミングファイルの形式がサポートされている。
1 つのストリーム (入力または出力) の記録が有効にされている場合に、
昔からの (classic) 形式が使われる。
--log-io が使われた場合、
または、--log-in と --log-out の両方が使われた場合、
複数ストリーム (multi-stream) 形式が使われる。
--logging-format も参照すること。
- -m, --logging-format format
-
advanced
または
classic
形式の使用を強制する。
デフォルトは昔からの (classic) 形式であり、出力のみを記録する。
拡張 (advanced) 形式は、出力だけでなく、入力の記録も要求された場合に、使われる。
-
昔からの (classic) 形式
このログは、空白で区切られた 2 つのフィールドから構成される。
1 つ目のフィールドは、前の出力からの経過時間である。
2 つ目のフィールドは、そのタイミングで何文字出力されたかを示す。
拡張 (advanced) (複数ストリーム) 形式
1 つ目のフィールドは、エントリータイプの識別子
('I'nput, 'O'utput, 'H'eader, 'S'ignal) である。
2 つ目のフィールドは、前のエントリからの経過時間であり、
エントリの残りの部分は、タイプ固有のデータである。
- -o, --output-limit size
-
typescript のサイズを制限し、ファイルを
size
に切り詰めて、サイズを超過した場合に子プロセスを停止する。
計算されるファイルサイズには、
script
コマンドが子プロセスの出力の前に付ける開始メッセージと、
後に付ける終了メッセージが含まれない。
バッファリングのために、結果の出力ファイルは指定した値より
大きくなる可能性がある。
- -q, --quiet
-
寡黙な動作にする (開始と終了メッセージを標準出力に書き出さない)。
- -t[file], --timing[=file]
-
タイミングデータを標準エラーに出力する。
file
が指定された場合は、ファイルに出力する。
このオプションは古く、file 引き数がオプションでない、
--log-timing を使うべきである。
- -V, --version
-
バージョン情報を表示して、終了する。
- -h, --help
-
ヘルプを表示して、終了する。
シグナル
SIGUSR1
を受けると、
script
は出力ファイルを即時にフラッシュする。
環境変数
script
は以下の環境変数を用いる。
- SHELL
-
環境変数
SHELL
が定義されていると、
script
が fork するシェルはそれになる。
SHELL
が定義されていなければ、
Bourne シェルが用いられる。
(ほとんどのシェルはこの環境変数を自動的にセットする。)
注意
script は fork されたシェルが終了したときに記録を終える
(Bourne シェル
(sh(1p))
を終わるには
control-D
を入力する。
C シェル
(csh(1))
なら
exit,
logout,
control-d
のいずれかを入力する。
ただし
control-d
が有効なのは
ignoreeof
がセットされていない場合である)。
vi(1)
のようなインタラクティブなコマンドでは、
typescript ファイルにゴミができることがある。
script
は画面を操作しないコマンドを扱ったときに最もうまく動作する。
その場合の結果は、ハードコピー端末をエミュレートしたものとなる。
script
を対話的でないシェルで実行するのは推奨されない。
script
の内部シェルは、常に対話的であり、シェルが対話的でない場合、
予期しない結果になる可能性がある。
script
をシェルの初期化ファイルで使う場合、無限ループに入るのを
避けなければならない。
例として、以下の .profile ファイルを使うことができる。
これは、ログインシェルからのみ読み込まれる。
-
if test -t 0 ; then
script
exit
fi
script
はあなたが思うより多くの入力を読み込む可能性があるので、
コマンドのパイプから
script
を使うことも避けるべきである。
履歴
script
コマンドは 3.0BSD で登場した。
バグ
script
はラインフィードやバックスペースも含め、
すべて
をログファイルに書きこむ。
これは普通のユーザが期待するものとは異なるかもしれない。
script
は元々対話的な端末のセッションのために設計されている。
標準入力が端末でない場合 (例えば、echo foo | script)、
セッションがハングする可能性がある。
これは、script セッション内の対話シェルが EOF を見つけられず、
script
がセッションをクローズする手がかりがないためである。
より詳細な情報は「注意」のセクションを参照すること。
関連項目
csh(1)
(history
メカニズムに関する部分),
scriptreplay(1),
scriptlive(1),
入手方法
script コマンドは、util-linux パッケージの一部であり、
Linux Kernel Archive
から入手できる。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- シグナル
-
- 環境変数
-
- 注意
-
- 履歴
-
- バグ
-
- 関連項目
-
- 入手方法
-
This document was created by
man2html,
using the manual pages.
Time: 14:04:02 GMT, January 22, 2021