在多終端機(pts/0、pts/1...)同時操作時,若能同步畫面與輸入,可大幅提升教學示範、遠端協作、多機器並行操作效率。利用 expect 套件內建的 kibitz 工具即可輕鬆實現。
# CentOS/RHEL
yum install tcl expect
# Ubuntu/Debian
apt-get install expect
w
# 輸出範例:
# USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
# root pts/0 :0 17:25 0.00s 3.04s 0.00s w
# root pts/1 :0 17:33 10:04 0.11s 0.11s bash
# root pts/3 :0 17:39 46.00s 0.02s 0.02s /bin/bash
假設要同步 pts/0 (發起端) 與 pts/1 (接收端)。
kibitz -tty pts/1 root
# 輸出:asking root to type: kibitz -4010
Message from root@localhost on pts/0 at 18:02 ...
Can we talk? Run: kibitz -4010
EOF
# 此處按 Enter,輸入:
kibitz -4010
Escape sequence is ^]
# 此時 pts/0 與 pts/1 畫面、輸入完全同步,任一端操作另一端即時顯示
w
# 輸出中 WHAT 欄顯示 expect -- /usr/... 表示已進入同步模式
# 未同步的 pts/3 仍顯示 bash
kibitz 是基於 expect 寫成的雙向管道轉發工具。# 發起端指定 port
kibitz -port 5000 -tty pts/1 root
# 接收端對應連接
kibitz -port 5000
#!/usr/bin/expect
spawn kibitz -tty pts/1 root
expect "type: kibitz -"
send "\r"
interact
kibitz 是期待已久的「終端機鏡像」輕量解決方案,無需安裝複雜軟體,內建於 expect 套件中,隨時可用,極適合臨時協作與教學場景。