如何使用linux的screen命令

使用Linux screen命令,您可以将正在运行的终端应用程序推到后台,并在希望看到它们时将它们向前拉。它还支持分屏显示,并通过SSH连接工作,即使在断开和重新连接之后也是如此!...

使用Linux screen命令,您可以将正在运行的终端应用程序推到后台,并在希望看到它们时将它们向前拉。它还支持分屏显示,并通过SSH连接工作,即使在断开和重新连接之后也是如此!

什么是屏幕命令(the screen command)?

screen命令是一个终端多路复用器,它包含了很多选项。说它能做很多事情是轻描淡写的。手册页长达4100多行。

以下是使用screen命令的最常见情况,我们将在本文中进一步介绍这些情况:

  • 标准操作是创建一个包含shell的新窗口,运行命令,然后将窗口推到后台(称为“分离”)。当你想看到你的进程是如何进行的,你可以把窗口拉到前台(“重新连接”)并再次使用它。这对于您不希望通过关闭终端窗口意外终止的长进程来说非常有用。
  • 一旦运行了屏幕会话,就可以创建新窗口并在其中运行其他进程。您可以轻松地在窗口之间切换以监视其进度。您还可以将终端窗口拆分为垂直或水平区域,并在一个窗口中显示各种屏幕窗口。
  • 您可以连接到远程计算机、启动屏幕会话和启动进程。您可以断开与远程主机的连接,重新连接,然后进程仍将运行。
  • 您可以在两个不同的SSH连接之间共享一个屏幕会话,这样两个人就可以实时看到相同的内容。

安装屏幕

要在ubuntu上安装screen,请使用以下命令:

sudo apt-get install screen

如何使用linux的screen命令

要在Manjaro上安装screen,请使用以下命令:

sudo pacman -Sy screen

如何使用linux的screen命令

在Fedora上,键入以下内容:

sudo dnf install screen

如何使用linux的screen命令

屏幕入门

要启动屏幕,只需按如下所示键入并按Enter键:

screen

如何使用linux的screen命令

您将看到一页许可证信息。可以按空格键读取第二页,也可以按Enter键返回命令提示。

如何使用linux的screen命令

你被留在命令提示符下,似乎什么也没发生。但是,您现在正在多路复用终端仿真器中运行shell。为什么这是件好事?好吧,让我们开始一个需要很长时间才能完成的过程。我们将下载最新Linux内核的源代码,并将其重定向到名为latest的文件中_内核.zip.

为此,我们键入以下内容:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

如何使用linux的screen命令

我们的下载开始了,curl输出向我们展示了这个过程。

如何使用linux的screen命令

我们无法显示下一位的图像,因为这是一个击键序列。键入Ctrl+A,释放这些键,然后按d分离屏幕。

下载进程仍在运行,但显示下载的窗口已删除。您将返回到启动屏幕会话的终端窗口。一条消息告诉您,一个标记为23167.pts-0.howtogeek的屏幕窗口已被分离。

您需要从窗口名称开始的数字来重新附加它。如果您忘记了它,则始终可以使用-ls(list)选项(如下所示)来获取分离窗口的列表:

screen -ls

如何使用linux的screen命令

准备好后,可以使用-r(重新连接)选项和会话的编号重新连接它,如下所示:

screen -r 23167

如何使用linux的screen命令

一直在后台工作的窗口现在被带回终端窗口,就好像它从未离开过一样。

如何使用linux的screen命令

如果这是一个过程,将贯穿到它的结论,它最终将完成。如果这是一个持续的过程,你最终会想要终止它。无论哪种方式,当进程结束时,您都可以键入exit退出屏幕。或者,可以按Ctrl+A,然后按K强制关闭窗口。

键入以下命令:

exit

如何使用linux的screen命令

您将返回到以前的终端窗口,该窗口仍将显示用于重新附加窗口的命令。因为我们关闭了我们唯一分离的窗口,我们得到一个消息,屏幕正在终止。

如何使用linux的screen命令

相关:如何使用curl从Linux命令行下载文件

使用命名屏幕会话

您可以使用-S(会话名称)选项来命名屏幕会话。如果您使用一个值得记忆的名称而不是会话的数字标识,那么重新连接到会话会更方便。我们键入以下内容将会话命名为“bigfile”:

screen -S bigfile

如何使用linux的screen命令

当屏幕启动会话时,我们看到一个空白窗口,其中包含命令提示。我们将下载一个大文件,因此我们可以使用一个长期运行的过程作为示例。

我们键入以下内容:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

如何使用linux的screen命令

下载开始时,我们按Ctrl+A,然后按D分离会话。我们键入以下命令以使用-ls(list)选项和screen来查看分离会话的详细信息:

screen -ls

如何使用linux的screen命令

在数字标识符(23266)后面,我们可以看到会话的名称(bigfile)。我们键入以下内容(包括会话名称)以重新附加它:

screen -r bigfile

如何使用linux的screen命令

我们重新连接到下载窗口,看到长时间的下载仍在进行中。

如何使用linux的screen命令

