About me

Monday 27 March 2017

[Linux][Bash] 如何分享別人自己的Terminal畫面

  

如何分享別人自己的Terminal畫面
有時後在使用Terminal上有一些狀況,還是有一些問題,所以想要跟別人討論,通常都是擷取畫面或是錄製操作流程後在打電話或是使用像Line之類的軟體來討論。這種方式通常會有一些步驟會流失,或者是你描述的另一個人會無法想像。

所以最好的方式就是你可以在那個人面前操作terminal,然後直接討論,在有VNC還是有遠端桌面的狀況之下可以這樣,但是如果是terminal的話,似乎比較難,所以這篇文教你怎麼可以跟別人share你的terminal畫面。

Requirement

只需要底下兩個命令:
- 命令 1:『mkfifo』
- 命令 2:『script』


TTY-1
在TTY-1只要簡單的兩個指令如下(下圖左上角):

mkfifo pipe; script -f pipe

上面這兩個指令會建立一條管道叫做『pipe』,然後將terminal的所有output都給傳送到這條管線裡。

TTY-2
然後在TTY-2打開這個通道(下圖右上角):

cat pipe

然後在將『pipe』的內容給印出來,你就可以看到兩邊的terminals同步了,這樣是不是直接邊操作跟遠端的人討論會比較直觀一點呢?
  
  
script and scriptreplay 上面介紹過得是使用『script』和『mkfifo』來直接廣播給你的觀眾看,另一種方式則是使用錄製的方式,一般來說當然可以使用螢幕錄製軟體,但是容量會很大而已,如果只是想要在terminal上有順序性的顯示畫面的話,其實可以用『script』和『scriptreplay』的組合來呈現。 錄製的語法如下: $ script -t 2> timing.log -a output.session ... exit 上面這個指令,輸出有兩個檔案,『timing.log』用來儲存時序資訊,而另一個『output.session』則是用來儲存輸入的命令。option 『-t』將時序給導入standard error,然後『2>』在將standard error給導向『timing.log』裡。 所以有這兩個檔案,我們就可以借助另外一個命令『scriptreplay』將剛剛的所有動作給回播了,語法如下: $scriptreplay timing.log output.session Example: 底下有兩台虛擬機,分別是『Ubuntu 16.04』和『CentOS 7.2』,我先會在Ubuntu上面錄製操作命令uname和lsb:
然後在將『timing.log』和『output.session』丟到另一台centos上面回播:

No comments:

Post a Comment