這裡介紹 Showterm 這個可將 Linux 終端機操作錄製下來並分享在網路上的工具,讓你可以很容易把命令列的操作過程與別人分享。

如果若要錄製 Linux 桌面的操作過程,網路上你可以搜尋到非常多的工具,但是如果是想要記錄終端機(terminal)中命令列的操作,這樣的工具就比較少了。


當然你也可以使用一般錄製桌面的軟體,將終端機的動作直接拍下來製作成影片檔,只是這樣把只有包含文字資訊的動作製作成檔案大小較大影片,其實也不是個好辦法。

過去我們介紹過 Linux 中的 screen 指令可以把終端機的操作錄製下來,它的方式就不是錄製成影片,而是記錄終端機內部的文字資訊,所以檔案不會有過大的問題,但是在播放上又只能在一般 Linux 的終端機內播放,無法分享在網頁上。

以下我們介紹 Showterm 這個工具,它可以一次解決上述的問題。

Showterm

Showterm 是一個開放原始碼的免費工具,他可以讓你很輕鬆地把終端機中所有命令列的操作自動錄製下來,並上傳至它所提供的 showterm.io 網頁空間上,製作成可以播放的影片,最後產生一個分享用的連結給你,甚至可以讓你直接將影片內崁至自己的網頁中:

Showterm 除了自動幫你產生分享連結之外,他還有一個很棒的優點,就是它所產生的「影片」其實是本質上都是文字資料,也就是說這樣的檔案大小遠比傳統上的影片來要小很多,可以有效減低網路頻寬的使用,並增加整個網頁的執行效率,更可以讓瀏覽網頁者直接複製其中的文字資料,是一個很好的設計!

安裝 Showterm

Showterm 這個工具是用 Ruby 所開發的,在安裝時要先安裝 Ruby 的環境。

若在 Debian 系列的 Linux(Ubuntu、Linux Mint 等)中,可以使用 apt 安裝:

sudo apt-get install ruby rubygems

安裝好 Ruby 之後,再使用 gem 這個 Ruby 套件管理程式來安裝 showterm

sudo gem install showterm

如果是 Red Hat 系列的 Linux(RHEL、CentOS 與 Fedora 等),則使用 yum 安裝 Ruby:

sudo yum install ruby rubygems

接著再裝 showterm

sudo gem install showterm

如果你的系統無法正常安裝好 Ruby 的環境,你也可以利用下面這個方式,將 Showterm 安裝在自己個人的目錄中來使用:

curl showterm.io/showterm > ~/bin/showterm
chmod +x ~/bin/showterm

使用 Showterm

Showterm 的使用方式很簡單,直接執行 showterm 指令就可以了。

showterm

這樣它會開啟一個新的預設 shell(通常是 bash),並記錄在這個 shell 中所有的動作,而在你做完所有的動作之後,若要結束 Showterm 的錄製,則執行

exit

這樣就會離開 Showterm 所管理的 shell,然後將其所錄製的操作影片上傳至 showterm.io,最後會產生一個網址,輸出會類似這樣:

showterm recording finished, uploading…
http://showterm.io/8ab649402503bd21b3666

開啟這個網址就會播放剛剛所錄製的影片,而你也可以在網址上加入 hash-fragments 自定播放的模式:

  • http://showterm.io/8ab649402503bd21b3666#slow:正常速度。
  • http://showterm.io/8ab649402503bd21b3666#fast:以兩倍速度播放。
  • http://showterm.io/8ab649402503bd21b3666#stop:暫停。

如果想要將這個影片內崁至自己的網頁中,可以使用 iframe 的方式處理:

<iframe src="http://showterm.io/8ab649402503bd21b3666" width="640" height="480"></iframe>

免安裝的使用方式

如果你沒有安裝 Showterm,也可以使用下面這樣的方式直接在任何 Linux 下錄製終端機的操作:

bash <(curl record.showterm.io)

這樣會直接從 record.showterm.io 上下載 Showterm 的指令稿來執行,在不用安裝的狀況下進行錄製,這對於一些臨時性的工作記錄很有用。

技術細節

這個 Showterm 工具在開發時有用到一些其他的函式庫,如果你是網頁應用程式的開發人員,可以參考一下,如果你只是單純的使用者,這個部分就不重要了。

  • tty.js:在瀏覽器上以 node、express 與 socket.io 實作的終端機。
  • script:一個用來記錄終端機操作的 UNIX 指令。
  • ttyrec:一個改良過的 script