Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 多終端機同步操作:kibitz + expect 實現跨 pts 即時鏡像

編輯:關於 Linux

在多終端機(pts/0、pts/1...)同時操作時,若能同步畫面與輸入,可大幅提升教學示範、遠端協作、多機器並行操作效率。利用 expect 套件內建的 kibitz 工具即可輕鬆實現。

終端機同步示意圖

安裝必要套件

# CentOS/RHEL
yum install tcl expect

# Ubuntu/Debian
apt-get install expect

同步建立流程

1. 確認目前終端機編號

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 (接收端)。

2. 發起端 (pts/0) 發起同步請求

kibitz -tty pts/1 root
# 輸出:asking root to type: kibitz -4010

3. 接收端 (pts/1) 收到訊息,輸入指令確認


Message from root@localhost on pts/0 at 18:02 ...
Can we talk? Run: kibitz -4010
EOF
# 此處按 Enter,輸入:
kibitz -4010

4. 同步建立成功


Escape sequence is ^]
# 此時 pts/0 與 pts/1 畫面、輸入完全同步,任一端操作另一端即時顯示

5. 驗證同步狀態

w
# 輸出中 WHAT 欄顯示 expect -- /usr/... 表示已進入同步模式
# 未同步的 pts/3 仍顯示 bash

原理與架構

  • kibitz 是基於 expect 寫成的雙向管道轉發工具。
  • 發起端建立 TCP 連接埠 (範例 4010),接收端連接後雙方標準輸入輸出互相轉發。
  • 支援多對多串聯:A↔B、B↔C 可形成鏈式同步。

進階用法

指定連接埠避免衝突

# 發起端指定 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

適用場景

  • 教學示範:講師操作同步投影至學生終端。
  • 結對編程:兩開發者共享同一終端會話。
  • 故障排除:資深工程師即時觀察初級人員操作並指導。
  • 多伺服器並行:同步輸入指令至多台機器(搭配 ClusterSSH 更佳)。

注意事項

  • 需雙方均為同一使用者 (root) 或具備對方終端寫入權限。
  • 同步期間 Ctrl+] 為跳脫鍵,可中斷同步返回獨立操作。
  • 網路延遲環境下會有輕微輸入延遲,局域網幾乎無感。
  • 不支援圖形介面 (X11) 同步,僅限文字終端。

kibitz 是期待已久的「終端機鏡像」輕量解決方案,無需安裝複雜軟體,內建於 expect 套件中,隨時可用,極適合臨時協作與教學場景。

Copyright © Windows教程網 All Rights Reserved