読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

scriptコマンドでコマンドの記録・再生

Unix・Linuxコマンド
scriptコマンドを使うと、自分がシェル上で実行したコマンドの入力や出力をファイルに書き出すことができます。 ◆コマンドの記録 script で記録を開始し、exit で終了します。 $ script スクリプトを開始しました、ファイルは typescript です $ ps PID TTY TIME CMD 4297 pts/2 00:00:00 bash 4386 pts/2 00:00:00 ps $ exit exit スクリプトを終了しました、ファイルは typescript です 引数を与えると記録するファイル名を指定できます。デフォルトではtypescriptです。 ◆記録したコマンドの表示 less などのページャーの場合は改行で変なことになるので、cat で表示させます。ユーザ名やホスト名も表示されます。 $ cat typescript スクリプトは 2012年04月19日 15時05分48秒 に開始しましたuser@host:~$ ps PID TTY TIME CMD 4297 pts/2 00:00:00 bash 4386 pts/2 00:00:00 ps user@host:~$ exit exit スクリプトは 2012年04月19日 15時05分52秒 に終了しましたuser@host:~$ ◆コマンドの再生 キャプチャで録画したように再生することも可能です。先ほどの記録ファイルtypescriptだけでは一度に表示されますが、オプションでコマンドの入出力のタイミングも出力するすることで出来るようになります。 記録の仕方は $ script -t 2> timing ...... 再生するときは $ scriptreplay timing ...... 入力した通りに再生してくれます。 ただしUbuntu日本語環境だとタイミングがうまく動かないみたいなので、scriptコマンド実行のときのLANGを消したらうまくできるようです。 $ LANG= script -t 2> timing ◆その他補足 オプションについてです。 -aオプションを用いるとファイルへの追加がおこわなれる。 -fオプションを用いるとファイルへの出力が即座に行われる。これを用いると他の端末からtail -f などでリアルタイムに入出力を見ることができる。(マニュアルには行単位で出力と書いてあるが実際にやってみると即座に行われるようだ) -tオプションを用いると入出力のタイミングデータを標準エラー出力に出力する。 ソース: scriptコマンドでコマンドの記録を見る