如何使用Linux屏幕如何使用Linux屏幕如何使用Linux屏幕如何使用Linux屏幕
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何使用Linux屏幕

Linux screen 需要一个终端窗口来操作。

终端窗口

每个 Linux 操作系统都有一个终端窗口。终端窗口接收命令。终端窗口本身没有任何作用。任何终端窗口都需要一个 shell,它是实际执行命令的程序。与终端窗口一样,shell 也是一个命令行界面。 shell 程序的示例有 Bash、Ksh 和 Zsh。在本教程中,使用的 shell 是 Bash。

Ubuntu 是 Linux 的一个变种。在 Ubuntu 中,您可以通过单击“应用程序”菜单中名为“终端”的图标来打开终端窗口。命令被输入到这个终端窗口中,该窗口默认运行 Bash。通过单击标题栏上的恢复方形按钮可以放大或缩小窗口。单击其最小化(减号)按钮会将窗口缩小到垂直左侧任务栏。当窗口缩小到任务栏时,其外壳及其应用程序仍在运行。在这种情况下,终端窗口尚未关闭。关闭窗口,单击关闭 (x) 按钮,或在命令提示符下键入 exit 并按 Enter。

计算机上实际运行的程序称为进程。当您打开终端窗口时,一个进程应该在运行另一进程之前结束。假设您正在运行一个很长的进程。在等待漫长的进程向同一窗口显示其反馈时,并且您需要在同一窗口中进行交互,如果您想运行另一个进程,则必须打开另一个终端窗口并在那里开始新进程。这个新窗口将打开,并且可能与之前的终端窗口重叠或几乎覆盖。如果您想要第三个进程,则必须在其他两个进程尚未完成时打开第三个窗口。这就是多任务处理。

然后,您必须从一个窗口移动到另一个窗口才能与相应的进程进行交互。每次您想要使用一个进程时,您都必须将其窗口置于屏幕的最前面。当进程超过三个时,处理许多打开的终端窗口就会变得乏味。

注意:仅使用一个窗口就是一个会话。如上所述,使用多个窗口仍然称为会话。这实际上是许多会话交错的。

传统终端窗口的另一个限制是,如果您使用远程计算机启动进程(应用程序)并且物理网络发生故障,则继续运行进程的结果将不可靠。当网络恢复后,您将无法从上次中断的地方继续。

为了克服这些限制和其他问题,您可以使用屏幕。屏幕就是解决这些问题的实用程序。本文介绍如何使用 Linux 屏幕。

文章内容

  • 终端的限制

  • Screen提供的解决方案

  • 安装Linux屏幕

  • 启动 Linux 屏幕

  • 创建多个屏幕窗口

  • 杀死当前窗口

  • 连接和分离屏幕会话

  • 分割窗口

  • 结论

终端的限制

可以使用终端窗口完成多任务处理,但存在如上所述的困难。

要将进程发送到计算机的操作“后台”,您必须暂停它。当它暂停时,它处于“后台”,但并未运行。然后您可以在同一窗口中启动另一个进程。完成第二个过程后,您必须取消暂停第一个过程才能继续。这看起来像是多任务处理,但其实不是多任务处理。

假设第二个过程很长。您还必须暂停它,然后连续运行两个较短的进程,然后返回第二个进程,然后返回第一个进程。这显然是不方便且乏味的。

可以在一个窗口中运行多个进程而无需暂停任何进程。在这种情况下,您必须使用异步方案。这样,来自不同进程的反馈将在不同时间出现在终端窗口上,从而导致整体输出不一致。随着它们继续出现,生成的文本将变得很多,并开始向上滚动到终端窗口之外。您还需要向不同的进程发送更多的输入,并且您会将输入发送到错误的进程。

一个或多个终端窗口的另一个问题是:在远程计算机上运行长进程时,如果物理连接失败,结果将变得不可靠。

屏幕应用程序解决了这些问题。

Screen提供的解决方案

该屏幕允许您在同一终端窗口中打开多个窗口。窗户不重叠;一个叠加在另一个前面。屏幕还可以将其接管的终端窗口划分为较小的分区,其中每个较小的窗口将运行自己的 shell (Bash)。这样,输入和结果之间就不会混淆。屏幕还允许其窗口之间进行一些通信。这些窗口可以是叠加的形式或作为区域。

使用 Screen 实用程序,当使用远程进程时,如果物理连接失败,在连接恢复后,用户的交互仍然可以可靠地继续。

