Linux中國

用 Asciinema 記錄你的終端會話

支持電話是很重要的,而且最後往往是令人滿意的,但明確的溝通行為對每個參與的人來說都是艱巨的。如果你曾經參加過支持電話,你可能會花好幾分鐘拼出了最短的命令,並詳細解釋了空格和回車的位置。雖然直接拿過來用戶電腦的控制權往往更容易,但這並不是真正的教育的最佳方式。你可以嘗試向用戶發送一個屏幕記錄,而他們可以複製命令並粘貼到自己的終端

Asciinema 是一個開源的終端會話記錄器。與 scriptscriptreplay 命令類似,Asciinema 準確記錄了你的終端顯示。它將你的「電影」記錄保存到一個文本文件中,然後根據需要進行回放。你可以把你的電影上傳到 Asciinema.org,就像你在互聯網上分享任何其他視頻一樣,你甚至可以把你的電影嵌入到網頁中。

安裝 Asciinema

在 Linux 上,你可以使用你的包管理器安裝 Asciinema。

在 Fedora、CentOS、Mageia 或類似系統上:

$ sudo dnf install asciinema

在 Debian、Linux Mint 或類似系統上:

$ sudo apt install asciinema

在 macOS 上,你可以用 Homebrew 安裝:

$ sudo brew install asciinema

在 BSD 和任何其它平台上使用 Pkgsrc

$ cd /usr/pkgsrc/misc/py-asciinema
$ sudo bmake install clean

從文本中製作電影

要用 Asciinema 開始錄製,你可以使用 rec 子命令:

$ asciinema rec mymovie.cast
asciinema: recording asciicast to mymovie.cast
asciinema: press <ctrl-d> or type "exit" when you&apos;re done

一些友好的輸出信息提醒你,你正在錄製,並告訴你如何停止:按 Ctrl+D 或直接輸入 exit

當 Asciinema 處於活動狀態時,你在終端所做的一切都會被記錄下來。這包括輸入、輸出、錯誤、尷尬的停頓、錯誤或成功。如果在錄製時,在你的終端中查看它,它就會被剪斷。

當你演示完終端如何工作時,按 Ctrl+D 或輸入 exit 來停止記錄。

在這個例子中,產生的文件 mymovie.cast 是一個時間戳和動作的集合,它用作回放所使用的腳本(像電影腳本一樣)。

{"version": 2, "width": 139, "height": 36, "timestamp": 1641457358, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.05351, "o", "u001b]0;seth:~u0007"]
[0.05393, "o", "u001b[1;31m$ u001b[00m"]
[1.380059, "o", "e"]
[1.443823, "o", "c"]
[1.514674, "o", "h"]
[1.595238, "o", "o"]
[1.789562, "o", " "]
[2.09658, "o", """]
[2.19683, "o", "h"]
[2.403994, "o", "e"]
[2.466784, "o", "l"]
[2.711183, "o", "lo"]
[3.120852, "o", """]
[3.427886, "o", "rnhellorn"]
[...]

如果你犯了一個錯誤,你可以通過刪除重現錯誤的行來去除這個錯誤。如果你發現自己在錄製過程中做了很多命令行修改或冗長的停頓,你可以安裝並使用 asciinema-edit 工具,它可以通過你定義的時間戳或消除空閑時間來剪掉這些「鏡頭」片段。

播放 Asciinema 電影

你可以使用 play 子命令回放你的 Asciinema:

$ asciinema play mymovie.cast

這會接管你的終端會話,並使其成為最接近銀幕的形式(除了那次你通過 telnet 觀看 ASCII 格式的星球大戰)。這個基於文本的電影播放,向你的用戶展示了一個複雜的任務是如何完成的。當然,播放的 實際 命令並不真正執行。這不是一個正在運行的 shell 腳本,所以即使你在電影中創建了一個 hello.txt 文件,在播放後也不會有一個新的 hello.txt。這只是為了展示。

然而,它又不僅僅是一個展示。你可以暫停 Asciinema 電影,選擇你在屏幕上看到的文本,並將其粘貼到一個活動終端以運行該命令。Asciinema 是有用的文檔。它向用戶展示了如何完成一項任務,並允許他們進行複製和粘貼以確保準確性。

上傳你的 Asciinema 電影

目前還沒有像大片一樣的 Asciinema 電影,但你可以把你的電影上傳到 Asciinema.org,與全世界分享:

$ asciinema upload mymovie.cast

如果你習慣了 YouTube 上傳所花費的時間,你會對 Asciinema 電影的傳輸速度感到驚喜。一個 .cast 文件通常只有幾千位元組,最多幾兆位元組,所以上傳幾乎是瞬間完成的。你不需要註冊賬戶來分享你的電影,但所有無人認領的電影將在七天後會被刪除。為了保存你的傑作,你可以在 Asciinema 上開設一個賬戶,然後坐等電影學院的電話。

Asciinema 作為文檔

Asciinema 是演示最基本概念的好方法。因為它保留了從錄製中複製和粘貼代碼的能力,提供了按需暫停和播放的能力,並且完全準確地描繪了它的內容,它不僅僅是屏幕錄像,它要好得多。無論你是用它來向你的朋友炫耀你的終端技能,還是用它來教育同事和學生,Asciinema 都是一個無價的、社交的、可利用的工具。

via: https://opensource.com/article/22/1/record-terminal-session-asciinema

作者:Seth Kenlon 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國