screen 命令是一個終端多路復用器。它類似於桌面環境的窗口管理器,不同之處在於它在終端內工作。您可以創建會話和拆分窗口。這是終端中一種非常強大的多任務處理方式。
安裝畫面命令
screen 命令可以與您的發行版的默認包管理器一起安裝。以下是在大多數用戶使用的兩個主要發行版上安裝 screen 命令的步驟:
1. 在基於 Debian/Ubuntu 的系統上安裝
可以使用 apt 命令安裝 screen 命令。
sudo apt install screen
2. 在基於 RedHat/Fedora 的系統上安裝
默認存儲庫中不存在 screen 包。相反,它們駐留在 EPEL(企業 Linux 的額外軟件包)存儲庫中。
您必須先添加該存儲庫。這可以通過 dnf 命令來完成。
sudo dnf install epel-release
然後安裝屏幕,輸入:
sudo dnf install screen

屏幕命令的基本用法
在開始使用 screen 命令之前,了解一些與之相關的術語會很有幫助。存在 screen
1 會議 虛擬終端集合 screen
管理。
一個會話可能包含多個會話 視窗 這些通常是獨立的交互式 shell。虛擬終端可以拆分如下: 疼痛 它們是終端內的矩形區域,由 screen
這些窗格可以包含窗口。
1.不帶參數使用screen
要使用屏幕,請輸入:
screen
啟動“未命名”會話。我不知道與原始提示的區別,但屏幕正在偵聽命令。突然 CTRL
+ A
+ ?
記住鍵綁定 screen
:

正如剛才提到的, CTRL
+ A
(有時寫為 ^一個 ) 是“命令鍵” screen
按下命令鍵並告訴 screen
要按下的鍵是命令 screen
.
(帶“A” CTRL
+ A
不是大寫。無需按下 Shift
鑰匙。 ‘A’ 表示小寫的’a’。 因為手冊頁和鍵綁定是這樣引用它的。對於其他鍵,我們明確提到了這種情況。 )
還有一個類似vim的命令模式,可以通過按來訪問 CTRL
+ A
+ :
不同之處在於整個命令必須在命令模式下輸入,而不是鍵盤快捷鍵。例如, CTRL
+ A
+ X
(大寫’x’)是 CTRL
+ A
+ : 然後輸入 remove
在窗格底部的提示符處。

2.創建命名會話
要創建命名會話,請在 -S 選項之後指定會話名稱。
screen -S newsession
3.在會話中創建新窗口
按在會話中創建一個新窗口。 CTRL
+ A
+ 哈 (小寫“c”)。突然 CTRL
+ A
+ “ (雙引號)表示可以選擇的窗口列表。按下打開窗口 Enter
在列表中該窗口的選項中。

要重命名當前窗口, CTRL
+ A
+ A
(大寫“a”)。底部會出現提示。在此處輸入新名稱,然後按 Enter
.

4.列出活動會話
可能有多個 screen
將同時舉行。要列出它們,請輸入:
screen -ls

該列表包含會話的 PID(進程 ID),後跟會話名稱。列表下方是套接字的數量
這個命令 screen
會話(添加在括號中)。 您可以在屏幕會話中運行屏幕命令。
5. 結束會話
如何結束會話取決於您是在會話中還是在會話外。
會話外 要殺死,您需要知道會話的名稱或會話的 PID。它們可以從列表中獲得 screen -ls
.
知道會話的名稱或 PID 後,輸入:
screen -X -S 607719 quit

上面的命令用 PID 607719 終止會話並打印 [screen is terminating]
返回到開始屏幕提示。
您還可以指定多達唯一的 PID。例如,如果您有兩個 PID 為 699389 和 607719 的會話,並且您想終止 PID 為 607719 的會話,您可以使用:
screen -X -S 60 quit
名稱也可以縮寫。
quit
是一個命令 screen
這將終止會話。您可以通過這種方式向會話發送任何命令(請參閱所有可用命令的鍵綁定頁面)。
在會話中您可以通過按結束當前會話 CTRL
+ A
+ (反斜杠)。
屏幕作為終端多路復用器
screen
終端多路復用器。這意味著您可以將終端水平或垂直拆分為多個窗格。這些窗格可以水平或垂直細分。為此,您需要加入屏幕會話。
首先按下以垂直拆分您的設備 CTRL
+ A
+|
(管道/管道字符)

窗格的左下角顯示窗口編號及其名稱。 screen
默認情況下,打開 0 號窗口。
您可以通過按來切換窗格 CTRL
+ A
+ Tab
按下它,它將帶您到右側窗格。然後是選項列表(CTRL
+ A
+"
) 或新的 (CTRL
+ A
+ c
)。創建新窗口後,終端如下所示:

現在讓我們水平拆分窗口 1(垂直拆分後創建一個新窗口)。 CTRL
+ A
+ S
(大寫的’s’),轉到新窗格(CTRL
+ A
+Tab
),這將創建一個新窗口 (CTRL
+ A
+ c
)。
您的終端現在應該如下所示:

要刪除窗格, CTRL
+ A
+ X
(大寫“x”)在該窗格中。
斷開並重新連接
真正的力量 screen
能夠分離和重新連接會話。從會話中分離將提示您從運行的地方返回 screen
. 然後整個會話 在後台運行 一個在這裡 screen
過程。
如果您通過 SSH 訪問您的機器,這將特別有用。長時間運行的命令可以在屏幕會話中運行 遠程機器那麼讓我們開始吧 screen
從 ssh 會話關閉會話和安全性 本地機器.
然後幾個小時後,您可以再次通過 SSH 連接到機器並重新連接到您的屏幕會話。您可以看到該命令仍在運行。在正常的 SSH 會話中,此命令將被終止。
要斷開會話, CTRL
+ A
+ d
(小寫“d”)。轉到原始提示。

列出屏幕會話。

要重新連接到會話,請輸入:
screen -r -S newsession
如果您設置窗格,它們將消失,如有必要,您將不得不再次拆分終端。窗戶仍然存在。
請注意,我在這裡使用了會話的名稱而不是 PID。
屏幕作為協作工具
令人驚訝的是,Screen 可以用作協作工具。描述如何公開連接 screen
來自兩台遠程計算機的會話。
假設您想向某人展示如何在您的服務器上編輯配置文件。我創造 screen
服務器上的會話:
screen -S newsession
然後進入命令模式(CTRL
+ A
+ :
) 進入。 multiuser on
按 Enter
要求其他人以創建屏幕會話的同一用戶身份登錄 來自不同的機器 輸入如下。
screen -x

右邊的終端是為那些想要展示如何編輯配置文件的人準備的。左終端只是反映了右終端中寫入的內容。這樣一個人就可以打開 vim 或 nano 並向其他人展示如何編輯文件。
結論是
Screen 是一個非常有用的多任務命令,因為它允許您在終端內運行多個交互式 shell。有關屏幕詳細信息,請參閱該手冊。