linux 终端会话连接,如何在 Linux 中使用 Asciinema 进行录制和回放终端会话
簡介
Asciinema 是一個輕量并且非常高效的終端會話錄制器。使用它可以錄制、回放和分享 JSON 格式的終端會話記錄。與一些桌面錄制器,比如 Recordmydesktop、Simplescreenrecorder、Vokoscreen 或 Kazam 相比,Asciinema 最主要的優點是,它能夠以通過 ASCII 文本以及 ANSI 轉義碼編碼來錄制所有的標準終端輸入、輸出和錯誤信息。
事實上,即使是很長的終端會話,錄制出的 JSON 格式文件也非常小。另外,JSON 格式使得用戶可以利用簡單的文件轉化器,將輸出的 JSON 格式文件嵌入到 HTML 代碼中,然后分享到公共網站或者使用 asciinema 賬戶分享到 Asciinema.org 。最后,如果你的終端會話中有一些錯誤,并且你還懂一些 ASCI 轉義碼語法,那么你可以使用任何編輯器來修改你的已錄制終端會話。
難易程度:
很簡單!
標準終端:
#?- 給定命令需要以 root 用戶權限運行或者使用?sudo?命令
$?- 給定命令以常規權限用戶運行
從軟件庫安裝
通常, asciinema 可以使用你的發行版的軟件庫進行安裝。但是,如果不可以使用系統的軟件庫進行安裝或者你想安裝最新的版本,那么,你可以像下面的“從源代碼安裝”部分所描述的那樣,使用 Linuxbrew 包管理器來執行 Asciinema 安裝。
在 Arch Linux 上安裝:
#pacman-S asciinema
在 Debian 上安裝:
#apt install asciinema
在 Ubuntu 上安裝:
$sudoapt install asciinema
在 Fedora 上安裝:
$sudodnf install asciinema
從源代碼安裝
最簡單并且值得推薦的方式是使用 Linuxbrew 包管理器,從源代碼安裝最新版本的 Asciinema 。
前提條件
下面列出的前提條件是安裝 Linuxbrew 和 Asciinema 需要滿足的依賴關系:
git
gcc
make
ruby
在安裝 Linuxbrew 之前,請確保上面的這些包都已經安裝在了你的 Linux 系統中。
在 Arch Linux 上安裝 ruby:
#pacman-Sgitgccmakeruby
在 Debian 上安裝 ruby:
#apt installgitgccmakeruby
在 Ubuntu 上安裝 ruby:
$sudoapt installgitgccmakeruby
在 Fedora 上安裝 ruby:
$sudodnf installgitgccmakeruby
在 CentOS 上安裝 ruby:
#yuminstallgitgccmakeruby
安裝 Linuxbrew
Linuxbrew 包管理器是蘋果的 MacOS 操作系統很受歡迎的 Homebrew 包管理器的一個復刻版本。還沒發布多久,Homebrew 就以容易使用而著稱。如果你想使用 Linuxbrew 來安裝 Asciinema,那么,請運行下面命令在你的 Linux 版本上安裝 Linuxbrew:
$ ruby-e"$(curl -fsSL )"
現在,Linuxbrew 已經安裝到了目錄?$HOME/.linuxbrew/?下。剩下需要做的就是使它成為可執行?PATH?環境變量的一部分。
$echo'export PATH="$HOME/.linuxbrew/bin:$PATH"'>>~/.bash_profile
$.~/.bash_profile
為了確認 Linuxbrew 是否已經安裝好,你可以使用?brew?命令來查看它的版本:
$ brew--version
Homebrew1.1.7
Homebrew/homebrew-core(gitrevision5229;lastcommit2017-02-02)
安裝 Asciinema
安裝好 Linuxbrew 以后,安裝 Asciinema 就變得無比容易了:
$ brew install asciinema
檢查 Asciinema 是否安裝正確:
$ asciinema--version
asciinema1.3.0
錄制終端會話
經過一番辛苦的安裝工作以后,是時候來干一些有趣的事情了。Asciinema 是一個非常容易使用的軟件。事實上,目前的 1.3 版本只有很少的幾個可用命令行選項,其中一個是?--help?。
我們首先使用?rec?選項來錄制終端會話。下面的命令將會開始錄制終端會話,之后,你將會有一個選項來丟棄已錄制記錄或者把它上傳到 asciinema.org 網站以便將來參考。
$ asciinema rec
運行上面的命令以后,你會注意到, Asciinema 已經開始錄制終端會話了,你可以按下?CTRL+D?快捷鍵或執行exit?命令來停止錄制。如果你使用的是 Debian/Ubuntu/Mint Linux 系統,你可以像下面這樣嘗試進行第一次 asciinema 錄制:
$su
Password:
#apt install sl
#exit
$ sl
一旦輸入最后一個?exit?命令以后,將會詢問你:
$exit
~Asciicastrecording finished.
~Pressto upload,to cancel.
https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4
如果你不想上傳你的私密命令行技巧到 asciinema.org 網站,那么有一個選項可以把 Asciinema 記錄以 JSON 格式保存為本地文件。比如,下面的 asciinema 記錄將被存為?/tmp/my_rec.json:
$ asciinema rec/tmp/my_rec.json
另一個非常有用的 asciinema 特性是時間微調。如果你的鍵盤輸入速度很慢,或者你在進行多任務,輸入命令和執行命令之間的時間會比較長。Asciinema 會記錄你的實時按鍵時間,這意味著每一個停頓都將反映在最終視頻的長度上??梢允褂?-w?選項來縮短按鍵的時間間隔。比如,下面的命令將按鍵的時間間隔縮短為 0.2 秒:
$ asciinema rec-w0.2
回放已錄制終端會話
有兩種方式可以來回放已錄制會話。第一種方式是直接從 asciinema.org 網站上播放終端會話。這意味著,你之前已經把錄制會話上傳到了 asciinema.org 網站,并且需要提供有效鏈接:
$ asciinema play https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4
另外,你也可以使用本地存儲的 JSON 文件:
$ asciinema play/tmp/my_rec.json
如果要使用?wget?命令來下載之前的上傳記錄,只需在鏈接的后面加上?.json:
$wget-q-O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json
$ asciinema play steam_locomotive.json
將視頻嵌入 HTML
最后,asciinema 還帶有一個獨立的 JavaScript 播放器。這意味者你可以很容易的在你的網站上分享終端會話記錄。下面,使用一段簡單的?index.html?代碼來說明這個方法。首先,下載所有必要的東西:
$cd/tmp/
$mkdirsteam_locomotive
$cdsteam_locomotive/
$wget-q-O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json
$wget-q https://github.com/asciinema/asciinema-player/releases/download/v2.4.0/asciinema-player.css
$wget-q https://github.com/asciinema/asciinema-player/releases/download/v2.4.0/asciinema-player.js
之后,創建一個新的包含下面這些內容的?/tmp/steam_locomotive/index.html?文件:
rel="stylesheet"type="text/css"href="./asciinema-player.css"/>
src="./steam_locomotive.json"cols="80"rows="24">
完成以后,打開你的網頁瀏覽器,按下?CTRL+O?來打開新創建的?/tmp/steam_locomotive/index.html?文件。
結論
正如前面所說的,使用 asciinema 錄制器來錄制終端會話最主要的優點是它的輸出文件非常小,這使得你的視頻很容易分享出去。上面的例子產生了一個包含 58472 個字符的文件,它是一個只有 58 KB 大 小的 22 秒終端會話視頻。如果我們查看輸出的 JSON 文件,會發現甚至這個數字已經非常大了,這主要是因為一個 “蒸汽機車” 已經跑過了終端。這個長度的正常終端會話一般會產生一個更小的輸出文件。
下次,當你想要在一個論壇上詢問關于 Linux 配置的問題,并且很難描述你的問題的時候,只需運行下面的命令:
$ asciinema rec
然后把最后的鏈接貼到論壇的帖子里。
故障排除
在 UTF-8 環境下運行 asciinema
錯誤信息:
asciinema needs a UTF-8nativelocaleto run.Checkthe output of`locale`command.
解決方法: 生成并導出 UTF-8 語言環境。例如:
$ localedef-c-f UTF-8-i en_US en_US.UTF-8
$exportLC_ALL=en_US.UTF-8
via:
作者:?譯者:?校對:
總結
以上是生活随笔為你收集整理的linux 终端会话连接,如何在 Linux 中使用 Asciinema 进行录制和回放终端会话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网
- 下一篇: 五种方式让你在java中读取proper