Screen#
screen 是自由軟體基金會的GNU計劃的一部份
Introduction#
Screen 是一個全螢幕視窗管理器,可在多個進程(通常是互動式 shell)之間多工處理實體終端機。每個虛擬終端提供 DEC VT100 終端的功能,此外,還提供 ANSI X3.64 (ISO 6429) 和 ISO 2022 標準中的多種控制功能(例如,插入/刪除行和支援多個字元集)。每個虛擬終端都有一個滾動歷史記錄緩衝區,以及一個複製和粘貼機制,允許用戶在窗口之間移動文本區域。當調用 screen 時,它會創建一個包含 shell(或指定命令)的窗口,然後讓開您,以便您可以像往常一樣使用該程序。然後,您可以隨時創建包含其他程序(包括更多 shell)的新(全屏)窗口、終止當前窗口、查看活動窗口列表、打開和關閉輸出日誌記錄、在窗口之間複製文本、查看滾動歷史記錄、在窗口之間切換等。所有視窗都完全獨立地運行其程式。當程式的視窗目前不可見時,甚至整個螢幕會話已與使用者終端分離時,程式仍會繼續執行。
Install#
$ sudo apt-get install screenOperate#
Screen 指令說明#
Use: screen [-opts] [cmd [args]]
or: screen -r [host.tty]
| 參數 | 說明 |
|---|---|
-a | 強制將所有功能(capabilities)加入每個視窗的 termcap。 |
-A -[r|R] | 使所有視窗自動調整為新的螢幕寬度與高度。 |
-c file | 使用指定的設定檔,而非預設的 .screenrc。 |
-d (-r) | 分離(detach)其他地方執行的 screen,並在此重新連接。 |
-dmS name | 以守護程序模式啟動:建立一個分離的 screen 工作階段。 |
-D (-r) | 分離並登出遠端 session(並在此重新連接)。 |
-D -RR | 執行任何必要操作以取得一個 screen session(自動處理重連或建立)。 |
-e xy | 更改指令前綴鍵組合。 |
-f | 開啟資料流控制(flow control);-fn 關閉;-fa 自動。 |
-h lines | 設定回捲歷史緩衝區大小(以行數為單位)。 |
-i | 啟用輸出中斷(在開啟 flow control 時更早中斷輸出)。 |
-list 或 -ls | 僅列出現有的 Screen Socket 目錄內容,不執行其他操作。 |
-L | 開啟輸出日誌(logging)。 |
-m | 忽略 $STY 環境變數,強制建立新的 screen session。 |
-O | 選擇最佳化的輸出方式,而非完全模擬 vt100。 |
-p window | 預先選擇指定名稱的視窗(若存在)。 |
-q | 安靜模式啟動;若失敗則以非零狀態碼結束。 |
-r | 重新連接到一個已分離(detached)的 screen 工作階段。 |
-R | 若可重新連接則重連,否則建立新的 session。 |
-s shell | 指定要執行的 shell(預設為 $SHELL)。 |
-S sockname | 將此 session 命名為 <pid>.sockname(預設為 <pid>.<tty>.<host>)。 |
-t title | 設定視窗標題。 |
-T term | 指定 $TERM 環境變數的值(預設為 "screen")。 |
-U | 指示 screen 使用 UTF-8 編碼。 |
-v | 顯示版本資訊(例如:Screen version 4.00.03 (FAU) 23-Oct-06)。 |
-wipe | 清理 SockDir 中的無效項目,不執行其他操作。 |
-x | 連接至尚未分離的 screen(多重顯示模式)。 |
-X | 在指定的 session 中執行 <cmd> 作為 screen 命令。 |
GNU Screen 快捷鍵對照表#
| 快捷鍵 | 說明 (英文指令) |
|---|---|
^B b | 傳送 break 訊號 (break) |
C | 清除螢幕 (clear) |
: | 進入命令模式 (colon) |
^[ [ | 進入複製模式 (copy) |
^D d | 分離目前的 session (detach) |
^V | 輸入二合字元 (digraph) |
* | 顯示所有的 display (displays) |
. | 輸出 termcap 設定 (dumptermcap) |
F | 調整視窗大小以符合終端 (fit) |
^F f | 開關軟體 flow control (flow) |
^I | 在分割視窗間切換焦點 (focus) |
h | 將螢幕內容輸出為檔案 (hardcopy) |
? | 顯示說明畫面 (help) |
{ } | 檢視或捲動歷史 (history) |
i | 顯示 session 資訊 (info) |
^K k | 關閉目前的視窗 (kill) |
^M m | 顯示上一則訊息 (lastmsg) |
, | 顯示授權資訊 (license) |
^X x | 鎖定螢幕 (lockscreen) |
H | 開始或停止記錄輸出 (log) |
a | 設定或使用 meta-key (meta) |
M | 切換視窗活動監控 (monitor) |
^@ ^N sp n | 切換至下一個視窗 (next) |
N | 顯示或設定視窗號碼 (number) |
Q | 關閉其他分割,僅保留目前 (only) |
^A | 在最近的視窗間切換 (other) |
B | 傳送 power-break (pow_break) |
D | 強制分離 session (pow_detach) |
^H ^P p ^? | 切換至上一個視窗 (prev) |
^\ | 關閉所有視窗並離開 screen (quit) |
< | 將剪貼簿內容讀入 (readbuf) |
^L l | 重新繪製螢幕 (redisplay) |
X | 移除目前的區塊或視窗 (remove) |
= | 清除剪貼簿 buffer (removebuf) |
Z | 重設終端 (reset) |
^C c | 建立新視窗 (screen) |
' | 選擇視窗(可搭配編號) (select) |
_ | 切換靜音監控 (silence) |
S | 分割視窗 (split) |
^Z z | 暫停 screen(回到 shell) (suspend) |
^T t | 顯示目前時間 (time) |
A | 設定視窗標題 (title) |
v | 顯示版本資訊 (version) |
^G | 觸發視覺響鈴 (vbell) |
W | 顯示視窗寬度 (width) |
^W w | 顯示所有視窗列表 (windows) |
^R r | 開關自動換行 (wrap) |
> | 將剪貼簿內容寫到檔案 (writebuf) |
^S s | 傳送 XOFF (xoff) |
^Q q | 傳送 XON (xon) |
快速視窗選擇鍵#
| 快捷鍵 | 說明 (英文指令) |
|---|---|
^] | 貼上剪貼簿內容 (paste) |
] | 貼上剪貼簿內容 (paste) |
" | 顯示視窗列表(垂直) (windowlist) |
- | 切換到上一個視窗 (select -) |
0 ~ 9 | 直接選擇指定編號的視窗 (select 0..9) |
Colon 指令#
| 參數 | 說明 |
|---|---|
escpae ^Ee | 更改指令前綴鍵組合。 |
unset TMOUT | 防止因時間到跳出視窗 |
Reference#
Official docs: