Linux 終端錄制工具

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

這時候就需要專門的終端錄制工具了署海,本文總結(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>

效果如下:


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ù)雜擎析,有機(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 開頭的地址會看到下面的界面:

直接使用 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)系作者
  • 序言:七十年代末钠乏,一起剝皮案震驚了整個濱河市栖秕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晓避,老刑警劉巖簇捍,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俏拱,居然都是意外死亡暑塑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門锅必,熙熙樓的掌柜王于貴愁眉苦臉地迎上來事格,“玉大人,你說我怎么就攤上這事搞隐【杂蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵劣纲,是天一觀的道長么鹤。 經(jīng)常有香客問我,道長味廊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任棠耕,我火速辦了婚禮余佛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窍荧。我一直安慰自己辉巡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布蕊退。 她就那樣靜靜地躺著郊楣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瓤荔。 梳的紋絲不亂的頭發(fā)上净蚤,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機(jī)與錄音输硝,去河邊找鬼今瀑。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的橘荠。 我是一名探鬼主播屿附,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哥童!你這毒婦竟也來了挺份?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤贮懈,失蹤者是張志新(化名)和其女友劉穎匀泊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體错邦,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡探赫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了撬呢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伦吠。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖魂拦,靈堂內(nèi)的尸體忽然破棺而出毛仪,到底是詐尸還是另有隱情,我是刑警寧澤芯勘,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布箱靴,位于F島的核電站,受9級特大地震影響荷愕,放射性物質(zhì)發(fā)生泄漏衡怀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一安疗、第九天 我趴在偏房一處隱蔽的房頂上張望抛杨。 院中可真熱鬧,春花似錦荐类、人聲如沸怖现。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屈嗤。三九已至,卻和暖如春吊输,著一層夾襖步出監(jiān)牢的瞬間饶号,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工季蚂, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留讨韭,地道東北人脂信。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像透硝,于是被迫代替她去往敵國和親狰闪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

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