將Linux終端會(huì)話錄制成SVG動(dòng)畫
錄制終端會(huì)話可以滿足我們不同類型的需求。通過(guò)錄制終端會(huì)話,你可以完整記錄你在終端中執(zhí)行的操作,將其保存以供后續(xù)參考。通過(guò)錄制終端會(huì)話,你還可以向青少年、學(xué)生或其它打算學(xué)習(xí) Linux 的人展示各種 Linux 命令及其用例。值得慶幸的是,市面上已經(jīng)有不少工具,可以幫助我們?cè)陬?Unix 操作系統(tǒng)下錄制終端會(huì)話。我們已經(jīng)介紹過(guò)一些可以幫助你錄制終端會(huì)話的工具,可以在下面的鏈接中找到。
今天,我們要介紹另一款錄制終端操作的工具,名字叫做 Termtosvg。從名字可以看出,Termtosvg 將你的終端會(huì)話錄制成一個(gè)單獨(dú)的 SVG 動(dòng)畫。它是一款簡(jiǎn)單的命令行工具,使用 Python 語(yǔ)言編寫,可以生成輕量級(jí)、外觀整潔的動(dòng)畫,可以嵌入到網(wǎng)頁(yè)項(xiàng)目中。Termtosvg 支持自定義色彩主題、終端 UI,還可以通過(guò) SVG 模板完成動(dòng)畫控制。它兼容 asciinema 錄制格式,支持 GNU/Linux,Mac OS 和 BSD 等操作系統(tǒng)。
安裝 Termtosvg
PIP 是一個(gè)面向 Python 語(yǔ)言編寫的軟件包的管理器,可以用于安裝 Termtosvg。如果你沒(méi)有安裝 PIP,可以參考下面的指導(dǎo):
安裝 PIP 后,運(yùn)行如下命令安裝 Termtosvg 工具:
$ pip3 install --user termtosvg
此外,還要安裝渲染終端屏幕所需的依賴包:
$ pip3 install pyte python-xlib svgwrite
安裝完畢,我們接下來(lái)生成 SVG 格式的終端會(huì)話。
將 Linux 終端會(huì)話錄制成 SVG 動(dòng)畫
使用 termtosvg
錄制終端會(huì)話十分容易。打開(kāi)終端窗口,運(yùn)行如下命令即可開(kāi)始錄制:
$ termtosvg
注意: 如果 termtosvg
命令不可用,重啟操作系統(tǒng)一次即可。
運(yùn)行 termtosvg
命令后,可以看到如下命令輸出:
Recording started, enter "exit" command or Control-D to end
你目前位于一個(gè)子 Shell 中,在這里可以像平常那樣輸入命令。你在終端中的所作所為都會(huì)被錄制。
不妨隨便輸入一些命令:
$ mkdir mydirectory
$ cd mydirectory/
$ touch file.txt
$ cd ..
$ uname -a
操作完成后,使用組合鍵 CTRL+D
或者輸入 exit
停止錄制。錄制結(jié)果將會(huì)保存在 /tmp
目錄,(由于做了唯一性處理)文件名并不會(huì)重復(fù)。
現(xiàn)在,你可以在命令行運(yùn)行命令,使用你的瀏覽器打開(kāi) SVG 文件:
$ firefox /tmp/termtosvg_ddkehjpu.svg
你也可以在(圖形界面的)瀏覽器中直接打開(kāi)這個(gè) SVG 文件( File -> <SVG 文件路徑> )。
我用 Firefox 瀏覽器打開(kāi)的效果如下:
下面舉例說(shuō)明幾種使用 Termtosvg 錄制終端會(huì)話的方式。
我剛剛提到,Termtosvg 錄制終端會(huì)話后默認(rèn)保存成 /tmp
目錄下的一個(gè) SVG 動(dòng)畫文件。
但你可以指定 SVG 動(dòng)畫文件的文件名,例如 animation.svg
;也可以指定一個(gè)存放路徑,例如 /home/sk/ostechnix/
。
$ termtosvg /home/sk/ostechnix/animation.svg
錄制終端會(huì)話并使用特定模板進(jìn)行渲染:
$ termtosvg -t ~/templates/my_template.svg
使用指定的屏幕參數(shù)錄制終端會(huì)話:
$ termtosvg -g 80x24 animation.svg
使用 asciicast v2 格式錄制終端會(huì)話:
$ termtosvg record recording.cast
將 asciicast 格式的錄制結(jié)果渲染成 SVG 動(dòng)畫:
$ termtosvg render recording.cast animation.svg
欲了解更多細(xì)節(jié),請(qǐng)參考 Termtosvg 手冊(cè)。