我是這樣子5分鐘上手Screen命令的

1. 使用場景

​ 在Screen環境下,所有的會話都獨立的運行,並擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,並可以自由的重定向各個窗口的輸入和輸出。

使用場景:

  • disconnect ssh
  • multi-tasking environment

安裝方法:

sudo yum install screen
sudo apt install screen



2. 參數說明

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



3. 最常用用法

​ 最常用的用法莫過於保持進程運行了。比如說我用ssh連接服務器,開了一個進程,但是我想實時地查看console的輸出日誌,因此不想使用nohup或者“-d”啓動參數來讓其在後臺運行;與此同時,還需要斷開ssh後依舊保持進程在運行。那麼screen非常多用於這種場景。


3.1 開始一個session

screen -S yourname  # 創建一個screen作業,使用後會自動進入一個窗口中

在這裏插入圖片描述

3.2 detach一個session

# 在保持當前session狀態的同時,退出當前session
ctrl+a+d (三個鍵同時按)  # 當前已經進入了一個session中,退出當前session

在這裏插入圖片描述
在這裏插入圖片描述


3.3 顯示所有session

screen -ls     # 顯示目前所有的screen作業

在這裏插入圖片描述


3.4 進入一個session

screen -r yourname      

在這裏插入圖片描述


3.5 殺死一個session

# 兩種方法,一種是screen命令關閉,另一種是直接殺死該窗口進程,實際效果一樣
screen -X -S yourname quit  # 殺死名叫yourname的session
kill -9 session進程號



在這裏插入圖片描述

3.6 自動清理死掉的session

screen -wipe  



3.7 例子:使用screen維護一個elasticsearch服務

例如,使用screen來維護一個elasticsearch的進程

img



4.screen中使用ctrl+a

ctrl+a+?  # 顯示所有鍵綁定信息
ctrl+a+c   # 創建一個新的運行shell的窗口並切換到該窗ctrl+a+-a n   # Next,切換到下一個 winctrl+a+
ctrl+a+p   # Previous,切換到前一個 window 
ctrl+a+0..9 #  切換到第 0..9 個 window
Ctrl+a+[Space]    # 由視窗0循序切換到視窗9
ctrl+a+ctrl+a   # 在兩個最近使用的 window 間切換 
ctrl+a+x     # 鎖住當前的 window,需用用戶密碼解鎖
ctrl+a+d   # detach,暫時離開當前session 
ctrl+a+z  # 把當前session放到後臺執行,用 shell 的 fg 命令則可回去。
ctrl+a+w  #顯示所有窗口列表
ctrl+a+t  #time,顯示當前時間,和系統的 load 
ctrl+a+k # kill window,強行關閉當前的 window

ctrl+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 
ctrl+a+] # paste,把剛剛在 copy mode 選定的內容貼上
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章