当 Linux screen 安装并运行后,screen 应用程序将 shell (Bash) 发送到其不同的窗口。

因此 screen 在交互式 shell 之间复用了一个物理终端。

安装Linux屏幕

在安装Screen之前,请检查您的Linux操作系统是否已经有Screen,如下:

$ screen --version

如果您的计算机已经有屏幕,则输出将类似于:

Screen version 4.06.02 (GNU) 23-Oct-17

如果没有,那么输出将类似于:

Command 'screen' not found . . .

应该进行这项检查,因为现在许多 Linux 操作系统都将 screen 软件包与其他 Linux 软件包一起安装。

在 Ubuntu 和 Debian 中安装 Linux Screen使用命令:

$ sudo apt install screen

当要求输入密码时,输入密码并按 Enter。然后,适当回答提出的任何问题。安装完成后,您将返回到终端命令提示符。此安装来自互联网。所以您应该连接到互联网。

在 CentOS 和 Fedora 中安装 Linux Screen

sudo yum install screen

如果读者实际上正在操作 Linux 发行版,则应该在教程继续时尝试以下命令。

启动屏幕

安装屏幕后,它不会接管终端窗口的控制。当需要时必须首先启动或调用它。如果不启动的话,不会有影响。在这种情况下,您可以像往常一样继续使用 shell。即使它启动了,您仍然会在每个窗口中使用 shell。您将较少使用屏幕命令。要启动屏幕,请键入

screen

并按 Enter 键。

按 Enter 键后,您将看到许可证信息页面。此许可证信息有两页。您可以选择查看下一页或再次按 Enter 键以真正打开屏幕。如果按 Enter 键,您将打开屏幕,然后返回命令提示符。您可以继续按空格键,直到返回命令提示符。您做出的任何决定都会使您进入第一个屏幕窗口。当您位于第一个窗口时,标题栏、窗口主体或任何地方都不会显示您位于第一个屏幕窗口。

不管怎样,您现在位于窗口 0。该窗口可以接收 shell 和 screen 命令。您不再位于终端窗口。您现在位于正在运行 shell 的屏幕窗口。对于 Ubuntu,这个 shell 是 Bash。屏幕命令的默认组合键是:

ctrl+a

也就是说,您按下 Control 键和小写字符 a。当您释放这些键时,您将必须按另一个键才能达到某种效果。为了确保您位于第一个窗口,请键入以下内容而不按 Enter 键(它甚至不允许您按 Enter 键):

ctrl+a“

即按ctrl+a,松开ctrl+a后不久再按双引号。使用英文键盘时,要获取双引号,您必须同时按下 Shift 键和带有双引号的键。如果执行此操作并使用 Bash shell,您将看到一个突出显示的栏,其中包含文本“0 bash”。

  • 按 Enter 返回第一个窗口的命令提示符。

您不再位于终端窗口。您现在位于正在运行 shell 的屏幕窗口。对于 Ubuntu,这个 shell 是 Bash。同样,没有任何迹象表明您处于 0-bash 窗口。

退出当前窗口要退出当前窗口,请键入

$ exit

并按 Enter 键。

如果这是您拥有的唯一屏幕窗口,那么您不仅会退出屏幕窗口,而且还会退出屏幕应用程序,并返回到终端窗口,仍然与屏幕窗口共享相同的窗口框架。在这种情况下,你会看到,

[screen is terminating]

在终端命令提示符之前。

创建多个屏幕窗口

请记住,按 ctrl+a 后,您必须按另一个键才能获得所需的效果。如果您不在屏幕应用程序中,请通过在终端命令提示符处键入以下内容来打开屏幕应用程序,然后按 Enter:

screen

再次按 Enter 键直接进入屏幕应用程序。同样,可能没有任何迹象表明您位于第一个屏幕窗口。通过执行以下命令再创建三个屏幕窗口,其中 c 为小写(并且不需要 Shift 键):ctrl+a cctrl+a cctrl+ac

您现在应该位于第四个窗口。您可能不应该看到任何进入任何窗口的指示。但是,要获取所有窗口的列表,请执行:

ctrl+a“

你应该看到,

0 bash
1 bash
2 bash
3 bash

这是 4 个窗口的列表。屏幕窗口从 0 开始计数。第四个窗口标签应突出显示。您可以使用键盘上的向上箭头或向下箭头键突出显示任何其他窗口标签。

  • 使用向上箭头键突出显示第二个窗口标签 (1 bash)。

  • 按 Enter 键进入第二个窗口。