下载完成后,我们键入exit关闭会话窗口。

使用多窗口屏幕

到目前为止,我们已经使用屏幕将一个进程放在一个独立的窗口中的背景中。然而,屏幕能够做的远远不止这些。接下来,我们将运行一些进程,这些进程允许我们监视计算机的某些方面。

我们键入以下命令以启动名为“监视器”的屏幕会话:

screen -S monitor

如何使用linux的screen命令

在新窗口会话的命令提示符下,我们将启动dmesg并使用-H(人类可读)和-w(等待新消息)选项。这将显示内核缓冲区消息;新消息出现时将出现。

我们键入以下内容:

dmesg -H -w

如何使用linux的screen命令

将显示现有消息。我们没有返回到命令提示符,因为dmseg正在等待新消息,并将在消息到达时显示它们。

如何使用linux的screen命令

相关:如何在Linux上使用dmesg命令

我们想运行另一个应用程序,所以我们需要一个新的屏幕窗口。我们按Ctrl+A,然后按C来创建一个新窗口。我们将使用watch来反复运行vmstat,因此我们可以得到计算机上虚拟内存使用情况的频繁更新显示。

在新命令提示符下,键入以下命令:

watch vmstat

如何使用linux的screen命令

vmstat输出将显示并每两秒钟更新一次。

如何使用linux的screen命令

我们的两个进程正在运行。要在屏幕窗口之间跳,请按Ctrl+A和窗口的数量。我们创建的第一个是窗口0(0),下一个是窗口1,依此类推。要跳到第一个窗口(dmesg窗口),我们按Ctrl+A和0。

如何使用linux的screen命令

如果我们按Ctrl+A和1,它会将我们带回vmstat窗口。

如何使用linux的screen命令

真漂亮!我们可以按Ctrl+A,然后按D从会话中分离;稍后可以重新连接。两个会话仍将运行。同样,要在窗口之间切换,请按Ctrl+A和要切换到的窗口的编号(0或1)。

让我们进入下一步,在一个窗口中查看两个屏幕。当您这样做时,您将把终端窗口拉伸到一个使此步骤有用的大小。我们的例子受限于屏幕截图的大小,所以我们的窗口看起来有点狭窄。

为此,我们按Ctrl+A,然后按Shift+S(需要大写“S”)。

窗口分成两个“区域”

如何使用linux的screen命令

顶部区域仍然显示vmstat,底部区域为空。光标在下面的屏幕截图中高亮显示。要将其移动到较低的区域,请按Ctrl+A,然后按Tab。

如何使用linux的screen命令

光标移到较低的区域,实际上这只是一个空白。它不是一个shell,所以我们不能在其中键入任何内容。为了得到一个有用的显示,我们按Ctrl+a,然后按“0”在这个区域显示dmesg窗口。

如何使用linux的screen命令

这将在一个分割窗口中提供两个实时输出。如果按Ctrl+A和D来分离窗口,然后重新连接它,则会丢失“拆分窗格”视图。但是,我们可以使用以下键盘快捷键还原它:

  • Ctrl+A,S:水平拆分窗口。
  • Ctrl+A,Tab:移动到较低的区域。
  • Ctrl+A,0:在下方区域显示窗口0。

我们可以更进一步。现在我们将垂直拆分下窗格,并向显示中添加第三个进程。当光标位于下方区域时,我们按Ctrl+A和C来创建一个包含shell的新窗口。下面的区域显示新窗口并给出命令提示。

如何使用linux的screen命令

接下来,我们运行df命令来检查文件系统的使用情况:

df

如何使用linux的screen命令

当我们看到df运行时,我们点击Ctrl+A和管道字符(|)。这将垂直分割较低的区域。我们按Ctrl+A和Tab移动到新区域。接下来,按Ctrl+A和0显示dmesg窗口。

如何使用linux的screen命令

您也可以从区域移动到区域,并添加更多垂直或水平拆分。以下是一些更有用的键组合:

  • Ctrl+A:在当前区域和以前区域之间来回跳。
  • Ctrl+A,Q:关闭除当前区域之外的所有区域。
  • Ctrl+A,X:关闭当前区域。

通过ssh使用screen

使用screen,您可以启动一个窗口会话,将其分离,使其仍在后台运行,注销或重新登录,然后重新连接会话。

让我们用SSH命令从另一台计算机建立一个SSH连接。我们必须提供要连接的帐户的名称和远程计算机的地址。

在我们的示例中,我们键入以下内容:

ssh [email protected]

如何使用linux的screen命令

在远程计算机上进行身份验证并登录后,我们键入以下命令以启动名为“ssh geek”的屏幕会话:

screen -S ssh-geek

如何使用linux的screen命令

出于演示目的,我们将在屏幕窗口中运行top,但您可以启动任何长时间运行或无休止的进程。

我们键入以下内容:

top

如何使用linux的screen命令

一旦top在窗口中运行,我们按Ctrl+A,然后按D来分离窗口。

如何使用linux的screen命令

我们回到原来的远程终端窗口。

如何使用linux的screen命令

