Linux 終端錄制工具

有時候演示或者為了更好地說明終端的操作過程,需要錄制終端的操作,使用錄屏軟件固然可以,但是缺點也明顯,錄制視頻不僅體積大、需要操作界面,而且視頻錄制是按照一比一的時間錄制,瀏覽器來體驗很不好。

這時候就需要專門的終端錄制工具了,本文總結(jié)了幾款個人認(rèn)為不錯的終端錄制工具。歡迎補充。

本文介紹的工具有:
Asciinema、Teleport、TermRecord、Showterm

1. Asciinema

Asciinema 是一個用 ClojureScript 編寫的開源命令行錄屏工具。
這個工具相信大家經(jīng)??吹剿腖ogo,很多開源項目網(wǎng)頁的操作介紹都是使用這個工具錄制的。

1.1 安裝

安裝沒什么大問題,大部分發(fā)行版的軟件倉庫都收錄了這個工具。
通用安裝(pip):

sudo pip3 install asciinema

從 Github 下載最新版:

git clone https://github.com/asciinema/asciinema.git
cd asciinema
python3 -m asciinema --version

macOS:

brew install asciinema

Arch Linux

sudo pacman -S asciinema

Debian

sudo apt install asciinema

Fedora

sudo dnf install asciinema

Ubuntu

sudo apt-add-repository ppa:zanchey/asciinema
sudo apt-get update
sudo apt-get install asciinema

1.2 錄制

asciinema rec

使用 exit 或者 Ctrl+D 快捷鍵結(jié)束錄制。它會在結(jié)束錄制的時候提示,如果要上傳的話,敲回車。上傳之后,Asciinema 會給出一個網(wǎng)址,例如:
https://asciinema.org/a/44nu2i2ieywlmqq9wx5sk5k1e
要想嵌入到自己的網(wǎng)頁上也沒有問題:

<script type="text/javascript" src="https://asciinema.org/a/44nu2i2ieywlmqq9wx5sk5k1e.js" id="asciicast-44nu2i2ieywlmqq9wx5sk5k1e" async></script>

效果如下:


Asciinema 錄制效果

總結(jié):
Asciinema 總得來說是非常優(yōu)秀的終端錄制工具,它使用 Json 來存儲操作過程,通過解析 Json 文件來還原操作流程,體積小。

此外 Asciinema 比較注重社區(qū),因此有賬號、上傳等功能,一方面便于分享另一方面也帶來一些麻煩,例如要打開它的網(wǎng)站才能看到終端錄制過程。大大的Logo似乎也沒有定制的功能。

個人認(rèn)為比較不好的就是 Asciinema 按照一比一時間比例播放,熟悉終端的同學(xué)都知道終端操作不可能一直行云流水,有時候會有一點停頓,錄制工具把這些時間也錄制播放出來很影響觀眾體驗。

2. Teleport

其實 Teleport 并非終端錄制工具,終端錄制只是其豐富而且強大功能中的一個。

Teleport 是一款可以替代 SSH 工具的新一代服務(wù)器集群管理工具,它不僅可以同時管理大量服務(wù)器還可以作為一個終端錄制工具,它提供了一個直觀的 Web 界面來顯示終端,也就是說你可以在瀏覽器操作服務(wù)器,在瀏覽器錄制、分享。

最重要的是它是開源的,它運行在你的服務(wù)器上。

2.1 安裝

從下面地址中下載最新版本的 Teleport:
https://github.com/gravitational/teleport/releases
解壓之后就可以用了,你也可以使用它的安裝腳本安裝到系統(tǒng)相關(guān) bin 目錄,方便直接使用 Teleport 命令。

Teleport 一共有三個小工具,使用過程比較復(fù)雜,有機會單獨寫一篇文章介紹都可以。

直接啟動即可:

$ sudo teleport start
[AUTH]  Auth service is starting on 0.0.0.0:3025
[PROXY] Reverse tunnel service is starting on 0.0.0.0:3024
[PROXY] Web proxy service is starting on 0.0.0.0:3080
[SSH]   Service is starting on 0.0.0.0:3022
[PROXY] SSH proxy service is starting on 0.0.0.0:3023

這個工具所謂的錄制其實就是在你進(jìn)入遠(yuǎn)程連接的那一刻起它就在錄制整個操作過程。

為了控制錄制過程,我們一般選擇使用 ssh 按照傳統(tǒng)的方式連接進(jìn)去,然后使用 Teleport 的 tclsh 命令連接當(dāng)前計算機,這樣就可以控制錄制過程了。

