DUICUO

Asciinemaでターミナルセッションを記録する


オープンソースのターミナル セッション ロガーである Asciinema を使用して、ターミナル セッションを表示します。


サポートコールは重要であり、最終的には満足のいく結果となることが多いですが、明確なコミュニケーションは関係者全員にとって困難な場合があります。サポートコールに参加したことがある方は、最短のコマンドを綴り、スペースや改行の配置を詳しく説明するのに数分を費やしたことがあるかもしれません。ユーザーのコンピューターを直接操作する方が簡単な場合が多いですが、真にユーザーを教育するには最適な方法とは言えません。ユーザーに画面録画を送信し、コピー&ペーストで自分の端末に貼り付けられるようにしてみてはいかがでしょうか。

Asciinemaはオープンソースのターミナルセッションレコーダーです。`script` ​script​​scriptreplay​コマンドと同様に、Asciinemaはターミナル画面を正確に記録します。記録した「動画」はテキストファイルに保存され、必要に応じて再生できます。インターネット上の他の動画と同様に、動画をAsciinema.orgにアップロードできます。また、ウェブページに埋め込むこともできます。

Asciinemaをインストールする

Linux では、パッケージ マネージャーを使用して Asciinema をインストールできます。

Fedora、CentOS、Mageia、または同様のシステムの場合:

 $ sudo dnf インストール asciinema

Debian、Linux Mint、または同様のシステムの場合:

 $ sudo apt install asciinema

macOS では、Homebrew を使用してインストールできます。

 $ sudo brew install asciinema

BSD およびその他のプラットフォームで Pkgsrc を使用する:

 $ cd /usr/pkgsrc/misc/py-asciinema
$ sudo bmake インストール クリーン

テキストから映画を作る

Asciinema で録画を開始するには、 ​rec​サブコマンドを使用します。

 $ asciinema rec mymovie.cast
asciinema: asciicast を mymovie.cast に録画する
asciinema: 終了したら<ctrl-d>を押すか「exit」と入力してください

役に立つ出力メッセージが表示され、記録中であることが通知され、停止方法が示されます。Ctrl ​Ctrl+D​を押すか、「 ​exit​と入力します。

Asciinema が起動すると、ターミナルで行ったすべての操作が記録されます。これには、入力、出力、エラー、不自然な一時停止、成功または失敗が含まれます。記録中にターミナルで表示すると、一部が切り捨てられます。

ターミナルの動作のデモンストレーションが終了したら、 ​Ctrl+D​を押すか、「 ​exit​と入力して記録を停止します。

この例では、結果のファイル​mymovie.cast​は、再生用のスクリプトとして使用されるタイムスタンプとアクションのコレクションです (映画のスクリプトのように)。

 { "version" : 2  "width" : 139  "height" : 36  "timestamp" : 1641457358  "env" : { "SHELL" : "/bin/bash"  "TERM" : "xterm-256color" } }
[ 0.05351 , "o" , "\u001b]0;seth:~\u0007" ]
[ 0.05393 , "o" , "\u001b[1;31m$ \u001b[00m" ]
[ 1.380059 , "お" , "え" ]
[ 1.443823 , "o" , "c" ]
[ 1.514674 , "お" , "ひ" ]
[ 1.595238 , "お" , "お" ]
[ 1.789562 , "お" , " " ]
[ 2.09658 , "o" , "\"" ]
[ 2.19683 , "お" , "ひ" ]
[ 2.403994 , "お" , "え" ]
[ 2.466784 , "お" , "l" ]
[ 2.711183 , "お" , "ろ" ]
[ 3.120852 , "o" , "\"" ]
[ 3.427886 , "o" , "\r\nこんにちは\r\n" ]
[ ... ]

間違いがあった場合は、エラーを再現する行を削除することで修正できます。記録中にコマンドラインを頻繁に変更したり、長時間の停止が発生する場合は、asciinema-edit ツールをインストールして使用できます。このツールは、タイムスタンプを定義したり、アイドル時間を削除したりすることで、これらの「ショット」をカットできます。

映画「Asciinema」を再生する

Asciinema を再生するには、 ​play​サブコマンドを使用できます。

 $ asciinema再生 mymovie.cast

これはターミナルセッションを乗っ取り、可能な限り映画画面に近い状態にします(ただし、 ​telnet​経由でASCII形式のスターウォーズを視聴した時は例外です)。このテキストベースのムービープレーヤーは、複雑なタスクの実行方法をユーザーに示すことができます。もちろん、再生コマンド自体は実行されません。これは実行中のシェルスクリプトではないため、ムービー再生中に​hello.txt​ファイルを作成しても、再生後に新しい​hello.txt​ファイルは作成されません。これはあくまでもデモ用です。

しかし、これは単なるデモンストレーションではありません。Asciinemaのムービーを一時停止し、画面に表示されたテキストを選択してアクティブなターミナルに貼り付け、コマンドを実行できます。Asciinemaは便利なドキュメントで、タスクの完了方法を示し、コピー&ペーストで正確性を確保できます。

Asciinemaムービーをアップロードする

大ヒット作スタイルの Asciinema ムービーはまだありませんが、自分の作品を Asciinema.org にアップロードして、世界と共有することができます。

 $ asciinemaアップロード mymovie.cast

YouTubeへのアップロードにかかる時間に慣れている方なら、Asciinemaの動画アップロード速度にきっと驚かれることでしょう​.cast​ファイルは通常数キロバイト、最大でも数メガバイトなので、アップロードはほぼ瞬時に完了します。動画を共有するためにアカウント登録は必要ありませんが、申請のない動画は7日後に削除されます。傑作を保存するには、Asciinemaでアカウントを作成し、映画アカデミーからの連絡を待つしかありません。

文書としてのAsciinema

Asciinemaは、最も基本的な概念を説明するのに最適な方法です。録画したコードのコピー&ペースト機能、オンデマンドでの一時停止・再生機能、そしてコンテンツを正確に描写する機能を備えているため、単なる画面録画よりもはるかに優れています。友人に端末操作のスキルを披露する場合でも、同僚や学生に教える場合でも、Asciinemaは価値があり、ソーシャルで使いやすいツールです。