screen其實就是linux虛擬終端,你可以用它創建很多虛擬終端,每個終端可以創建1~10個窗口,每個窗口相當於一個linux shell窗口,可以執行的操作和正常shell完全一樣。
【終端操作】 (需要在物理shell中操作)
screen:創建一個虛擬終端並且登錄之
screen -ls:列出當前所有虛擬終端
screen [-d] -r sessionid:進入指定的虛擬終端
【終端中的窗口操作】(掛載某個終端)
Ctrl-a c 新建 bash screen 終端
Ctrl-a " 列出
Ctrl-a A 重命名
Ctrl-a n 在當前窗口中切換到下一個 screen 終端
Ctrl-a p 在當前窗口中切換到上一個 screen 終端
Ctrl-a 空格 窗口切換
Ctrl+a w :窗口列表
Ctrl+a 0-9 :在第0個窗口和第9個窗口之間切換
Ctrl+a K(大寫) :關閉當前窗口,並且切換到下一個窗口(當退出最后一個窗口時,該終端自動終止,並且退回到原始shell狀態)
exit :關閉當前窗口,並且切換到下一個窗口(當退出最后一個窗口時,該終端自動終止,並且退回到原始shell狀態)
Ctrl-a d 斷開所有 screen 終端,返回 screen 執行前狀態,但 screen 內所有終端的任務都在執行
screen -ls 列出當前用戶的所有 screen 實例,包括聯接和斷開的
screen -R <pid> 重新聯接到已斷開的 screen 實例,如果有多個已斷開的 screen 實例,則用 <pid> 區分
Ctrl-a S 新建水平分割窗口
Ctrl-a Tab 切換窗口
Ctrl-a X 關閉當前窗口
Ctrl-a + 擴大當前窗口,默認增加3行
Ctrl-a - 縮小當前窗口,默認減小3行
Ctrl-a :screen <command> 新建 screen 終端,並運行命令<command>
Ctrl-a :resize <height> 改變當前窗口高度為<height>
Ctrl-a :quit 退出 screen,將關閉所有 screen 終端,結束其中所有任務
Ctrl-a <Esc> 進入選擇模式
<PageUp> 或 Ctrl-u 光標上移一頁
<PageDown> 或 Ctrl-d 光標下移一頁
<Left> 或 h 光標左移一格
<Down> 或 j 光標下移一行
<Up> 或 k 光標上移一行
<Right> 或 l 光標右移一格
<Space> 選擇開始,選擇結束
<Esc> 退出選擇模式
Ctrl-a ] 粘貼選擇的內容
【友情提醒】
.screenrc,僅供參考。
#
# ~/.screenrc
#
# 啟動時不顯示歡迎屏幕
startup_message off
# 定義screen的功能鍵為Ctrl-Z。向終端輸入Ctrl-Z時應按 Ctrl-Z z。
escape ^Zz
# 屏幕緩沖區 1024 行。
defscrollback 1024
# 在最下一行顯示窗口列表和時鍾
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rY}%n %t%{-}%+w %=%{..G} %H(%l) %{..Y} %Y/%m/%d %c:%s "
# 關閉錯誤提示
vbell off
# 按 Ctrl-Z w 或 Ctrl-Z Ctrl-W 顯示窗口列表
bind w windowlist -b
常用快捷鍵
注:這些快捷鍵都需要在按完 escape 鍵之后使用。默認的escape鍵是 Ctrl-A,上面貼出的 .screenrc 中將其改成了 Ctrl-Z。例如 d,實際操作時應當按 Ctrl-Z d。
| 快捷鍵 | 功能 |
| d | 中斷當前會話,下次可以用 screen -r 命令恢復 |
| c | 開新窗口 |
| 0-9數字 | 在窗口0-窗口9之間迅速切換 |
| n | 下一個窗口 |
| p | 上一個窗口 |
| S | 分割屏幕 |
| TAB | 在分割的屏幕之間切換 |
| X | 關閉分割出的屏幕 |
| [ | 進入復制模式,用hjkl移動光標,空格選中開始點,再次按空格選擇結束點,進行復制 |
| ] | 粘貼 |
| ? | 幫助 |
| : | 進入screen的命令行 |
另外要提到的幾個常用技巧:
- 重復 escape 鍵可以在當前窗口與上一個窗口之間迅速切換。例如從窗口1按^Z3切換到窗口3,之后可以按^Z^Z在窗口1和3之間切換。
- 窗口分割的用法:首先按^ZS(S要大寫)進行分割,然后用^Z<TAB>切換到分割出的新屏幕,再用^Z<數字>在新屏幕內切換窗口。結束分割可以用^ZX。
- 翻頁:用了screen之后就不能用平常的 Shift-PageUp 和 Shift-PageDown 來翻頁。可以按 ^Z[ 進入復制模式,即可利用與 vi 相同的快捷鍵來翻頁查看歷史。最后按Esc取消復制模式。
關於 escape 鍵的選擇:
默認的Ctrl-A與vi的增1功能沖突。如果你不幸習慣了Ctrl-A,那么當你在沒有screen的環境下使用vim時,你會在不經意之間按下Ctrl-A而改變附近的數字。因此最好改成別的鍵。
常用的screen快捷鍵都在左手,因此escape應當放在鍵盤的左面三列。Ctrl-Q和Ctrl-S被終端使用無法綁定,Ctrl-` screen不支持,Ctrl-W與vim的切換窗口命令沖突,Ctrl-D與vim的翻頁沖突, Ctrl-X與vim的減1功能沖突,Ctrl-E與vim的滾屏沖突,Ctrl-C為很常用的中止程序。因此只能用Ctrl-Z了。Ctrl-Z用於暫 停程序,不常用,可以將其設置為screen的escape鍵。需要暫停程序時按 Ctrl-Z z 即可。