您现在位于第二个窗口。您在此处键入的任何 shell 命令都不会在其他三个窗口中看到。

类型,

ls

然后按 Enter 键列出当前目录的内容。您应该看到目录列表。

切换到其他窗口切换到另一个窗口的一种方法如上所示。也就是说,在您所在的任何屏幕窗口中,执行命令“ctrl+a”,然后选择所需的窗口,然后按 Enter。另一种方法如下,您应该测试:

ctrl+a 2

这将带您进入第三个(2 bash)窗口。它将显示您在该窗口中输入的任何命令。在这种情况下,您什么也没输入。因此,您可能只会在第三个屏幕窗口的顶部看到命令提示符。您可以在此处输入您想要的任何 shell 命令。因此,要转到某个窗口,请键入 ctrl+a,然后键入窗口的编号(从零开始计数)。

要了解您所在的屏幕窗口,请重新输入,

ctrl+a“

您之前应该看到屏幕窗口列表,但这次,当前窗口将突出显示,而不是最后一个窗口。您只需按 Enter 键即可返回当前窗口。

转到下一个和上一个窗口要转到下一个窗口,请使用以下命令:

ctrl+n

如果您在最后一个窗口,您将到达第一个窗口 0-bash。要转到上一个窗口,请使用以下命令:

ctrl+p

如果您位于第一个窗口,您将到达最后一个窗口,3-bash(在本例中)。

要返回到您所在的最后一个窗口要返回到您所在的最后一个窗口,请执行:

ctrl+a ctrl+a

键入 ctrl+a,然后立即重复该序列,而不键入任何其他字符,例如 c。当您到达一个窗口时,您将看到您在该窗口中键入的命令(及其结果)。如果您没有键入任何命令,您将看到一个空白窗口,顶部有命令提示符。

退出窗口要退出窗口,请键入

exit

并按 Enter 键。要退出所有屏幕窗口,可以根据屏幕窗口的数量重复退出命令。您将回到由屏幕应用程序接管的终端窗口。当您在终端窗口时,您应该看到反馈,

[screen is terminating]

当一个窗口退出后,它的标签就不再出现在“ctrl+a”的列表中。

如果此时执行 exit 命令,您将关闭(退出)终端窗口。

终止当前窗口

窗口中通常会运行一个进程。您可以使用以下命令结束窗口及其进程,

ctrl+k

如果您这样做,窗口底部会出现一条消息,询问:

Really kill this window [y/n]

如果你真的想杀死它,请按 y。否则,按 n。该窗口的标签将不再出现在“ctrl+a”的Num-Name窗口列表中。

附加和分离屏幕会话

假设您正在使用屏幕与远程计算机一起工作。在这种情况下,据说纱窗是附着的。因此,如果您脱离屏幕会话,并且连接中断,远程计算机上的处理结果仍然可靠。当然,尽管远程计算机中的进程可能会停止——但这不是问题。

假设连接已恢复。您可以通过重新连接屏幕从上次中断的地方继续。要分离屏幕,请使用以下命令:

ctrl+ad

您应该看到一条分离的消息,并且您应该返回到终端窗口。要重新连接,请键入

screen -r

并按 Enter 键。

分割窗口

要垂直分割窗口,请使用

ctrl+a |

请注意 |特点。要将输入焦点切换到某个区域,请执行以下操作

ctrl+a 选项卡

tab是按tab键;如果您对新区域执行此操作,则光标只会在新区域中闪烁,并且不会真正准备好接收命令(键入) - 它还没有 shell。要使其准备好接收命令,请执行 ctrl+a “,然后从 Num-name 列表中选择您想要位于新区域的窗口屏幕。

要取消分割窗口,请执行以下操作

ctrl+a X

其中 X 为大写。

要水平分割窗口,请使用

ctrl+a

其中 S 为大写,您将按照垂直情况的说明移动到不同的窗口。

结论

screen 是一个可编程的窗口管理器实用程序,可进行终端多路复用。屏幕窗框的使用是一个会话。每个屏幕窗口都需要外壳来操作。许多屏幕命令都以 ctrl+a 开始,释放这两个键,然后按另一个字符。当字符为大写时,执行shift+字符。因此,每个屏幕窗口都会接收 Screen 和 shell 命令。

©2015-2025 艾丽卡 support@alaica.com