終端記錄器允許我們記錄和重放您的命令行活動,並根據用戶要求以各種方便的形式導出它,如文本、html、GIF 等。 在本教程中,我們有一些輕量級且非常高效的終端記錄器。 他們中的大多數將終端錄音轉換為一種方便的形式,可以在全球範圍內共享。 與桌面記錄器(例如 Vokoscreen、Kazam、Recordmydesktop 或 Simplescreenrecorder)相比,這些終端記錄器中的一些的主要優點是它將所有標準終端輸入、輸出和錯誤記錄為帶有 ANSI 轉義碼的純 ASCII 文本。 它甚至將輸出導出到一個很小的格式化文件,這有助於記錄更長的終端會話。 這些文件格式甚至可以通過簡單的文件傳輸或作為嵌入式 html 代碼的一部分通過公共網站共享。 最後,如果您在終端會話期間出現任何錯誤,您可以使用任何文本編輯器對您錄製的終端會話進行回顧性編輯或通過調整錄製時間進行更正。
讓我們從一些有用的工具開始,通過錄製和回放文本模式程序的 TTY 輸出,這些工具可用於通過截屏視頻快速共享您的終端活動。
1. ttyStudio
您可以使用此工具記錄您的終端活動並將其編譯為 GIF 或 APNG 格式,而無需任何外部依賴項, bash 腳本,gif 連接。 您可以使用 npm 包安裝它。 首先,您可以安裝nodejs 啟用npm 包以開始安裝。 請按照以下步驟在 CentOS 7 服務器上安裝 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 編寫的,並且該軟件包可用於幾乎所有 Linux 操作系統發行版。 請按照以下步驟安裝此程序。
# 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"
. 如果您不知道 shelr ID,則可以運行此命令 "shelr list"
列出 shelr 記錄。
# 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
您可以在以下位置訪問錄製的會話 https://Your Server IP/termrecord.html
從終端鍵入的任何後續命令都將保存到輸出 HTML 文件中。 輸出文件還將存儲計時信息,以便可以以與您打字相同的速度重播整個終端會話。 您只需輸入 exit 即可結束錄音。
您可以像這樣通過網絡瀏覽器打開記錄的輸出。 您可以使用它播放、暫停或重新啟動,甚至調整錄製速度。
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中的一個命令,用於記錄終端活動。 它將終端活動存儲在可由用戶命名的日誌文件中,或者當用戶沒有提供任何內容時,它採用默認文件名,即打字稿。
句法
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 是一個開源的簡單程序,您可以將其安裝在系統上以記錄您在終端中的操作。 錄製的會話會自動加載到 asciinema 網站,您將獲得一個 URL 以共享錄製的會話。 您只需使用一個命令即可安裝它。
#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 是一個簡單的終端錄音工具以及音頻。 它利用 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的詳細安裝。
結論
這些是一些可用於記錄終端活動的命令行工具。 當您需要多次運行同一批命令時,這些程序非常易於使用並且有很大幫助。 他們甚至可以幫助系統管理員有效地排除故障和管理他們的服務器。 我希望本指南對您有用。 請就此發表您的寶貴意見和建議。