蚊章汇 - 复用
type: channel
link: https://linuxcn.bwsl.wang/tag/%E5%A4%8D%E7%94%A8/
items: screen 命令示例：管理多个终端会话

screen 命令示例：管理多个终端会话
type: item
date: 2019-06-11T20:48:00+08:00
description: GNU Screen 是一个终端多路复用器（窗口管理器）。顾名思义，Screen 可以在多个交互式 shell 之间复用物理终端，因此我们可以在每个终端会话中执行不同的任务。所有的 Screen 会话都完全独立地运行程序。因此，即使会话意外关闭或断开连接，在 Screen 会话内运行的程序或进程也将继续运行。例如，当通过 SSH 升级 Ubuntu 服务器时，screen 命令将继续运行升级过程，以防万一 SSH 会话因任何原因而终止。GNU Screen 允许我们轻松创建多个 Screen 会话，在不同会话之间切换，在会话之间复制文本，随时连上或脱离会话等等。它是每个 Linux 管理员应该在必要时学习和使用的重要命令行工具之一。在本简要指南中，我们将看到 screen 命令的基本用法以及在 Linux 中的示例。安装 GNU ScreenGNU Screen 在大多数 Linux 操作系统的默认存储库中都可用。要在 Arch Linux 上安装 GNU Screen，请运行：$ sudo pacman -S screen在 Debian、Ubuntu、Linux Mint 上：$ sudo apt-get install screen在 Fedora 上：$ sudo dnf install screen在 RHEL、CentOS 上：$ sudo yum install screen在 SUSE/openSUSE 上：$ sudo zypper install screen让我们继续看一些 screen 命令示例。管理多个终端会话的 Screen 命令示例在 Screen 中所有命令的默认前缀快捷方式是 Ctrl + a。使用 Screen 时，你需要经常使用此快捷方式。所以，要记住这个键盘快捷键。创建新的 Screen 会话让我们创建一个新的 Screen 会话并连上它。为此，请在终端中键入以下命令：screen现在，在此会话中运行任何程序或进程，即使你与此会话断开连接，正在运行的进程或程序也将继续运行。从 Screen 会话脱离要从屏幕会话中脱离，请按 Ctrl + a 和 d。你无需同时按下两个组合键。首先按 Ctrl + a 然后按 d。从会话中脱离后，你将看到类似下面的输出。[detached from 29149.pts-0.sk]这里，29149 是 Screen ID，pts-0.sk 是屏幕会话的名称。你可以使用 Screen ID 或相应的会话名称来连上、脱离和终止屏幕会话。创建命名会话你还可以用你选择的任何自定义名称创建一个 Screen 会话，而不是默认用户名，如下所示。screen -S ostechnix上面的命令将创建一个名为 xxxxx.ostechnix 的新 Screen 会话，并立即连上它。要从当前会话中脱离，请按 Ctrl + a，然后按 d。当你想要查找哪些进程在哪些会话上运行时，命名会话会很有用。例如，当在会话中设置 LAMP 系统时，你可以简单地将其命名为如下所示。screen -S lampstack创建脱离的会话有时，你可能想要创建一个会话，但不希望自动连上该会话。在这种情况下，运行以下命令来创建名为senthil 的已脱离会话：screen -S senthil -d -m也可以缩短为：screen -dmS senthil上面的命令将创建一个名为 senthil 的会话，但不会连上它。列出屏幕会话要列出所有正在运行的会话（连上的或脱离的），请运行：screen -ls示例输出：There are screens on: 29700.senthil (Detached) 29415.ostechnix (Detached) 29149.pts-0.sk (Detached) 3 Sockets in /run/screens/S-sk.如你所见，我有三个正在运行的会话，并且所有会话都已脱离。连上 Screen 会话如果你想连上会话，例如 29415.ostechnix，只需运行：screen -r 29415.ostechnix或：screen -r ostechnix或使用 Screen ID：screen -r 29415要验证我们是否连上到上述会话，只需列出打开的会话并检查。screen -ls示例输出：There are screens on: 29700.senthil (Detached) 29415.ostechnix (Attached) 29149.pts-0.sk (Detached) 3 Sockets in /run/screens/S-sk.如你所见，在上面的输出中，我们目前已连上到 29415.ostechnix 会话。要退出当前会话，请按 …