需要注意的是,這個工具提供的 Web 界面是強制使用 HTTPS 訪問的,使用 HTTP 將無法打開網(wǎng)頁,此外它還使用了谷歌二步驗證(離線工具,不用翻墻)作為登錄驗證,因此你需要手機安裝谷歌二步驗證應(yīng)用

雖然使用麻煩,但是安全而且界面優(yōu)雅。

打開 Web 界面,輸入 https://<你的IP地址>:3080 開頭的地址會看到下面的界面:

直接使用 https 方式打開

點擊繼續(xù)前往就可以看到登錄界面,如果你要建立私密連接你需要一個域名和SSL證書,前幾天的文章講過。

打開之后二步驗證工具掃描二維碼,輸入驗證碼就可以登錄了。

登錄之后

現(xiàn)在看到的是服務(wù)器列表,因為是一個集群管理工具,所以你可以添加很多服務(wù)器進(jìn)來。

點擊其中一臺服務(wù)器,會直接連接到那臺服務(wù)器(點擊進(jìn)入就會開始錄制):

連接狀態(tài)

如你所見,Teleport 處理特殊符號效果不是很好,但是挺方便的,最重要的是,Teleport 錄制不是按照一比一的時間比例來錄制的,如果你不操作,錄制工具也會“暫?!?,所以整個錄制過程你可以慢悠悠地打字,最后的錄制效果也是“行云流水”一般的操作過程。

退出就結(jié)束本次會話,結(jié)束錄制,你可以在界面中查看之前的錄制內(nèi)容:


錄制結(jié)果

至于如何分享,詳細(xì)看官方文檔,或者等我有空再寫一篇詳細(xì)的 Teleport 教程。

3. TermRecord

TermRecord 是一個用 python 編寫的開源命令行錄屏工具。
安裝 TermRecord,沒安裝 pip 就先安裝:

# sudo apt-get install python-pip
sudo pip install TermRecord

錄制方法:

TermRecord -o /path/to/output.html # 開始錄制
exit # 結(jié)束錄制,或者 Ctrl+D 快捷鍵結(jié)束錄制。

這個 output.html 就是錄制的文件,可以用瀏覽器打開。

有別于 Asciinema,它不會自動上傳到網(wǎng)上,而是生成一個 html 文件,想要分享的話,你可以將其發(fā)送給好友。

推薦使用 ttyrec 作為輔助工具錄制,因為 TermRecord 處理效果不是很理想。

ttyrec 是一個 tty 控制臺錄制程序,其所錄制的數(shù)據(jù)文件可以使用與之配套的 ttyplay 播放。不管是你在 tty 中的各種操作,還是在 tty 中耳熟能詳?shù)能浖伎蛇M(jìn)行錄制。
使用 sudo apt-get install ttyrec 安裝 ttyrec。

然后兩個一起配合錄制:

TermRecord -b ttyrec -o /path/to/output.html # 開始錄制
錄制結(jié)果

4. Showterm

最后介紹的是 Showterm,這是一個用 ruby 編寫的開源命令行錄屏工具,用起來也超級簡單。
使用 gem 來安裝:

sudo gem install showterm

錄制更簡單:

showterm

然后就可以自行敲入各種命令來錄制了,使用 exit 或者 Ctrl+D 快捷鍵結(jié)束錄制。

Showterm 會把錄制結(jié)果直接上傳并給出一個網(wǎng)址,例如:
http://showterm.io/6ccdbde054d30d825934e
這樣就能很方便地分享給朋友們啦。要想嵌入到自己的網(wǎng)頁上也沒有問題:

<iframe src="http://showterm.io/6ccdbde054d30d825934e" width="640" height="480"></iframe>

效果如下:


錄制結(jié)果

最后個人推薦 Asciinema 和 Teleport,想簡單點的用 Asciinema,想自己控制整個錄制過程,并存儲在自己服務(wù)器的用 Teleport。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,981評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,211評論 4 61
  • https://showterm.io/https://asciinema.org/script 命令
    王一航閱讀 401評論 0 6
  • 早上坐217路,結(jié)果發(fā)現(xiàn)久等不來,忽然想起來,4號地鐵線圍擋了,夏殿村這一站忽略,只好走路到下一站搭車。...
    鲇魚200276閱讀 344評論 0 0

友情鏈接更多精彩內(nèi)容