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

Linuxスクリプトコマンドを使用してターミナルセッションをキャプチャして出力する方法

Linuxのscript コマンドは、ターミナルセッションからtypescriptファイルを作成します。これは、scriptを呼び出すと コマンドを実行すると、ASCIIテキストファイルに保存されている「監視および記録された」ターミナルセッションサブシェルに移動します。タイミングファイルを使用して作成すると、出力を含めてセッションを再生できます。 scriptの目的 つまり、端末に表示されているとおりに、対話型セッションを介して任意のコマンドからサンプル出力を簡単に取得できます。バックスペースを使用したり、ファイルを編集したり、ファイルを作成したり、単純または複雑なコマンドを実行したりできます。

[読者も気に入っています:Linuxコマンドの基本:プロセス管理用の7つのコマンド]

scriptの値 コマンドは、リダイレクトなしでターミナルコマンドのターミナルセッション中に出力をキャプチャする機能を備えていますが、これは常に機能するとは限りません。コマンドからの出力をキャプチャしようとすると何度もイライラしたので、scriptを見つけるまでどういうわけかうまくいきませんでした。 。標準のリダイレクト演算子を使用すると、一部の出力をファイルにリダイレクトできますが、他のコマンドはstdoutまたは画面にのみ出力を表示します。ほとんどのシステム管理者はscriptを使用します ソフトウェアのインストール中、トラブルシューティング中、または開発とプログラミングの目的で出力を表示するコマンド。

驚いたことに、script コマンドはシェルスクリプトの作成には役立ちません。

スクリプトオプション

私が使用するほとんどのコマンドと同様に、使用可能なオプションのサブセットのみを使用します。 script コマンドには、自分の仕事では役に立たなかったオプションがいくつかあります。私が使用しているのは次のとおりです:

  • -a 以前に使用したファイルに新しいコマンドと出力を追加するため。
  • -q scriptを使用するときに最初の開始ステートメントと終了ステートメントを削除するため 。
  • --t 再生用のタイミング情報を保存します。

scriptを使用する場合 、私は常に--tを使用します タイミングファイルと-qを作成します クワイエットモードの場合。 -aのみを使用します 既存のスクリプトファイルにさらに情報を追加する必要がある場合。これはまれです。

スクリプトの使用法

以下は、私がscriptを使用する方法の2つの標準的な例です。 :

$ script --t=<logfile> -q <script file>

そして、script fileに追加する :

$ script --t=<logfile> -q -a <script file>

logfile およびscript file 選択した名前にすることができます。ファイルを終了して保存する場合は、 Ctrl-Dを使用します キーボードで。スクリプトファイルとログファイルを自由に表示、編集、または削除できます。単純なASCIIテキストファイルです。

次に例を示します:

$ script --t=script_log -q scriptfile

lsを実行しました コマンド、who コマンドを押してから、 Ctrl-Dでスクリプトを終了しました 。

$ ls
blah.txt  test1 test2 doc.txt
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Ctrl-Dを押したとき 、スクリプトが終了し、 exitが表示されます 。

catを使用する scriptfileの内容を表示するコマンド 。

$ ls
blah.txt  file_time   scriptfile  script.rec    shell_record1  shell_record3  time_log
file_log  record.scr  script_log  scriptrecord  shell_record2  snap           typescript
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Script done on 2021-01-20 14:47:28-06:00

必要に応じて、catすることもできます script_log ファイル。

$ cat script_log
0.088699 31
3.393729 1
0.246070 1
0.540094 2
0.003060 196
0.000195 31
2.136900 1
0.177266 1
0.179336 1
0.540818 2
0.003883 134
0.000210 31
4.676286 6

これは、scriptのトランザクションログと同様に動作するタイミングログファイルです。 コマンドと応答。ファイルを再生するときは重要です。これは、フォローアップ記事「Linuxスクリプトコマンドで記録されたターミナルセッションを再生する方法」で説明します。

[この無料のチートシートでKubernetesの使用の基本を学びます。 ]

まとめ

私にとって、scriptの最高のアプリケーション commandは、新しいLinuxユーザーにコマンドの使用方法をトレーニングし、ターミナルセッション自体と対話しているかのように、期待される出力をリアルタイムで表示するためのものです。より経験豊富なユーザーの場合は、新しいソフトウェアのインストールまたは構成を教えるトレーニングセッションを作成できます。トレーニングは、新しいシステム管理者のトレーニングとさまざまな場所でのハウツー記事の作成の歴史から、私が考えるアプリケーションです。また、出力はASCIIテキストファイルであるため、自分のニーズや対象者に合わせて出力を変更できます。


Linux
  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linuxターミナルでリダイレクトを使用して、どこからでもデータを読み書きできます

  3. Linuxでコマンド出力をファイルに保存する方法

  1. xclipを使用してLinuxコマンドラインでコピーして貼り付けます

  2. Linuxスクリプトコマンドで記録されたターミナルセッションを再生する方法

  3. time コマンドの出力を Linux のファイルにリダイレクトする方法は?

  1. Linuxでの入出力とエラーリダイレクトの操作

  2. LinuxでTarコマンドを使用する方法

  3. Linuxで出力をファイルとStdoutにリダイレクトする方法