如果我们键入exit,如下所示,它将断开SSH会话,然后我们回到本地计算机上:

exit

如何使用linux的screen命令

我们键入以下内容以重新连接:

ssh [email protected]

如何使用linux的screen命令

重新连接并登录后,可以键入以下内容重新连接屏幕会话:

screen -r ssh-geek

如何使用linux的screen命令

我们现在重新连接到仍在运行的top实例。

如何使用linux的screen命令

如果你想在一台机器上启动一个过程,然后在你离开另一台机器的地方,这是非常好的。

相关:如何从Linux Shell创建和安装SSH密钥

共享屏幕会话

您还可以使用屏幕会话来允许两个人查看同一个窗口并与之交互。假设有人在他的电脑上运行Fedora想要连接到我们的Ubuntu服务器。

他会键入以下内容:

ssh [email protected]

如何使用linux的screen命令

连接之后,他使用-s(会话名称)选项启动一个名为“ssh geek”的屏幕会话。他还使用-d(分离)和-m(强制创建)选项来创建已经分离的新屏幕会话。

他键入以下内容:

screen -d -m -S ssh-geek

如何使用linux的screen命令

他使用-X(多屏幕模式)选项连接会话,键入以下内容:

screen -X ssh-geek

如何使用linux的screen命令

在Manjaro计算机上,另一个人使用相同的帐户凭据连接到Ubuntu计算机,如下所示:

ssh [email protected]

如何使用linux的screen命令

连接后,她键入screen命令并使用-X(多屏幕模式)选项加入同一个窗口会话,如下所示:

screen -X ssh-geek

如何使用linux的screen命令

现在,任何一个人键入的内容,另一个人都会看到。例如,当一个人发出date命令时,他们都会看到它的输入和输出。

如何使用linux的screen命令

如何使用linux的screen命令

两人现在共享一个运行在远程Ubuntu计算机上的屏幕会话。


对于一款1987年第一次见到曙光的软件来说,screen仍然具有很好的生产力冲击力。熟悉它将是一段值得花费的时间!

相关:您应该知道的37条重要的Linux命令

  • 发表于 2021-04-02 11:06
  • 阅读 ( 178 )
  • 分类:互联网

你可能感兴趣的文章

从命令行关闭linux计算机的5种方法

... 让我们依次查看这些命令,并检查如何以及何时使用这些命令。 ...

  • 发布于 2021-03-14 17:35
  • 阅读 ( 225 )

如何在linux上安装和使用powershell

... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 308 )

如何在windows10上获得linux bash shell

... 如何在windows10上安装linux bash shell ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 288 )

linux下如何重命名文件

要在Linux中重命名文件吗?如果您知道如何在Windows、macOS或Chrome操作系统中完成这项工作,那么您就知道如何在这里完成这项工作。在大多数版本的Linux上,您只需右键单击一个文件并选择Rename选项。 ...

  • 发布于 2021-03-22 02:48
  • 阅读 ( 276 )

如何在linux中添加用户

想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 334 )

如何使用mv命令移动linux文件

虽然您可能已经知道如何使用GUI文件浏览器在Linux中移动文件,但您可能想知道终端中是否有move命令允许您将文件快速移动到不同的目录。mv命令就是您想要的命令,它的简单语法和一些可选的安全标志很容易使用。 ...

  • 发布于 2021-03-28 17:18
  • 阅读 ( 243 )

如何在linux上使用tmux(以及为什么它比screen更好)

...。 这一次,我们将专注于tmux。接下来,我们将介绍screen如何处理相同的特性或功能。 关于屏幕,只有一件事让我们恼火。我们到了以后再谈,看看tmux是否更好。 相关:如何使用Linux的screen命令 安装tmux 虽然screen通常在流行的Li...

  • 发布于 2021-04-02 05:16
  • 阅读 ( 233 )

如何使用linux的screen命令

...窗口推到后台(称为“分离”)。当你想看到你的进程是如何进行的,你可以把窗口拉到前台(“重新连接”)并再次使用它。这对于您不希望通过关闭终端窗口意外终止的长进程来说非常有用。 一旦运行了屏幕会话,就可以...

  • 发布于 2021-04-02 11:06
  • 阅读 ( 178 )

如何检查linux上安装了哪个gpu

需要识别Linux计算机中的图形处理单元(GPU)吗?下面是如何从命令行和GNOME中识别图形卡。 第一步 你可能去过那里。你被征召来为一个非技术性的亲戚或同事提供支持,有些事情告诉你这不是无痛的。不过,你还是加入了!...

  • 发布于 2021-04-02 16:40
  • 阅读 ( 242 )

如何使用linux type命令

...ell函数、内置命令或保留字。使用type可以发现Linux命令是如何执行的,并更好地理解系统。 照我的吩咐做 当我们打开一个终端窗口并开始向我们的Linux计算机发出命令时,我们很少停下来思考操作系统中的哪些软件组件正在对...

  • 发布于 2021-04-03 10:23
  • 阅读 ( 199 )
苏大憨
苏大憨

0 篇文章

相关推荐