- Vixual - http://www.vixual.net/blog -

實用的 screen 終端機管理程式

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

首先執行 Screen 程式,開始一個 Session:

$ screen

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

$ tty

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

以快速鍵操作

切換時的快速鍵一開始都是 Ctrl + A

screen 的相關指令

模擬頁籤顯示

如果要在畫面底部秀出現在在哪個編號的 Session,請編輯 /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 視窗

請自行編譯安裝。

命令別名

因為 screen 很實用,於是我在 bashrc 建立兩個 screen 指令的別名:

alias scr='screen -d -r Normal || screen -S Normal'
alias scl='screen -ls'

我只要登入終端機就先打一次 scr,以取回上一次沒關閉的 Session。如果沒有上一次沒關閉的 Session,則會建立一個新的 Session。

scl 則可以列出目前有幾個屬於我的 session。

參考網頁