screen
screen 常用指令
啟用 screen
#> screen
or
#> screen -S <session-name>
列出所有 session
#> screen -ls
取回 (resume) 某個 session
#> screen -r <session-id>
無法取回 session 時,先 deattach 在 resume
#> screen -D <session-id>
#> screen -r <session-id>
強制終止 session
#> screen -X -S <session-id> kill
結束 screen 的 session
#> exit
進入複製模式,可複製視窗上指定的文字,操作方式:
使用方向鍵任意移動游標,按一次 space 開始標記游標的文字,再按一次 space 結束標記文字並離開複製模式。
Ctrl-a + [
要貼上剛複製的內容
Ctrl-a + ]
screen 用來連接 RS232
screen /dev/ttyACM0 115200
TIP: 如果出現 screen is terminating,須改用 sudo。
環境配置檔
~/.screenrc:
# Start message
startup_message off
# Disable vbell
vbell off
# Set hardstatus always on
hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %M %d %0c:%s "
# Set default encoding using utf8
defutf8 on
# Set the number of scrollback lines
#defscrollback 10000
# Fix termcapinfo for xterm to allow column resizing
# xterm emulation is used by PuTTY
# Uncomment the line below if running on CentOS 6.x/7.x
#termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
# Fix termcapinfo for cleaning the terminal after detach
# Uncomment the line below if running on AIX 7.x
#termcapinfo xterm*|rxvt* te=\E[?1049l:ti=\E[?1049h:
TIPs:
start_message 關閉開啟後的提示訊息
vbell 關閉可以避免按 tab 出現閃畫面
hardstatus 在畫面下方固定顯示視窗編號,非常實用的功能
defscrollback 回捲內容的行數
進入 screen 模式後指令
基本操作
離開 screen 但不中止 session (deattach)
Ctrl-a + d
離開 screen 並中止 session
Ctrl-a + k
複製模式
進入複製模式,可複製視窗上指定的文字,操作方式:
使用方向鍵任意移動游標,按一次 space 開始標記游標的文字,再按一次 space 結束標記文字並離開複製模式。
Ctrl-a + [
貼上剛複製的內容
Ctrl-a + ]
多視窗操作
水平切割 <Ctrl-a> + |
垂直切割 <Ctrl-a> + S
切換視窗 <Ctrl-a> + tab
目前視窗最大化 <Ctrl-a> + Q
移除目前視窗 <Ctrl-a> + X ;這不會終止 session
多個終端機操作
新增一個 screen 終端機
<Ctrl-a> + c
或者是在目前的 screen 終端機再執行一次 screen
NOTE:如果已經 deattach,再執行 screen 時,會開啟另一個不同的 screen 終端機
- 每新增一個視窗,新的編號會從最小且沒有在使用的號碼開始,例如:
- 現有 #0, #1, #2,新增後的編號為 #3
- 現有 #0, #2, #3,新增後的編號為 #1
- 不管新增多少個視窗,只要沒有做 deattach,所有開啟的視窗都屬於同一個 screen 終端機
檢視目前已開啟的所有視窗
<Ctrl-a> + w
- 視窗編號從 0 開始依序
- 顯示 * 符號為目前使用的視窗編號
移動至前一個或後一個終端機
<Ctrl-a> + p 前一個 (視窗編號減一)
<Ctrl-a> + n 後一個 (視窗編號加一)
<Ctrl-a> + 視窗編號
Q & A
用 Putty 連線,每次 attach 時,視窗都會自動縮回預設大小
將設定檔以下這行移除註解
termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
用 tab 時,畫面都會閃一下,該如何解決
在 $HOME 目錄內新增 .screenrc
vbell off
如何很快的確認,目前是否在 screen 終端機內
Ctrl + a + a
- 如果已經 deattach 終端機,畫面不會有任何變化。
- 如果是在 screen 終端機內,有多個開啟視窗時,會切換到前一個視窗;只開啟一個視窗時,畫面會出現 'No other window'。