- 在一個terminal軟體中開啟許多子console視窗
- 可以dettach出來、之後又reattach回去
- 有scrollback的功能
- console視窗間複製貼上
- 切割console視窗
安裝
在Ubuntu上直接 $ sudo apt-get install screen就可以了Command-line指令
$ screen- 直接開啟新的session
- 列出目前有哪些已經存在的session可以attach進去
- reattach回session。如果目前沒有session存在,直接就地開啟一個新的session。如果有好幾個不同的session,使用screen -R
- 以utf-8 mode執行
- 強制將某個正在被attach中的session給detach掉
- 將廢棄的screen清除
Key-Binding指令
screen預設是以Ctrl-a(同時按住鍵盤Ctrl跟a兩個按鈕,如果您能理解控制字元,這就是等同於"^A")來啟動console視窗管理,接著同時鬆開Ctrl與a鍵,按下另一按鍵或下達指令來進行操作。Ctrl+a c
- 開啟一個新的console視窗
- 連續兩次,回到上一個console視窗
- 切換到1號至9號的某個console視窗
- 列出目前所有視窗,可用上下方向鍵選擇要進入的console視窗,按下enter進入
- 刪除目前的console視窗
- 將目前session給detach掉
- 進入copy mode,可用上下左右操控或進行scrollback。/或?用來搜尋(類似vim)。空白鍵可進行選取,決定範圍後按下第二次空白鍵就會複製入buffer中。之後使用Ctrl+]就可以將剛剛screen放入buffer中的內容貼上
- 設定session的名稱,之後在comman-line模式執行screen -list方便檢視
- [Ctrl+a] 輸入控制字元Ctrl+a(因為Ctrl+)
- 將目前所在區域,水平分割成另外兩個區域
- 關閉分割區域
- 切換分割區域
進階議題
- 在screen的vim中輸入控制字元^A,需要在vim中進入insert模式,然後按下Ctrl+A,再按下a,就可以了
- 因為screen畫面有些單調,有時無法辨別目前console視窗的狀態與session的狀態。如果需要像bash一樣有客製化的畫面,可以透過設定編輯~/.screenrc這個檔案來得到自己想要的效果。只要上Google搜尋screenrc就有許多範本可以下載,有空我再來寫篇screenrc教學。
- 垂直分割screen區域(需要拿git版screen重make自己build)
- $ git clone git://git.savannah.gnu.org/screen.git
- $ cd screen/src
- $ ./autogen.sh
- $ ./configure
- $ make
- $ make install
- 使用Ctrl+a | 來垂直分割區域
- 參考 http://savannah.gnu.org/projects/screen/