如何在 Ubuntu 上使用屏幕命令
很多时候我们需要做一些需要很长时间处理和执行的任务。突然,连接断开,屏幕冻结,您所做的所有工作都丢失了。这是一个至关重要的问题,因为需要在截止日期前完成或需要丢失数据的人现在必须重做所有事情。
这就是名为Screen的实用程序的用武之地。 Screen 允许用户在单个窗口内使用多个终端会话,这些会话可以断开连接,然后从会话断开的位置重新连接。这是非常有益的,因为失去连接的危险已经消失,并且每个会话都可以恢复。今天,我们将了解如何使用 Screen 实用程序,我们还将了解 Screen 的一些功能。
安装屏幕
如今,许多 Linux 发行版中通常都预装了 Screen。通过在终端中运行以下命令,可以轻松检查是否安装了 Screen 实用程序:
如果您的计算机上没有安装 screen,则必须运行以下命令来安装此实用程序:
屏幕用途及特点
1) 启动画面
要启动 Screen,请打开终端并输入以下命令:
输入此命令后,您将看到版权屏幕,要求您按 Enter 并继续。这样做,您将被带回航站楼,而不会发生任何事情。终端似乎是相同的。您可以进入文件夹,查看它们,打开文件并执行您之前已经做过的所有操作。那么,发生了什么变化呢?
虽然看起来没有发生任何变化,但在输入 Screen 命令后,我们确实最终打开了一个 screen 会话。要获取 Screen 附带的所有命令,请先按 Ctrl + a ,然后按 ? (不带引号的问号)。
2) 拆卸和重新连接屏幕
现在,让我们假设我们想要更新我们的系统。我们在终端中输入更新命令并等待其完成。回到之前,如果我们的互联网连接丢失或会话断开,那么我们的更新过程将停止,我们将不得不重新开始。为了避免这种情况,我们将使用 Screen 的分离命令。为此,请输入 Ctrl + a,然后输入:d。您将得到类似于下图所示的输出:
现在,您可以同时处理多项任务并执行您想做的其他任务。升级仍在继续运行,但仅在后台运行。
如果您的连接偶然断开,或者您只是想重新连接以查看其进度,则只需在终端中输入以下命令:
这将重新连接到屏幕,您将能够直接看到再次发生的更新。即使您的连接断开或会话终止,您也可以通过此命令重新连接到后台发生的进程。
3) 多屏幕
如前所述,Screen 允许您在单个窗口内连接多个终端会话。 Screen 允许您通过两种方式执行此操作:嵌套屏幕以及分离并运行另一个屏幕。
a) 嵌套屏幕
要创建嵌套屏幕(就像在屏幕中的屏幕一样),您可以简单地输入 Screen 命令或使用 Ctrl + a ,然后使用: c。这将从您当前的位置创建一个新窗口。同时,您的旧窗口仍将在后台处于活动状态。
例如,在我的启动窗口中,我正在运行 top 命令,可以使用以下代码访问该命令:
现在,我想做一些其他工作,同时保持我的顶部在后台打开。为此,我首先选择 Ctrl + a,然后单击:c。这样,会打开一个新窗口,现在我可以执行其他任务。
为了在屏幕之间切换,我可以使用以下命令:Ctrl + a,然后是: n,这会将我们移动到下一个窗口; Ctrl + a 后跟:p,切换到上一个窗口。每个进程将继续运行,直到您手动关闭窗口。
如果您想返回到顶级进程运行的窗口,只需输入上述两个命令中的任何一个即可。我选择了后者,所以我输入了 Ctrl + a ,然后输入: n。
瞧,我们回到了顶部屏幕。
b)分离并运行另一个屏幕
同时使用多个屏幕的另一种方法是分离第一个屏幕并在同一终端上运行另一个屏幕。让我们通过一个例子来看一下这种情况。
首先,我们输入 Screen 命令来启动会话。然后,比如说,我们想查看内部硬盘驱动器使用了多少内存。为此,请在终端中输入以下命令:
按Ctrl + a,然后按d,分离此窗口。将看到如下图所示的输出。
现在,我们将运行 screen 命令来打开一个新会话并开始执行一些任务。我将简单地打开一些文件夹并检查它们的目录以获取信息。
让我们也分离这个窗口。
现在,我们必须重新连接到第一个窗口,我们在该窗口上查看内存数据。但是当我们输入重新附加命令时,我们会看到类似这样的内容:
当会话中有多个窗口并且您想要重新附加到其中任何一个窗口时,您需要知道每个窗口的屏幕 ID。要获取屏幕 ID 列表,请在终端中输入以下命令:
这向我们显示有两个窗口及其 ID(14145 和 13774),它们似乎都已分离。因此,如果我们的会话中有多个窗口并且我们希望重新附加到某个窗口,则需要在终端中输入以下命令:
如果我们希望重新附加第一个窗口,那么我们将输入:
瞧,我们回到了第一个屏幕。
4) 关闭屏幕
只需在终端中输入 exit 命令即可关闭 Screens 实用程序,如下所示:
为什么 Screen 命令如此有用?
我们都经历过互联网连接失败或会话终止,导致关键时间或数据丢失的情况。 Screen 通过允许进程继续在后台运行来解决此问题。如果会话确实终止,则 Screen 允许用户从确切的断开连接点恢复进程。这是非常有益的,因为它允许需要大量时间的进程在后台运行,同时仍然执行其他工作。