screen命令


原文鏈接

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的命令行

另外要提到的幾個常用技巧

  1. 重復 escape 鍵可以在當前窗口與上一個窗口之間迅速切換。例如從窗口1按^Z3切換到窗口3,之后可以按^Z^Z在窗口1和3之間切換。
  2. 窗口分割的用法:首先按^ZS(S要大寫)進行分割,然后用^Z<TAB>切換到分割出的新屏幕,再用^Z<數字>在新屏幕內切換窗口。結束分割可以用^ZX。
  3. 翻頁:用了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 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM