共計(jì) 2915 個(gè)字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。
自動(dòng)寫(xiě)代碼機(jī)器人,免費(fèi)開(kāi)通
這篇文章給大家分享的是有關(guān) Linux 怎么使用 Asciinema 的內(nèi)容。丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨丸趣 TV 小編過(guò)來(lái)看看吧。
asciinema 是一款開(kāi)源免費(fèi)的終端錄制工具,它可以將命令行輸入輸出的任何內(nèi)容加上時(shí)間保存在文件中,同時(shí)還提供方法在終端或者 web 瀏覽器中進(jìn)行回放。
asciinema 的錄制和播放都是基于文本的,相比傳統(tǒng)的 video 有很多好處,例如錄制文件體積小,在播放的過(guò)程中可以暫停復(fù)制其中的文本內(nèi)容等等。同時(shí) asciinema 還提供了一個(gè)網(wǎng)站,你如果愿意還可以將錄制的內(nèi)容上傳至 asciinema.org 進(jìn)行展示,也可以在這里找到很多有趣的終端錄像。asciinema 由以下三個(gè)子項(xiàng)目構(gòu)成:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)
asciinema:基于命令行的終端會(huì)話記錄器
asciinema.org:提供 API 供上傳錄像和展示的網(wǎng)站
javascript player:用于在 web 上播放錄像的 js 播放器
asciinema 的安裝和使用都非常簡(jiǎn)單,一起來(lái)看看吧
安裝
asciinema 為 python 開(kāi)發(fā),可以直接通過(guò) apt-get、yum 或者 pip 進(jìn)行安裝
# apt-get install asciinema
安裝完成后查看版本
# asciinema --version asciinema 2.0.2
asciinema 有 v1 和 v2 兩個(gè)版本,差異較大,咖啡君使用了 v2,以下所有內(nèi)容也基于 v2 演示。
asciinema 有 5 個(gè)參數(shù),分別為錄制:rec,播放:play,以文件形式查看錄制內(nèi)容:cat,上傳文件到 asciinema.org 網(wǎng)站:upload、asciinema.org 賬號(hào)認(rèn)證:auth,本文主要說(shuō)明 rec 和 play 的使用。
錄制
# asciinema rec ops-coffee.cast
有幾個(gè)參數(shù)可以使用:
–stdin 表示啟用標(biāo)準(zhǔn)輸入錄制,意思是通常情況下 linux 輸入密碼類的信息都不會(huì)顯示,如果開(kāi)啟了這個(gè)選項(xiàng),可以記錄鍵盤(pán)輸出的密碼,但這個(gè)功能官方似乎還沒(méi)有支持,加了后看不到效果。
–append 添加錄制到已存在的文件中。
–raw 保存原始 STDOUT 輸出,無(wú)需定時(shí)信息等。
–overwrite 如果文件已存在,則覆蓋。
-c 要記錄的命令,默認(rèn)為 $SHELL。
-e 要捕獲的環(huán)境變量列表,默認(rèn)為 SHELL,TERM。
-t 后跟數(shù)字,指定錄像的 title。
-i 后跟數(shù)字,設(shè)置錄制時(shí)記錄的最大空閑時(shí)間。
-y 所有提示都輸入 yes
-q 靜默模式,加了此參數(shù)在進(jìn)入錄制或者退出錄制時(shí)都沒(méi)有提示。
輸入 exit 或按 ctrl+ D 組合鍵退出錄制。
播放
# asciinema play ops-coffee.cast
有兩個(gè)參數(shù)可以使用:
-s 后邊跟數(shù)字,表示用幾倍的速度來(lái)播放錄像
-i 后邊跟數(shù)字,表示在播放錄像時(shí)空閑時(shí)間的最大秒數(shù)
在播放的過(guò)程中你可以通過(guò)空格來(lái)控制暫停或播放,也可以通過(guò) ctrl+ c 組合鍵來(lái)退出播放,當(dāng)你按空格鍵暫停時(shí),可以通過(guò). 號(hào)來(lái)逐幀顯示接下來(lái)要播放的內(nèi)容。
文件
asciinema 推薦的文件后綴是.cast,當(dāng)然 linux 是不關(guān)心文件后綴的,你用什么都可以,推薦按規(guī)范使用.cast,文件內(nèi)容大概如下
# cat ops-coffee.cast {version : 2, width : 237, height : 55, timestamp : 1572646909, env : { SHELL : /bin/bash , TERM : linux}, title : ops-coffee } [0.010014, o , root@onlinegame:~# ]
[1.296458, o , exit] [1.976439, o , \r\n] [1.976532, o , exit\r\n]
cast 文件主要有兩部分組成,位于第一行的一個(gè)字典,這里叫 header
{ version : 2, width : 237, height : 55, timestamp : 1572646909, env : { SHELL : /bin/bash , TERM : linux }, title : ops-coffee }
header 很簡(jiǎn)單,字段的意思分別為:version 版本,width 和 height 分別表示錄制窗口的寬高,timestamp 錄制開(kāi)始的時(shí)間戳,env 錄制時(shí)指定的 - e 參數(shù)設(shè)置,title 錄制時(shí)指定的 - t 參數(shù)設(shè)置。
接下來(lái)的都是固定格式的內(nèi)容,實(shí)際上就是 IO 流信息
[0.010014, o , root@onlinegame:~# ]
每一行都是由三部分組成的一個(gè)列表
第一部分為一個(gè)浮點(diǎn)數(shù),表示輸入輸出這一行內(nèi)容所花的時(shí)間
第二部分似乎是一個(gè)固定的字符串,沒(méi)有找到說(shuō)明做什么用的
第三部分就是具體的輸入輸出的內(nèi)容
這個(gè)文件格式設(shè)計(jì)還是非常優(yōu)雅的,開(kāi)頭 header 聲明,后邊具體內(nèi)容,如果中途因?yàn)槿魏我馔鈱?dǎo)致錄像終止,也不會(huì)丟失整個(gè)錄像,而且還可以 append 增加錄像,這在需要長(zhǎng)時(shí)間暫停錄制時(shí)非常有用,更重要的是可以流式讀取,幾乎很少占用內(nèi)存,不需要把整個(gè)錄像文件都放在內(nèi)存中,對(duì)長(zhǎng)時(shí)間的錄制播放更友好。
自動(dòng)錄制審計(jì)日志
如果你有經(jīng)歷過(guò)嚴(yán)格的 IT 審計(jì),或者有用到堡壘機(jī),就會(huì)知道操作過(guò)程是需要記錄并加入審計(jì)的,如果你有因?yàn)椴恢朗钦l(shuí)操作了什么導(dǎo)致了數(shù)據(jù)被刪而背鍋的經(jīng)歷,就會(huì)知道對(duì)操作過(guò)程的記錄有多么的重要,接下來(lái)以一個(gè)簡(jiǎn)單的案例來(lái)介紹 asciinema 有什么樣的實(shí)用價(jià)值。
非常簡(jiǎn)單,只需要在 devuser 用戶的家目錄下添加.bash_profile 文件即可,內(nèi)容如下:
$ cat ~/.bash_profile export LC_ALL=en_US.UTF-8 /usr/local/bin/asciinema rec /tmp/$USER-$(date +%Y%m%d%H%M%S).log -q
添加 export LC_ALL=en_US.UTF- 8 的原因是有可能系統(tǒng)會(huì)報(bào)錯(cuò):
asciinema needs a UTF-8 native locale to run. Check the output of locale command.
rec 命令進(jìn)行錄制時(shí)添加了 -q 參數(shù),這樣在進(jìn)入或者退出時(shí)都不會(huì)有任何關(guān)于 asciinema 的提示,使用簡(jiǎn)單方便。
這樣 devuser 用戶每次登陸就會(huì)自動(dòng)開(kāi)啟一個(gè)錄像,如果需要審計(jì)或檢查操作,只需要回放錄像就可以了。
你可能會(huì)說(shuō) history 命令一樣可以記錄用戶操作,asciinema 有什么優(yōu)勢(shì)呢?asciinema 不僅可以記錄用戶的輸入,還可以記錄系統(tǒng)的輸出,也就是說(shuō) history 只能記錄執(zhí)行的命令,而 asciinema 還可以記錄執(zhí)行的結(jié)果,怎么樣,是不是很方便,趕緊試試吧。
感謝各位的閱讀!關(guān)于“Linux 怎么使用 Asciinema”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
向 AI 問(wèn)一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!