screen 指令應用

    版本為 19:29, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    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 + ]  
    

    環境配置檔

    ~/.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
    
    # 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 
    

    TIPs:

    start_message 關閉開啟後的提示訊息

    vbell               關閉可以避免按 tab 出現閃畫面

    hardstatus       在畫面下方固定顯示視窗編號,非常實用的功能

    進入 screen 模式後指令

    基本操作

    離開 screen 但不中止 session (deattach)

    Ctrl + a + d

    複製模式

    進入複製模式,可複製視窗上指定的文字,操作方式:
    使用方向鍵任意移動游標,按一次 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'。
    Powered by MindTouch Core