linux screen 命令 :離線運行程序

screen工具是linux下虛擬終端的一個經常使用工具。在 發現這個工具以前,筆者常常在遠程ssh中運行須要長時間處理數據的命令,好比遠程編譯安裝軟件,若是在編譯的過程當中網絡斷開,那這個編譯進程就會中止, 形成想不到的後果。自從有了screen命令,我不再用怕網線不穩和運行須要長時間處理數據的命令。html

screen在redhat,centos系統中的安裝命令是:yum install screenlinux

 

screen案例shell

   新建一個lnmp會話:screen -S lnmp(lnmp爲會話名,可本身定義)windows

   離開會話並讓程序斷續運行:ctrl a d (按住ctrl不放,分別按 a 和 d)centos

   恢復後臺運行的會話:screen -r lnmp(lnmp爲本身定義的會話名)網絡

   顯示全部screen建立的會話:screen -lssession

   在會話裏執行exit命令會話是結束運行並退到shell中ssh

 

參  數:工具

   -A  將全部的視窗都調整爲目前終端機的大小。
   -d <做業名稱>  將指定的screen做業離線。即detached
   -h <行數>  指定視窗的緩沖區行數。
   -m  即便目前已在做業中的screen做業,仍強制創建新的screen做業。
   -r <做業名稱>  恢復離線的screen做業。
   -R  先試圖恢復離線的做業。若找不到離線的做業,即創建新的screen做業。
   -s  指定創建新視窗時,所要執行的shell。
   -S <做業名稱>  指定screen做業的名稱。
   -v  顯示版本信息。
   -x  恢復以前離線的screen做業。
   -ls或–list  顯示目前全部的screen做業。
   -wipe  檢查目前全部的screen做業,並刪除已經無法使用的screen做業。.net

 

 

 

1,開啓一個screen並進入:

screen -S test1        #這裏用-S表示給screen起名字,之後切換的時候比較方便。這時就進去了screen test1了。裏面能夠跑一些程序。

2,退出該screen:

Ctrl-a d                       #這裏的ctrl-a表示同時按ctrl鍵和a鍵,而後再單獨按d鍵。這時退到跟終端。

3,在根下查看開啓的全部screen:

screen -ls                  # 好比會有25764.test1     (Detached)等。

4,在根下進入某個screen:

screen -r test1          #這時又進入到指定的screen session中,或者screen -r 25764。

5,關閉該session:

exit                              #在該screen中退出,退到根下。

 

6,強制鏈接,踢掉原來的

screen -D -r 20791

screen -x -r 20791(共享原來的)

7,當前窗口假死,強制關閉當前窗口,跳到下一個

Ctrl-a  K

8,上翻

Ctrl-a  Ctrl-[  

語  法:

screen [-AmRvx -ls -wipe][-d <做業名稱>][-h <行數>][-r <做業名稱>][-s ][-S <做業名稱>]

補充說明:

screen爲多重視窗管理程序。此處所謂的視窗,是指一個全屏幕的文字模式畫面。一般只有在使用telnet登入主機或是使用老式的終端機時,纔有可能用到screen程序。

 

經常使用screen參數:

在每一個screen session 下,全部命令都以 ctrl+a(C-a) 開始。

C-a ? -> Help,顯示簡單說明
C-a c -> Create,開啓新的 window
C-a n -> Next,切換到下個 window 
C-a p -> Previous,前一個 window 
C-a 0..9-> 切換到第 0..9 個window
Ctrl+a [Space] -> 由視窗0循序換到視窗9
C-a C-a -> 在兩個最近使用的 window 間切換 
C-a x -> 鎖住當前的 window,需用用戶密碼解鎖
C-a d -> detach,暫時離開當前session,將目前的 screen session (可能含有多個 windows) 丟到後臺執行,並會回到還沒進 screen 時的狀態,此時在 screen session 裏    每一個 window 內運行的 process (不管是前臺/後臺)都在繼續執行,即便 logout 也不影響。 
C-a z -> 把當前session放到後臺執行,用 shell 的 fg 命令則可回去。
C-a w -> Windows,列出已開啓的 windows 有那些 
C-a t -> Time,顯示當前時間,和系統的 load 
C-a K -> kill window,強行關閉當前的 window
C-a [ -> 進入 copy mode,在 copy mode 下能夠回滾、搜索、複製就像用使用 vi 同樣
    C-b Backward,PageUp 
    C-f Forward,PageDown 
    H(大寫) High,將光標移至左上角 
    L Low,將光標移至左下角 
    0 移到行首 
    $ 行末 
    w forward one word,以字爲單位往前移 
    b backward one word,以字爲單位日後移 
    Space 第一次按爲標記區起點,第二次按爲終點 
    Esc 結束 copy mode 

C-a ] -> Paste,把剛剛在 copy mode 選定的內容貼上

相關文章
相關標籤/搜索