Posts Tagged ‘ Terminal

實用的 screen 終端機管理程式

程式說明

screen 是一個很方便的終端機管理程式,可以讓你在同一個終端機開啟多個終端機來操作。加強多工的處理,即使你要離開電腦,也可以將終端機執行脫離,下次登入時再取回來操作。

首先啟動 Screen 程式,開始一個終端機 Session:

$ screen

某些終端機視窗會在標題列顯示目前在操作的終端機編號,如果沒有顯示,你也可以輸入:

$ tty

來了解你目前正在哪個終端機中。

以快速鍵操作

切換時的快速鍵一開始都是 Ctrl-A
  • 新增終端機:
    Ctrl-A -> Ctrl-C
  • 切換到上一個編號的終端機:
    Ctrl-A -> Ctrl-P
  • 切換到下一個編號的終端機:
    Ctrl-A -> Ctrl-N
  • 切換到指定編號的終端機:
    Ctrl-A -> 數字
  • 切換到下一個編號的終端機:
    Ctrl-A -> 空白鍵
  • 在兩個終端機之間互相切換:
    Ctrl-A -> Ctrl-A
  • 鎖定終端機:
    Ctrl-A -> Ctrl-X
  • 顯示終端機列表,可供你選取:
    Ctrl-A -> Shift-"
  • 新視窗的標題列顯示所有的終端機編號 (其中有加上 * 表示是目前使用的終端機) :
    Ctrl-A -> Ctrl-W
  • 水平分割視窗 (可以持續分割) :
    Ctrl-A -> Shift-S
  • 垂直分割視窗 (可以持續分割,只有特定版本才支援,請參考後方的說明) :
    Ctrl-A -> Shift-|
  • 在分割的視窗做切換:
    Ctrl-A -> Tab
  • 關閉分割的視窗:
    Ctrl-A -> Shift-Q
  • 將所有終端機脫離(Detach),並回到執行 screen 前的狀態:
    Ctrl-A -> Ctrl-D
    在這種狀態下,用戶可以不須理會這些終端機。不管用戶離線或是要從別的地方登入,只要下次登入時執行:
    screen -r
    將所有終端機叫回來繼續操作。
  • 重新命名終端機:
    Ctrl-A -> Shift-A
  • 顯示日期、主機名稱及負載:
    Ctrl-A -> Ctrl-T
  • 將畫面暫停 (程式仍繼續執行):
    Ctrl-A -> Ctrl-S
  • 將暫停的畫面恢復:
    Ctrl-A -> Ctrl-Q

screen 的相關指令

  • 啟動 Screen 程式,開始一個終端機 Session:
    $ screen
    或指定名稱
    $ screen -S SessionName
  • 查看同一帳號共開啟過多少個終端機 Session 及其 Id:
    $ screen -ls
  • 取回被脫離執行的終端機:
    $ screen -r

    $ screen -r SessionId
  • 將其它的終端機 Session 強制脫離:
    $ screen -d

    $ screen -d SessionId這功能適用於原本操作的電腦當機或斷線了,讓你可以在下次取回還在 Server 中執行的 Session。
  • 同步操作終端機 Session (兩邊必須登入相同的帳號):
    $ screen -x

    $ screen -x SessionId
  • 移除終端機 Session:
    $ screen -wipe SessionId

模擬頁籤顯示

如果要在畫面底部秀出現在在哪個編號的終端機,請編輯 /etc/screenrc 或 ~/.screenrc,加入:
hardstatus alwayslastline "%-w%{= BW}%50>%n %t%{-}%+w%<"

同步作業說明

假設我在我目前所操作的終端機 Session 要分享給另一端的登入者查看,並且可以操作 (或者是我不想將遠端登入的用戶脫離 Session),則我要先以我的帳號登入主機並且執行 "screen -S 特定名稱",然後另一端的登入者:
  1. 以相同的帳號登入主機
  2. 以 "screen -ls" 查看要取回的終端機 Session
  3. 以 "screen -x 特定名稱" 或 "screen -x SessionId" 進入相同的終端機 Session

垂直分割視窗

因為 screen 只能水平分割視窗,不能充分利用寬螢幕的特性實在有點可惜! 這裡有新版可垂直分割功能的 screen:

垂直分割 screen 視窗

請自行編譯安裝。

參考網頁

return top