ターミナルレコーダーを使用すると、コマンドラインアクティビティを記録および再生し、ユーザーの要件に応じて、テキスト、HTML、GIFなどのさまざまな便利な形式でエクスポートできます。 このチュートリアルには、軽量で非常に効率的なターミナルレコーダーがいくつかあります。 それらのほとんどは、端末の録音を世界中で共有できる便利な形式に変換します。 Vokoscreen、Kazam、Recordmydesktop、Simplescreenrecorderなどのデスクトップレコーダーと比較したこれらのターミナルレコーダーの主な利点は、すべての標準的なターミナル入力、出力、およびエラーをANSIエスケープコード付きのプレーンASCIIテキストとして記録することです。 また、出力をごくわずかな形式のファイルにエクスポートすることもできます。これは、より長いターミナルセッションの記録に役立ちます。 これらのファイル形式は、単純なファイル転送を介して、または埋め込まれたhtmlコードの一部として公開Webサイトによって共有することもできます。 そして最後に、ターミナルセッション中にミスが発生した場合、記録されたターミナルセッションは、任意のテキストエディタを使用して遡及的に編集したり、記録のタイミングを調整して修正したりできます。
テキストモードプログラムのTTY出力を記録および再生することにより、端末アクティビティをスクリーンキャストと迅速に共有するために使用できるいくつかの便利なツールから始めましょう。
1.ttyStudio
このツールを使用して、ターミナルアクティビティを記録し、外部の依存関係なしにGIFまたはAPNG形式でコンパイルできます。 bash スクリプト、gif連結。 npmパッケージを使用してインストールできます。 まず、nodejsをインストールして、npmパッケージがインストールを開始できるようにすることができます。 以下の手順に従って、CentOS7サーバーにNodeJSをインストールしてください。
# yum install -y gcc-c++ make
# curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
#yum install -y nodejs
#node -v
v6.10.2
# npm -v
3.10.10
npmを有効にしたら、次のコマンドを使用してttyStudioをインストールできます。
# npm -g install ttystudio
コマンドを使用してターミナルアクティビティを記録できます "ttystudio filename.gif"
。 私を見てください example 下:
# ttystudio linoxide.gif
上記のコマンドを実行するだけで、新しいウィンドウが開き、録音を開始できます。 完了したら、を押します "CTRL+Q"
録音を終了します。
# ttystudio linoxide.gif
initializing writer
writing image
writing head
building gct (may take a while)
.Killed
これにより、最初のコマンド実行で指定されたように、現在の作業ディレクトリに.gifファイルが提供されます。
~]# ls linoxide.*
linoxide.frames.json linoxide.gif
以下のコマンドを実行するだけで、これらの録音を再生できます。
# ttystudio --play linoxide.frames.json
2.シェル
このプログラムを使用すると、端末のアクティビティを記録および再生して公開できます。 これはRubyで作成されており、パッケージはほとんどすべてのLinuxOSディストリビューションで利用できます。 このプログラムをインストールするには、次の手順に従ってください。
# yum install rubygems
# gem install shelr
コマンドを実行して記録を開始できます "shelr record"
。 をご覧ください example 下:
# shelr record
Provide some title for your record: Shelr Example
/root/.local/share/shelr/1493638181/meta
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> Your session started
=> Please, do not resize your terminal while recording
=> Press Ctrl+D or 'exit' to finish recording
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Script started, file is /root/.local/share/shelr/1493638181/typescript
You can end the session by typing the exit command.
Shelrは簡単に使用でき、このようにレコーディングセッションを開始できます。 example。 録音が終了したら、次のように入力できます exit
セッションを終了するか、単にヒットします CTRL+D
。 次に、以下のメッセージが表示されます。
Script done, file is /root/.local/share/shelr/1493638181/typescript
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> Session finished
Replay : shelr play last
Publish : shelr push last
この再生コマンドを使用して、記録したセッションを再生できます。 ちょうどこのような "shelr play 1493638181"
。 シェルIDがわからない場合は、このコマンドを実行するだけです。 "shelr list"
シェルレコードを一覧表示します。
# shelr list
1493638059 : My work
1493638181 : Shelr Example
3.用語を表示
Showtermは、端末を記録して簡単にアップロードできるオープンソースの端末記録およびアップロードアプリケーションです。 すべての端末アクティビティをテキストベースで記録し、ビデオとしてshowterm.ioにアップロードします。 アップロードすると、チームメンバーと共有したり、iframeとしてウェブサイトに埋め込んだりするためのリンクが生成されます。 これは、上記と同様のrubygemアプリケーションです。 インストール方法を見てみましょう。
# yum install rubygems
# gem install showterm
コマンドを実行するだけでセッションの記録を開始できます "showterm"
録音が終了したら、exitと入力します。
# showterm
showterm recording. (Exit shell when done.)
セッションを終了すると、ブラウザ経由でアクセスするためのURLリンクが記録されたメッセージが表示されます。
# exit
exit
showterm recording finished.
Uploading...
https://showterm.io/6f5883e4542f05613d0fb
録画した端末も表示できます デモ ここ。
4. TermRecord
TermRecordは、共有しやすい自己完結型のHTML出力にレコードを出力するシンプルなターミナルセッションレコーダーです。 Pythonで書かれたオープンソースツールです。 したがって、このモジュールを使用してインストールできます pip
。 インストールする必要があります EPEL
pipをインストールするためのリポジトリ。
#yum install epel-release
#yum install python-pip
# pip install TermRecord
このコマンドを実行すると、インストールされているPIPモジュールをアップグレードできます。
# pip install --upgrade pip
Collecting pip
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 515kB/s
Installing collected packages: pip
Found existing installation: pip 8.1.2
Uninstalling pip-8.1.2:
Successfully uninstalled pip-8.1.2
Successfully installed pip-9.0.1
TermRecordを使用して端末を簡単に記録できます。 このコマンドを実行するだけで、セッションの記録を開始できます。TermRecord -o /path to the/output file/
私の中で example、端末を記録し、デフォルトのサーバードキュメントルートに出力して、Webブラウザ経由でアクセスしました。
# TermRecord -o /var/www/html/termrecord.html
Script started, file is /tmp/tmp7SitII
Exit the session when done.
# exit
exit
Script done, file is /tmp/tmp7SitII
記録されたセッションには、次のURLでアクセスできます。 https://Your Server IP/termrecord.html
端末から入力された後続のコマンドはすべて、出力HTMLファイルに保存されます。 出力ファイルにはタイミング情報も保存されるため、ターミナルセッション全体を入力時と同じ速度で再生できます。 exitと入力するだけで、録音を終了できます。
記録された出力は、このようにWebブラウザで開くことができます。 これにより、再生、一時停止、再起動、または録音速度の調整を行うことができます。
5.ttyrec
ttyrecはデータを記録するターミナルレコーダーであり、 ttyplay
指図。 ttyrecは、マイクロ秒の精度でタイミング情報を記録するためのスクリプトコマンドの派生物です。 ttytimeは、記録時間情報を取得するために使用できます。 emacs -nw、vi、lynx、またはttyで実行されている任意のプログラムを記録できます。 このツールをCentOSシステムにインストールする方法を見てみましょう。
#wget https://0xcc.net/ttyrec/ttyrec-1.0.8.tar.gz
#wget https://paperlined.org/apps/rhel/building/ttyrec-1.0.8.RHEL5.patch
#tar -xvzf ttyrec-1.0.8.tar.gz
#cd ttyrec-1.0.8
#patch -i ../ttyrec-1.0.8.RHEL5.patch
patching file Makefile
patching file ttyrec.c
#make
gcc -O2 -DHAVE_openpty -c -o ttyrec.o ttyrec.c
gcc -O2 -DHAVE_openpty -c -o io.o io.c
gcc -O2 -DHAVE_openpty -o ttyrec ttyrec.o io.o -lutil
gcc -O2 -DHAVE_openpty -c -o ttyplay.o ttyplay.c
gcc -O2 -DHAVE_openpty -o ttyplay ttyplay.o io.o
gcc -O2 -DHAVE_openpty -c -o ttytime.o ttytime.c
gcc -O2 -DHAVE_openpty -o ttytime ttytime.o io.o
これで、次のようなすべてのバイナリをコピーまたはシンボリックリンクできます。ttyrec
ttyplay
と ttytime
に /usr/bin
グローバルにアクセスするためのディレクトリ。
コマンドを実行すると、セッションの記録を開始できます ttyrec
上記のコマンドを実行すると、ターミナルセッションの記録が開始され、exitと入力すると、記録が停止し、ファイル名が表示されます。 ‘ttyrecord’
現在のディレクトリに作成されます。 以下のコマンドを実行するだけで、記録されたセッションを再生できます。
#ttyplay ttyrecord
これらは、レコードの再生中に一般的に使用されるオプションです。
Usage: ttyplay [OPTION] [FILE]
-s SPEED Set speed to SPEED [1.0]
-n No wait mode
-p Peek another person's ttyrecord
次のような特別なキーを使用して速度を変更することもできます。
+ or f double the speed of playback.
– or s : halve the speed of playback.
0 : set playback speed to 0, pausing playback.
1 : set playback to speed 1.0 again.
さらに、を使用してデータの記録時間を秒単位で決定できます。 ttytime
指図。
# ttytime ttyrecord
25 ttyrecord
6.スクリプト
これはLinuxのコマンドであり、端末のアクティビティを記録するために使用されます。 これは、ユーザーが名前を付けることができるログファイルに端末アクティビティを保存するか、デフォルトのファイル名、つまりユーザーが何も提供しない場合はtypescriptを使用します。
構文
script [options] - -timing=timing_file log_filename
以下のコマンドを使用して、端末のログファイルへの記録を開始できます。
# script linoxidedemo.txt
Script started, file is linoxidedemo.txt
これにより、ターミナルレコーディングが開始され、exitと入力してレコーディングを停止できます。
# exit
exit
Script done, file is linoxidedemo.txt
完了すると、このログファイルを表示して、記録された情報を知ることができます。 それでは、記録した情報を使用して再生する方法を見てみましょう。 scriptreplay
指図。 タイミング情報だけで端末レコードを再生できます。 そのためには、端末を記録し、タイミング情報を保存する必要があります。 以下のコマンドを使用してそれを行うことができます:
#script --timing=time.txt linoxidedemo.txt
最後に、コマンドを使用して再生できます scriptreplay
ちょうどこのような。
#scriptreplay --timing=time.txt linoxidedemo.txt1
7.アシイネマ
Asciinemaは、ターミナルで行ったことを記録するためにシステムにインストールできるオープンソースのシンプルなプログラムです。 記録されたセッションは自動的にasciinemaWebサイトにロードされ、記録されたセッションを共有するためのURLが提供されます。 1つのコマンドでインストールできます。
#yum install asciinema
インストールしたら、コマンドを実行して記録を開始できます "asciinema rec"
このような:
# asciinema rec
~ Asciicast recording started.
~ Hit Ctrl-D or type "exit" to finish.
記録が終了したらセッションを終了して、チームメンバーと共有するための記録されたURLを提供できます。
# exit
exit
~ Asciicast recording finished.
~ Press <Enter> to upload, <Ctrl-C> to cancel.
https://asciinema.org/a/1nh23zdumvc23awthix6v6m6u
これで、提供されたこのURLを共有して、世界中のどこからでも閲覧できます。
8. Recterm
Rectermは、オーディオを備えたシンプルな端末録音ツールです。 asciinema、asciinema2gif、sox、ffmpegを利用してタスクを実行します。 したがって、このソフトウェアをインストールする前に、システムにオーディオ/ビデオ形式をサポートするすべてのライブラリがあることを確認する必要があります。 このようなサーバー環境では、これらの簡単な手順でrectermをインストールできます。
# git clone https://github.com/rascoro1/recterm.git
# cd recterm/
# chmod +x recterm.sh to_gif.sh
インストールしたら、コマンドを実行して記録を開始できます
# ./recterm.sh linoxide_demo
~ Asciicast recording started.
~ Hit Ctrl-D or type "exit" to finish.
指定されたとおり、exitと入力して、記録セッションを終了できます。
# exit
exit
~ Asciicast recording finished.
Your MP4 file with audio is ready:
一連の変換プロセスの後、録音された音声付きセッションが内部に表示されます linoxide_demo
このようにフォルダ example。 あなたはrectermの詳細なインストールを見ることができます。
結論
これらは、ターミナルアクティビティを記録するために使用できるコマンドラインツールの一部です。 これらのプログラムは非常に使いやすく、同じコマンドのバッチを複数回実行する必要がある場合に非常に役立ちます。 また、システム管理者がサーバーのトラブルシューティングと管理を効果的に行うのにも役立ちます。 このガイドがお役に立てば幸いです。 これに関する貴重なコメントや提案を投稿してください。