linux screen 命令詳解
linux screen 命令詳解
功能說明:
使用telnet或SSH遠(yuǎn)程登錄linux時(shí),如果連接非正常中斷(遠(yuǎn)程機(jī)器關(guān)閉),重新連接時(shí),系統(tǒng)將開一個(gè)新的session,無法恢復(fù)原來的session.screen命令可以解決這個(gè)問題。Screen工具是一個(gè)終端多路轉(zhuǎn)接器,在本質(zhì)上,這意味著你能夠使用一個(gè)單一的終端窗口運(yùn)行多終端的應(yīng)用。
我的用法:
1,開啟一個(gè)screen并進(jìn)入:
screen -S test1 #這里用-S表示給screen起名字,以后切換的時(shí)候比較方便。這時(shí)就進(jìn)去了screen test1了。里面可以跑一些程序。
2,退出該screen:
Ctrl-a d #這里的ctrl-a表示同時(shí)按ctrl鍵和a鍵,然后再單獨(dú)按d鍵。這時(shí)退到跟終端。
3,在根下查看開啟的所有screen:
screen -ls # 比如會(huì)有25764.test1 (Detached)等。
4,在根下進(jìn)入某個(gè)screen:
screen -r test1 #這時(shí)又進(jìn)入到指定的screen session中,或者screen -r 25764。
5,關(guān)閉該session:
exit #在該screen中退出,退到根下。
6,強(qiáng)制連接,踢掉原來的
screen -D -r 20791
screen -x -r 20791(共享原來的)
7,當(dāng)前窗口假死,強(qiáng)制關(guān)閉當(dāng)前窗口,跳到下一個(gè)
Ctrl-a K
8,上翻
Ctrl-a Ctrl-[
語(yǔ) 法:
screen [-AmRvx -ls -wipe][-d <作業(yè)名稱>][-h <行數(shù)>][-r <作業(yè)名稱>][-s ][-S <作業(yè)名稱>]
補(bǔ)充說明:
screen為多重視窗管理程序。此處所謂的視窗,是指一個(gè)全屏幕的文字模式畫面。通常只有在使用telnet登入主機(jī)或是使用老式的終端機(jī)時(shí),才有可能用到screen程序。
參 數(shù):
-A 將所有的視窗都調(diào)整為目前終端機(jī)的大小。
-d <作業(yè)名稱> 將指定的screen作業(yè)離線。
-h <行數(shù)> 指定視窗的緩沖區(qū)行數(shù)。
-m ?使目前已在作業(yè)中的screen作業(yè),仍強(qiáng)制建立新的screen作業(yè)。
-r <作業(yè)名稱> 恢復(fù)離線的screen作業(yè)。
-R 先試圖恢復(fù)離線的作業(yè)。若找不到離線的作業(yè),即建立新的screen作業(yè)。
-s 指定建立新視窗時(shí),所要執(zhí)行的shell。
-S <作業(yè)名稱> 指定screen作業(yè)的名稱。
-v 顯示版本信息。
-x 恢復(fù)之前離線的screen作業(yè)。
-ls或--list 顯示目前所有的screen作業(yè)。
-wipe 檢查目前所有的screen作業(yè),并刪除已經(jīng)無法使用的screen作業(yè)。
常用screen參數(shù):
在每個(gè)screen session 下,所有命令都以 ctrl+a(C-a) 開始。
C-a ? -> Help,顯示簡(jiǎn)單說明
C-a c -> Create,開啟新的 window
C-a n -> Next,切換到下個(gè) window
C-a p -> Previous,前一個(gè) window
C-a 0..9-> 切換到第 0..9 個(gè)window
Ctrl+a [Space] -> 由視窗0循序換到視窗9
C-a C-a -> 在兩個(gè)最近使用的 window 間切換
C-a x -> 鎖住當(dāng)前的 window,需用用戶密碼解鎖
C-a d -> detach,暫時(shí)離開當(dāng)前session,將目前的 screen session (可能含有多個(gè) windows) 丟到后臺(tái)執(zhí)行,并會(huì)回到還沒進(jìn) screen 時(shí)的狀態(tài),此時(shí)在 screen session 里 每個(gè) window 內(nèi)運(yùn)行的 process (無論是前臺(tái)/后臺(tái))都在繼續(xù)執(zhí)行,即使 logout 也不影響。
C-a z -> 把當(dāng)前session放到后臺(tái)執(zhí)行,用 shell 的 fg 命令璄可回去。
C-a w -> Windows,列出已開啟的 windows 有那些
C-a t -> Time,顯示當(dāng)前時(shí)間,和系統(tǒng)的 load
C-a K -> kill window,強(qiáng)行關(guān)閉當(dāng)前的 window
C-a [ -> 進(jìn)入 copy mode,在 copy mode 下可以回滾、搜索、復(fù)制就像用使用 vi 一樣
C-b Backward,PageUp
C-f Forward,PageDown
H(大寫) High,將光標(biāo)移至左上角
L Low,將光標(biāo)移至左下角
0 移到行首
$ 行末
w forward one word,以字為單位往前移
b backward one word,以字為單位往后移
Space 第一次按為標(biāo)記區(qū)起點(diǎn),第二次按為終點(diǎn)
Esc 結(jié)束 copy mode
C-a ] -> Paste,把剛剛在 copy mode 選定的內(nèi)容貼上