有時候演示或者為了更好地說明終端的操作過程,需要錄制終端的操作责蝠,使用錄屏軟件固然可以党巾,但是缺點也明顯,錄制視頻不僅體積大霜医、需要操作界面齿拂,而且視頻錄制是按照一比一的時間錄制,瀏覽器來體驗很不好肴敛。
這時候就需要專門的終端錄制工具了署海,本文總結(jié)了幾款個人認(rèn)為不錯的終端錄制工具。歡迎補充医男。
本文介紹的工具有:
Asciinema砸狞、Teleport、TermRecord镀梭、Showterm
1. Asciinema
Asciinema 是一個用 ClojureScript 編寫的開源命令行錄屏工具刀森。
這個工具相信大家經(jīng)常看到它的Logo报账,很多開源項目網(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>
效果如下:
總結(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ù)雜擎析,有機(jī)會單獨寫一篇文章介紹都可以。
直接啟動即可:
$ 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)前計算機(jī)棚瘟,這樣就可以控制錄制過程了。
需要注意的是喜最,這個工具提供的 Web 界面是強制使用 HTTPS 訪問的偎蘸,使用 HTTP 將無法打開網(wǎng)頁,此外它還使用了谷歌二步驗證(離線工具瞬内,不用翻墻)作為登錄驗證迷雪,因此你需要手機(jī)安裝谷歌二步驗證應(yīng)用。
雖然使用麻煩虫蝶,但是安全而且界面優(yōu)雅章咧。
打開 Web 界面,輸入 https://<你的IP地址>:3080
開頭的地址會看到下面的界面:
點擊繼續(xù)前往就可以看到登錄界面能真,如果你要建立私密連接你需要一個域名和SSL證書赁严,前幾天的文章講過。
打開之后二步驗證工具掃描二維碼粉铐,輸入驗證碼就可以登錄了疼约。
現(xiàn)在看到的是服務(wù)器列表,因為是一個集群管理工具蝙泼,所以你可以添加很多服務(wù)器進(jìn)來程剥。
點擊其中一臺服務(wù)器,會直接連接到那臺服務(wù)器(點擊進(jìn)入就會開始錄制):
如你所見汤踏,Teleport 處理特殊符號效果不是很好织鲸,但是挺方便的舔腾,最重要的是,Teleport 錄制不是按照一比一的時間比例來錄制的昙沦,如果你不操作琢唾,錄制工具也會“暫停”盾饮,所以整個錄制過程你可以慢悠悠地打字采桃,最后的錄制效果也是“行云流水”一般的操作過程。
退出就結(jié)束本次會話丘损,結(jié)束錄制普办,你可以在界面中查看之前的錄制內(nèi)容:
至于如何分享,詳細(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 # 開始錄制
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>
效果如下:
最后個人推薦 Asciinema 和 Teleport,想簡單點的用 Asciinema监署,想自己控制整個錄制過程颤专,并存儲在自己服務(wù)器的用 Teleport。