screen 是一個非常有用的命令,提供從單個 SSH 會話中使用多個 shell 視窗(會話)的能力。當會話被分離或網際網路中斷時,screen 會話中啟動的程式仍將執行,你可以隨時重新連線到 screen 會話。如果你想執行一個持久的程式或者從多個位置連線到 shell 會話,這也很方便。
在本文中,我們將展示在 Linux 上安裝和使用 screen 的基本知識。
如何安裝 screen
screen 在一些流行的發行版上已經預安裝了。你可以使用下面的命令檢查是否已經在你的站群伺服器上安裝了。

screen -v
Screen version 4.00.03 (FAU)

如果在 Linux 中還沒有 screen,你可以使用系統提供的包管理器很簡單地安裝它。
CentOS/RedHat/Fedora

yum -y install screen

Ubuntu/Debian

apt-get -y install screen

如何啟動一個 screen 會話
你可以在命令列中輸入 screen 來啟動它,接著會有一個看上去和命令列提示符一樣的 screen 會話啟動。

screen

使用描述性名稱啟動螢幕會話是一個很好的做法,這樣你可以輕鬆地記住會話中正在執行的程式。要使用會話名稱建立新會話,請執行以下命令:

screen -S name

將 “name” 替換為對你會話有意義的名字。
從 screen 會話中分離
要從當前的 screen 會話中分離,你可以按下 Ctrl-A 和 d 。所有的 screen 會話仍將是活躍的,你之後可以隨時重新連線。
重新連線到 screen 會話
如果你從一個會話分離,或者由於某些原因你的連線被中斷了,你可以使用下面的命令重新連線:

screen -r

如果你有多個 screen 會話,你可以用 ls 引數列出它們。

screen -ls

There are screens on:
7880.session    (Detached)
7934.session2   (Detached)
7907.session1   (Detached)
3 Sockets in /var/run/screen/S-root.

在我們的例子中,我們有三個活躍的 screen 會話。因此,如果你想要還原 “session2” 會話,你可以執行:

screen -r 7934

或者使用 screen 名稱。

screen -r -S session2

中止 screen 會話
有幾種方法來中止 screen 會話。你可以按下 Ctrl+d,或者在命令列中使用 exit 命令。
要檢視 screen 命令所有有用的功能,你可以檢視 screen 的 man 手冊。

man screen

NAME
screen – screen manager with VT100/ANSI terminal emulation

SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]