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

スクリプトとscriptreplayを使用して端末を記録します

人間の魅力は、私たち一人一人が特定の学習スタイルを持っていることです。一部の人々は、何かがどのように行われるかについて読むことを好みます。最初から指示に従うことを好む人もいれば、従事する前に概要を把握することを好む人もいます。他の人々は、インストラクターやポッドキャストからの指示を聞くのが好きです。さらに別のグループは、ビデオ形式の指示を求めています。

ビデオの問題点は、作成と圧縮が難しい場合があり、一度作成したら変更するのは大変な作業です。さらに、視聴者はLinuxコマンドをビデオからコピーして端末に貼り付けることはできません。

それともできますか?

script およびscriptreplay コマンドを使用すると、ターミナルセッションを記録し、後で再生することができます。関係するビデオはありません。代わりに、 typescriptsと呼ばれるプレーンテキストファイル が使用されるため、ファイルは小さく、ユーザーは再生中にコマンドをコピーできます。

両方のscript およびscriptreplay コマンドは貴重なドキュメントツールであり、次の2つのシナリオで役立ちます。

  1. タスクを実行する正しい方法を見つけたら、シェルの履歴を調べて適切なコマンドを収集することをどれほど誠実に約束しても、そうすることはめったにありません。
  2. 時々、私のユーザーは彼らに必要な入力を見たくないです。彼らは相互作用を見たいと思っています それらとコンピュータの間。ユーザーにlsと入力するように指示できます そして、彼らがそれに応じて見ることができると期待できることを説明しますが、それが彼ら自身で起こっているのを見るとき、それはより大きな影響を及ぼします。スクリプトファイルを再生して最初にどのようなものかを確認した後、ターミナルでユーザーが非常に勇敢であることがわかりました。

[Ansible Basics:Automation Technical Overviewに登録して、Ansibleを使用する環境全体の構成管理、プロビジョニング、デプロイ、管理について学びます。 ]

端末を録音する

scriptで録音を開始するには 、タイミングファイルと typescriptの2つの宛先ファイルを提供します ファイル:

$ script --timing=time.tm myscript

出力は、scriptであることを警告します 録音を開始しました。 script中に端末で行うすべてのこと アクティブであることが記録されます。これには、一時停止、バックスペース、自動完了、さらには間違いなど、stdin、stdout、およびstderrに送信されるすべてのものが含まれます。

Ctrl + Dを押します または、exitと入力します デモンストレーションが終了したら、録音を停止します。

結果のtypescriptファイルmyscript この例では、簡単で比較的自己文書化されています:

Script started on 2022-01-06 22:27:01+13:00
0;seth:~/script^G$ echo "hello world"
hello world
0;seth:~/script^G$ exit
exit

Script done on 2022-01-06 22:27:10+13:00

このファイルを編集できます。ただし、出力のタイミングも記録されているため、変更が多すぎることに注意してください。

それでも、マイナーエラーを修正するには、テキストエディタですばやく編集するのが簡単です。

スクリプトの再生

scriptreplayを使用して記録されたスクリプトを再生できます コマンド:

$ scriptreplay --timing=time.tm myscript

これにより、ターミナルセッションが引き継がれ、記録したものの入力と出力を再生するためのキャンバスとして使用されます。タイミングも複製されるため、わかりやすくするために意味のある一時停止が保持されます。これは、スクリプトの再生をフォローしているユーザーに役立ちます。

もちろん、端末で再生しているコマンドは実行されていません。インスタントリプレイなので、ファイルを削除したり、Gitをコミットしたり、Ansibleプレイを起動したりするスクリプトを安全に再生できます。スクリプトの再生では実際には何も起こりません。ただの映画です。

実行中のドキュメント

script およびscriptreplay コマンドは、「表示しない」という哲学のための貴重なツールです。ターゲットオーディエンスが将来のある時点であなたであるかどうか、決して忘れることがないと確信していたことを忘れてからずっと後のこと、または臆病な新しい端末ユーザーであるかどうかにかかわらず、人間とコンピューターの相互作用を見ると、明るくなり、力を与えることができます。

>

画面キャプチャとは異なり、タイプスクリプトはファイルサイズが小さく、更新と編集が簡単です。シェルの履歴とは異なり、タイプスクリプトは回転しません。自分で削除しない限り、消えることはありません。また、シェルスクリプトとは異なり、typescriptはプロセスを実行せずに手順を示し、ビューアに各手順を試して、内部化してメモリにコミットし、端末が実際に何ができるかをよりよく理解するように促します。


Linux
  1. procps-ngを使用してターミナルでLinuxシステムを監視します

  2. Linuxターミナルとシェルをクリスマス化する方法

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

  1. Asciinemaとのターミナルセッションを記録する

  2. edを使用してLinuxターミナルのテキストエディタを起動します

  3. ターミナルとシェル環境の色付け?

  1. systemdでコンピューターの時刻と日付を制御する

  2. 「でスクリプトを実行します。 」と「ソース」で?

  3. 関数とパラメータを変数として持つシェルスクリプト?