如何在 Linux 中使用 GNU Screen 管理终端会话 ?

GNU Screen 是一个终端多路复用器,它允许在主终端中有多个终端会话。

那么为什么我们需要 GNU Screen? 有时我们可能会遇到一些问题,比如由于网络问题而自动终止远程 ssh 连接。如果任务在生产环境中运行,可能会很痛苦。因此,为了处理这类问题,建议单独的屏幕会话,它不会随着终端会话的结束而终止。

在 Linux 和 Unix 系统中,有一种终端多路复用工具叫做 screen,它用于管理终端会话。在本文中,我们将介绍在生产系统中处理重要任务时如何在 Linux 中使用 GNU Screen 来管理终端会话。

安装 screen

在 Linux 系统下安装屏幕包简单易行。一些现代操作系统预装了屏幕应用程序。运行以下命令验证屏幕的可用性。

$ screen --version
Screen version 4.08.00 (GNU) 05-Feb-20

如果获得其他输出,则说明系统上没有可用的屏幕工具。执行以下命令安装屏幕包。

Ubuntu/Debian

$ sudo apt-get install screen -y

RHEL/CentOS

$ sudo yum installs screen -y  // RHEL 7
$ sudo dnf install screen -y  // RHEL  8

启动 screen

安装完成后,只需运行命令屏幕来启动屏幕会话。

$ screen

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第1张图片

创建带有名称的 screen 会话

使用屏幕命令跟随选项 -s,您可以创建一个命名的屏幕会话。在此示例中,我使用了屏幕 Linuxtechi 作为屏幕会话的名称。您可以选择自己的名字。

$ screen -S screen-linuxtechi

查看 screen 命令参数

screen 提供了一些有用的参数和命令。要列出可用参数,请按 ctrl+a,然后按 ?

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第2张图片

查看 screen 会话

使用下面的命令列出可用的屏幕会话

$ screen -ls

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第3张图片

分离 screen 会话

screen 提供了一个有用特性,您可以分离 screen 会话并在需要时重新附加。要分离当前screen 会话,请按 ctrl + a,然后按 d

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第4张图片

重连 screen 会话

使用选项 -r 可以重连分离的 screen 会话。使用命令 screen -ls 列出已分离的会话,找到屏幕会话名称并重连。在这个例子中,我已经重连了会话 25148.pts-0.LinuxTechi

$ screen -ls
$ screen -r 25148.pts-0.LinuxTechi

也可以使用屏幕 id 或名称重连会话。在上面的示例中,25148 是 id , pts-0.LinuxTechi 是名称。

$ screen -r 25148
$ screen -r pts-0.LinuxTechi

拆分 screen 窗口

有时,您可能需要将屏幕窗口拆分为多个屏幕来执行多个任务。

垂直拆分

要垂直分割 Linux 屏幕窗口,请按 ctrl + a 然后按 |,通过重复相同的过程,可以分割 n 个屏幕窗口。

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第5张图片

水平拆分

要水平分割 Linux 屏幕窗口,请按 ctrl + a 然后按 S (大写),通过重复相同的过程,可以分割 n 个屏幕窗口。

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第6张图片

在分裂 screen 会话中创建新的终端

无论您是水平分割屏幕还是垂直分割屏幕,都不会创建任何新的终端。要在屏幕中创建新的终端,需要先使用 ctrl + atab 切换到新的分屏屏幕窗口。然后按 ctrl + ac (小写) 创建一个终端。

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第7张图片

撤销分割的 screen 窗口

要撤销已分割的屏幕窗口,使用 ctrl + aQ

锁定 screen 会话

为了防止未经授权的访问,可以锁定屏幕会话,而不锁定正常会话用户。要锁定屏幕终端,使用命令 ctrl + ax (小写) ,系统将提示您设置密码、应用保护密码,仅此而已。

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第8张图片

找到 screen 会话的所有者

屏幕会话存储在目录 /var/run/screen 中,列出目录中存储的内容以找到屏幕的所有者。

$ ls -ltr /var/run/screen

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第9张图片

终止 screen 会话

当任务完成时,您可以使用 ctrl + ak 命令销毁屏幕会话。系统将提示您进行用户确认,键入 y 以终止会话。

如何在 Linux 中使用 GNU Screen 管理终端会话 ?_第10张图片

访问 screen 帮助页面

$ screen --help

或者使用 man 命令

$ man screen

一些有用的 screen 命令参数

  • ctrl + a + c => 创建带有终端的新窗口
  • ctrl + a + ? => 查看参数列表
  • ctrl + a + A => 重命名当前窗口
  • ctrl + a + tab => 切换到下一个窗口
  • ctrl + a + S => 水平拆分窗口
  • ctrl + a + | => 垂直拆分窗口
  • ctrl + a + d => 分离 screen
  • ctrl + a + k => 终结 screen

我的开源项目

你可能感兴趣的:(linux)