管理 Linux 终端的 20 个 Screen 命令示例 | 您所在的位置:网站首页 › screen删除所有窗口 › 管理 Linux 终端的 20 个 Screen 命令示例 |
管理 Linux 终端的 20 个 Screen 命令示例
简介:在本指南中,我们将讨论 screen 命令的一些有用示例。在本指南结束时,用户将能够使用单个 Linux 终端窗口处理多个 shell 会话。 作为 Linux 用户,我们经常需要执行长时间运行的任务,例如下载或复制大文件、执行耗时的数据库查询等。有时,这些重要任务会由于会话超时而突然终止。 为了缓解这种情况,我们可以使用 screen 命令,它是一个全屏软件程序,可用于在多个进程(通常是交互式 shell)之间复用物理控制台。它允许用户在单个终端窗口管理器中打开多个单独的终端实例。 如果您要从命令行界面处理多个程序以及将程序与终端 shell 分开,则 screen 应用程序非常有用。它还允许您与其他用户共享您的会话以及分离/附加终端会话。 在本指南中,我们将讨论如何在 Linux 系统上安装、配置和使用 screen 命令。在本指南中,我们将通过实际示例了解 screen 命令的用法和优点。 那么让我们开始吧。 在 Linux 中安装 Screen 命令在我的 Ubuntu Server Edition 上,默认安装了 screen 命令。但是,Linux Mint默认没有安装screen,所以我需要先使用apt-get命令安装它,然后才能使用它。 请按照您的发行版安装程序来安装屏幕。 sudo apt-get install screen [On Debian, Ubuntu and Mint] sudo yum install screen [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] sudo emerge -a sys-apps/screen [On Gentoo Linux] sudo apk add screen [On Alpine Linux] sudo pacman -S screen [On Arch Linux] sudo zypper install screen [On OpenSUSE]现在,让我们验证该命令是否已成功安装: screen --version Screen version 4.8.00 (GNU) 05-Feb-20实际上,screen是Linux中一个非常好的终端多路复用程序,它隐藏在数百条Linux命令中。 让我们通过以下示例开始了解 Linux 中 screen 命令的用法。 屏幕命令语法screen命令的语法如下 screen [OPTIONS] [ CMD [ ARGS ] ]在上面的语法中,我们可以看到所有参数都是选项,它们由方括号([])表示。 1. 首次启动屏幕只需在命令提示符下键入屏幕即可。然后屏幕将显示与命令提示符完全相同的界面。 screen 2. 显示屏幕参数当您进入屏幕时,您可以像在正常命令行环境中一样完成所有工作。但由于屏幕是一个应用程序,因此它有命令或参数。 输入“Ctrl-A”和“?”(不带引号)。然后您将在屏幕上看到所有命令或参数。 要退出帮助屏幕,您可以按“空格键”按钮或“Enter”。 (请注意,所有使用“Ctrl-A”的快捷键都是不带引号的)。 3. 如何列出所有打开的窗口在前面的示例中,我们使用 screen 命令启动了一个新的 shell 会话。现在让我们使用 ctrl-a + " 组合键列出当前屏幕会话的所有打开的窗口: 在上面的输出中,我们可以看到窗口的编号和名称。第一列代表窗口号,从零开始。 下一列表示窗口的名称,其默认格式为 @:。 4. 如何终止屏幕窗口会话我们可以使用 ctrl-a + k 组合键终止活动窗口会话。需要注意的是,此操作将中断当前虚拟窗口的命令执行。 在上面的输出中,我们可以看到 screen 命令正在等待用户的确认。它在左下角显示警告消息。 就像其他 Linux 命令一样,我们可以使用 'y' 继续操作或使用 'n' 中止操作。 5. 如何使用名称启动屏幕会话screen 命令允许我们创建一个具有用户定义名称的会话,当有多个会话可用时,这会派上用场。 因此,让我们使用命令的 -S 选项来创建命名会话: screen -S demo-screen在上面的命令中,演示屏幕是会话的名称。 6. 使用 Screen 分离终端会话屏幕的优点之一是您可以将其拆卸。然后,您可以恢复它,而不会丢失您在屏幕上所做的任何操作。这是示例场景: 您正在服务器上使用SSH。假设您正在使用 wget 命令为您的系统下载400MB补丁。 下载过程预计需要2 小时。如果您断开 SSH 会话,或者突然意外丢失连接,则下载过程将停止。你必须重新从头开始。为了避免这种情况,我们可以使用屏幕并将其拆下。 看看这个命令。首先,您必须进入屏幕。 screen然后你就可以进行下载过程了。例如,在我的 Linux Mint 上,我使用 apt 命令升级我的 dpkg 软件包。 sudo apt install dpkg Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dpkg 1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded. Need to get 2,583 kB of archives. After this operation, 127 kB of additional disk space will be used. Get:1 http://debian.linuxmint.com/latest/ testing/main dpkg i386 1.16.10 [2,583 kB] 47% [1 dpkg 1,625 kB/2,583 kB 47%] 14,7 kB/s下载过程中,您可以按“Ctrl-A”和“d”。当您按下这些按钮时,您将看不到任何东西。输出将是这样的: [detached from 5561.pts-0.mint] pungki@mint ~ $7. 重新连接带有屏幕的终端会话分离屏幕后,假设您要断开 SSH 会话并回家。在您的家中,您再次开始通过 SSH 连接到您的服务器,并且您希望查看下载过程的进度。为此,您需要恢复屏幕。您可以运行此命令: pungki@mint ~ $ screen -r您将看到您离开的进程仍在运行。 当您有超过1个屏幕会话时,您需要输入屏幕会话ID。使用 screen -ls 查看有多少个屏幕可用。 pungki@mint ~ $ screen -lspungki@mint ~ $ screen -ls There are screens on: 7849.pts-0.mint (10/06/2021 01:50:45 PM) (Detached) 5561.pts-0.mint (10/06/2021 11:12:05 AM) (Detached) 2 Sockets in /var/run/screen/S-pungki如果您想恢复屏幕 7849.pts-0.mint,请键入此命令。 pungki@mint ~ $ screen -r 78498. 使用多屏幕终端窗口当您需要1 个屏幕来完成工作时,这可能吗?是的。您可以同时运行多个屏幕窗口。有两(两种)方法可以做到这一点。 首先,您可以分离第一个屏幕并在真实终端上运行另一个屏幕。其次,您进行如图所示的嵌套屏幕。 要创建新窗口,请使用 ctrl-a + c 组合键两次来创建两个新窗口。接下来,让我们使用 ctrl-a + " 组合键列出所有活动窗口: 在上面的输出中,我们可以看到现在有三个窗口。 9. 如何重命名屏幕窗口在前面的示例中,我们创建了两个新窗口。但是,它们的默认名称并未提供有关它们的任何详细信息。在这种情况下,我们可以给它们指定一些有意义的名称。 我们可以使用 ctrl-a + A 组合键来重命名当前窗口会话。此组合键提示用户设置窗口标题: 10. 屏幕终端窗口之间的切换在前面的示例中,我们创建了多个窗口。现在让我们看看如何在它们之间进行切换。 首先,让我们使用 ctrl-a + " 组合键列出所有活动窗口。接下来,使用向上或向下箭头键选择适当的窗口。最后,按 Enter 键切换到所选窗口窗户。 在此示例中,我们选择了标题为 - db-query 的窗口。 11. 如何移动到下一个屏幕窗口我们可以使用 ctrl-a + n 组合键移动到下一个窗口。让我们通过一个例子来理解这一点。 首先,切换到第一个窗口并使用 ctrl-a + " 组合键验证它: 现在,让我们按两次 ctrl-a + n 组合键转到第三个窗口,并使用 ctrl-a + " 组合键进行验证。 在上面的输出中,我们可以看到现在我们位于第三个窗口。 12. 如何移至上一屏幕窗口类似地,我们可以使用ctrl-a + p组合切换到上一个窗口。 目前,我们正处于第三个窗口。因此,让我们使用 ctrl-a + p 组合键两次并验证我们是否再次位于第一个窗口: 在上面的输出中,我们可以看到现在我们回到了第一个窗口。 13. 如何在当前窗口和上一个窗口之间切换有时,我们只想在两个窗口之间切换。在这种情况下,我们可以使用 ctrl-a + ctrl-a 组合键。 要理解这一点,首先切换到第一个窗口: 接下来,切换到最后一个窗口: 最后,使用ctrl-a + ctrl-a组合键再次跳转到第一个窗口。 14. 如何跳转到特定屏幕窗口在前面的示例中,我们看到了在窗口之间切换的各种方法。然而,有时我们想跳转到某个特定的窗口。在这种情况下,我们可以使用窗口号。 首先,我们使用 ctrl-a + " 组合键来查找窗口编号: 在上面的输出中,第一列代表窗口号。需要注意的是,screen 命令从零开始编号。 现在,让我们使用 ctrl-a + 2 组合键跳转到第三个窗口并验证我们是否位于正确的窗口中: 15. 如何水平分割屏幕窗口就像普通终端一样,我们也可以分割屏幕窗口。我们可以使用 ctrl-a + S 组合键来水平分割窗口。 现在,我们可以使用 ctrl-a + tab 组合键在区域之间跳转。 最后,我们可以使用 ctrl-a + X 组合键来删除当前区域。需要注意的是,这里我们必须使用大写的 X 字符。 16. 如何垂直分割屏幕窗口同样,我们可以使用 ctrl-a + | 组合键来垂直分割当前窗口: 除此之外,我们还可以使用ctrl-a + tab组合键在区域之间切换以及ctrl-a + X组合键关闭当前区域。 17. 在 Linux 中启用屏幕日志记录有时,记录您在控制台中所做的事情很重要。假设您是一名管理大量 Linux 服务器的 Linux 管理员。 通过此屏幕日志记录,您无需写下已执行的每一条命令。要激活屏幕记录功能,只需按“Ctrl-A”和“H”。 (请小心,我们使用大写“H”字母。使用非大写“h”,只会在另一个名为硬拷贝的文件中创建屏幕截图) 。 在屏幕的左下角,会有一条通知告诉您喜欢:创建日志文件“screenlog.0”。您将在主目录中找到一个 screenlog.0 文件。 此功能将附加您在屏幕窗口中所做的所有操作。要关闭屏幕以记录运行活动,请再次按“Ctrl-A”和“H”。 另一种激活日志记录功能的方法是,您可以在第一次运行屏幕时添加参数“-L”。命令将是这样的。 pungki@mint ~ $ screen -L18. 锁定 Linux 终端屏幕屏幕还有一个锁定屏幕的快捷方式。您可以按“Ctrl-A”和“x”快捷键锁定屏幕。如果您想快速锁定屏幕,这会很方便。这是按下快捷键后锁定屏幕的输出示例。 Screen used by Pungki Arianto on mint. Password:您可以使用您的 Linux 密码来解锁它。 19. 为屏幕会话添加密码出于安全原因,您可能需要将密码输入屏幕会话。每当您想要重新连接屏幕时,都会询问密码。此密码与上面的锁定屏幕机制不同。 要保护屏幕密码,您可以编辑“$HOME/.screenrc”文件。如果该文件不存在,您可以手动创建它。语法将是这样的。 password crypt_password要创建上面的“crypt_password”,您可以在 Linux 上使用“mkpasswd”命令。这是带有密码“pungki123”的命令。 pungki@mint ~ $ mkpasswd pungki123 l2BIBzvIeQNOsmkpasswd 将生成一个哈希密码,如上所示。获得哈希密码后,您可以将其复制到“.screenrc”文件中并保存。所以“.screenrc”文件将是这样的。 password l2BIBzvIeQNOs下次运行屏幕并将其分离时,当您尝试重新连接时,系统会询问密码,如下所示: pungki@mint ~ $ screen -r 5741 Screen password:输入您的密码,即“pungki123”,屏幕将再次重新连接。 执行此屏幕密码后,按“Ctrl-A”和“x”,则输出将如下所示。 Screen used by Pungki Arianto on mint. Password: Screen password:系统将要求您两次输入密码。第一个密码是您的 Linux 密码,第二个密码是您在 .screenrc 文件中输入的密码。 20. 离开屏幕终端会话有2(两种)方式离开屏幕。首先,我们使用“Ctrl-A”和“d”来分离屏幕。其次,我们可以使用 exit 命令来终止屏幕。您还可以使用“Ctrl-A”和“K”来关闭屏幕。 屏幕命令备忘单screen -S使用会话名称启动新会话。 screen -ls列出正在运行的会话/屏幕。 screen -x附加到正在运行的会话。 screen -r使用名称附加到正在运行的会话。 screen -d分离正在运行的会话。 Ctrl-a c创建新窗口。 Ctrl-a Ctrl-a更改为上次访问的活动窗口。 Ctrl-a按编号更改为窗口。 Ctrl-a '按编号或名称更改窗口。 Ctrl-a n or Ctrl-a更改到列表中的下一个窗口。 Ctrl-a p or Ctrl-a更改到列表中的上一个窗口。 Ctrl-a "请参阅窗口列表。 Ctrl-a w显示窗口栏。 Ctrl-a k杀死当前窗口。 Ctrl-a \杀死所有窗口。 Ctrl-a A重命名当前窗口。 Ctrl-a S水平分割显示。 Ctrl-a | or Ctrl-a V垂直分割显示。 Ctrl-a tab跳转到下一个显示区域。 Ctrl-a X删除当前区域。 Ctrl-a Q删除除当前区域之外的所有区域。 Ctrl-a H在屏幕会话中启用日志记录。 Ctrl-a x锁定(密码保护)显示。 这是日常使用的一些屏幕命令。 screen命令内部还有很多功能。您可以查看屏幕手册页以获取更多详细信息。 您知道 Linux 中 screen 命令的任何其他最佳示例吗?请在下面的评论中告诉我们您的观点。 |
CopyRight 2018-2019 实验室设备网 版权所有 |