GNUScreen是一个终端多路复用器(窗口管理器)。顾名思义,Screen可以在多个交互式shell之间重用一个物理终端,因此我们可以在每个终端会话中执行不同的任务。所有Screen会话完全独立地运行程序。因此,在Screen会话中运行的程序或进程将继续运行,即使会话意外关闭或断开连接也是如此。例如,当通过SSH升级Ubuntu服务器时,screen命令将继续运行升级过程,以防SSH会话因任何原因终止。GNUScreen允许我们轻松创建多个Screen会话、在不同会话之间切换、在会话之间复制文本、随时连接或离开会话等等。它是每个Linux管理员都应该学习并在必要时使用的必备命令行工具之一。在本简短指南中,我们将通过示例了解screen命令在Linux中的基本用法。安装GNUScreenGNUScreen在大多数Linux操作系统的默认存储库中可用。要在ArchLinux上安装GNUScreen,请运行:$sudopacman-Sscreen在Debian、Ubuntu、LinuxMint上:$sudoapt-getinstallscreen在Fedora上:$sudodnfinstallscreen在RHEL、CentOS上:$sudoyuminstallscreen在SUSE/openSUSE:$sudozypperinstallscreen让我们继续看一些示例屏幕命令。用于管理多个终端会话的屏幕命令示例Screen中所有命令的默认前缀快捷方式是Ctrl+a。在使用Screen时,您需要经常使用此快捷方式。所以,记住这个键盘快捷键。创建一个新的Screen会话让我们创建一个新的Screen会话并连接到它。为此,请在终端中键入以下命令:screen现在,运行此会话中的任何程序或进程,即使您与此会话断开连接,正在运行的进程或程序仍将继续运行。从Screen会话中分离要从Screen会话中分离,请按Ctrl+a和d。您不需要同时按下两个组合键。首先按Ctrl+a,然后按d。从会话分离后,您将看到类似于下面的输出。[从29149.pts-0.sk分离]这里,29149是屏幕ID,pts-0.sk是屏幕会话的名称。您可以使用屏幕ID或相应的会话名称附加、分离和终止屏幕会话。创建命名会话您还可以使用您选择的任何自定义名称而不是默认用户名创建屏幕会话,如下所示。screen-Sostechnix上面的命令将创建一个名为xxxxx.ostechnix的新Screen会话并立即连接到它。要从当前会话中分离,请按Ctrl+a,然后按d。当您想找出哪些进程正在哪些会话上运行时,命名会话会很有用。例如,在会话中设置LAMP系统时,您可以简单地命名它,如下所示。screen-Slampstack创建一个分离的会话有时您可能希望创建一个会话而不自动附加到它。在这种情况下,运行以下命令创建一个名为senthil的分离会话:screen-Ssenthil-d-m也可以缩写为:screen-dmSsenthil上面的命令将创建一个名为senthil的会话,但不会连接到它。列出屏幕会话要列出所有正在运行的会话(附加或分离),请运行:screen-ls示例输出:有屏幕:29700.senthil(分离)29415.ostechnix(分离)29149.pts-0.sk(分离)3/run/screens/S-sk中的套接字。如您所见,我正在运行三个会话,并且所有会话都是分离的。连接到Screen会话如果你想连接到一个会话,例如29415.ostechnix,只需运行:screen-r29415.ostechnix或:screen-rostechnix或使用ScreenID:screen-r29415来验证我们是否已连接对于上面的会话,只需列出打开的会话并检查。screen-ls示例输出:Therearescreenson:29700.senthil(Detached)29415.ostechnix(Attached)29149.pts-0.sk(Detached)/run/screens/S-sk中的3个套接字。如您所见,在上面的输出中,我们当前连接到29415.ostechnix会话。要退出当前会话,请按ctrl+ad。创建嵌套会话当我们运行screen命令时,它会为我们创建一个会话。但是,我们可以创建嵌套会话(会话中的会话)。首先,创建一个新会话或附加到一个已经打开的会话。然后我将创建一个名为nested的新会话。screen-Snested现在,在会话中按Ctrl+a和c创建另一个会话。只需重复此操作即可创建任意数量的嵌套屏幕会话。每个会话都会分配一个编号。数字将从0开始。您可以按Ctrl+n移至下一个会话,按Ctrl+p移至上一个会话。以下是用于管理嵌套会话的重要键盘快捷键列表。Ctrl+a"-列出所有会话Ctrl+a0-切换到会话号0Ctrl+an-切换到下一个会话Ctrl+ap-切换到上一个会话Ctrl+aS-将当前区域水平拆分为两个区域Ctrl+al-将当前区域垂直拆分为两个区域Ctrl+aQ--关闭除当前会话之外的所有会话Ctrl+aX--关闭当前会话Ctrl+a\--终止所有会话并终止屏幕Ctrl+a?-显示键绑定。要退出,请按Enter####LockSessionScreen有一个锁定会话的选项。为此,请按Ctrl+a和x。输入您的Linux密码以锁定。sk
