乐趣区

关于linux:如何使用screen命令

大家好,我是良许。

很多时候,咱们都须要执行一些须要很长时间的工作。如果这时候,你的网络连接忽然断开了,那么你之前所做的所有工作可能都会失落,所做的工作可能都要重做一遍,这会节约咱们许多的工夫,十分影响咱们的工作。那么有没有方法能够解决这个问题呢?

答案是必定的,那就是应用 screen 命令。screen 命令容许用户在一个窗口内应用多个终端会话,能够断开连接,也能够从新连贯已断开连接的会话。每个会话都能够复原连贯,这样就算会话断开了,用户也不用放心数据失落,这正好解决了咱们的问题。

因而,良许想与大家分享 Screen 这个实用工具的一些性能以及用法:

装置 Screen

当初许多的 Linux 发行版通常都预装了 Screen。通过运行以下命令,能够查看零碎是否装置了 Screen:

$ screen --version
Screen version 4.06.02 (GNU) 23-Oct-17 

如果你的零碎并未装置 Screen,则能够执行以下命令来装置:

$ sudo apt install screen

启动 Screen 会话

想要启动一个 Screen 会话,只需输出以下命令:

$ screen

输出 screen 命令后,你会看到一个布满版权信息的界面,你只需按回车或者空格键就能够跳过这个界面。跳过之后,你就能够看到终端界面了。这个终端和原来的终端并没有什么不同,你一样能够浏览文件夹,关上文件,在原来的终端中能做到的事件,它也能够做到。

你也能够在启动 Screen 会话时,应用 -S 参数给会话起名字。例如,我想启动一个叫 alvin 的 Screen 会话:

$ screen -S alvin

当你启动了不止一个 Screen 会话时,这能够用来辨别其余 Screen 会话。

进入 Screen 终端后,按 Ctrl a+? 快捷键,能够查看 Screen 所附带的所有命令:

拆散与从新连贯 Screen 会话

如果你要更新零碎,你输出更新命令后,是须要期待很长时间才更新结束的。这时,如果你没用 screen 命令,一旦你的网络连接断开了,那么更新就会被打断,你就必须要从新开始更新。

Screen 会话的拆散性能能够解决这个问题。你能够进入 Screen 终端里执行更新命令,而后输出会话拆散快捷键 Ctrl a+d , 你会看到以下提示信息:

这就示意你曾经胜利从 Screen 会话中分离出来并回到原来的 Shell 会话中了。这时,Screen 会话会持续留在后盾执行更新工作。而且无论是网络断开连接,还是敞开原来的 Shell 会话,它都不会受到影响。

当然,如果你来不及按会话拆散快捷键网络就断开了,Screen 会话也不会敞开,它一样会持续留在后盾执行更新工作。

如果你想从新连贯到已拆散的 Screen 会话,以查看更新过程,只需执行以下命令:

$ screen -r

须要留神的是,该命令只实用于以后终端只启动了一个 Screen 会话的状况。

嵌套 Screen 会话

嵌套 Screen 会话,顾名思义,就是 Screen 会话中的 Screen 会话,是实现用户在一个窗口中应用多个终端的办法之一。

想要启动一个嵌套 Screen 会话很简略,你只须要在 Screen 终端再次输出 screen 命令,或者按 Ctrl a+c 快捷键,这会在你原来的 Screen 会话中再启动一个 Screen 会话,而原来的 Screen 会话则会在后盾放弃流动。

例如,你运行了 top 命令来监控零碎的 CPU 的应用状况:

$ top

而你既不想关掉这个 top 过程,又想同时做其余的工作,那么你就能够应用 Ctrl a+c 快捷键来启动一个新的 Screen 会话,这样,你既能够放弃 top 命令在后盾运行,又能够去执行其余的工作。

而如果你想切换回执行 top 命令的 Screen 会话,能够应用快捷键 Ctrl a+n(切换至下一个 Screen 会话)或者 Ctrl a+p(切换至上一个 Screen 会话)进行切换。

拆散并启动新的 Screen 会话

从 Screen 会话中分离出来再启动新的 Screen 会话,也能够实现用户在一个窗口中应用多个终端。

例如,你启动一个 Screen 会话,而后输出 df -h 来查看硬盘的应用状况:

$ df -h

而后你能够按 Ctrl a+d 快捷键从 Screen 会话中分离出来,回到原来的终端。这时你就能够再次输出 screen 命令启动一个新的 Screen 会话来执行其余的工作。

如果你想从新连贯回运行 df -h 命令的 Screen 会话,则须要先从新的 Screen 会话中分离出来,而后尝试输出 screen -r 命令。这时,因为你并行启动了多个 Screen 会话,然而 screen 命令并不知道你想要从新连贯到哪个会话中,因而,你会看到以下提示信息:

从图中能够看到,每个 Screen 会话都有本人的 ID(4352 与 4294)以及本人的名字(pts-0.lxlinux)。这里能够看到两个会话的名字都是 pts-0.lxlinux,那是因为我启动 Screen 会话的时候,没有指定名字,因而它们都以默认的名字作为本人的名字。

想要从新连贯到运行 df -h 命令的 Screen 会话,你只需在 screen -r 命令前面再加上会话的 ID 就能够了,像这样:

$ screen -r 4352

当然,如果在启动 Screen 会话时,你给会话指定了举世无双的名字,那么你也能够通过会话的名字来指定从新连贯到哪个会话,例如,从新连贯到名字为 alvin 的会话:

$ screen -r alvin

如果你并不知道 Screen 会话的 ID 以及名字,你也能够通过以下命令来查看:

$ screen -ls

敞开 Screen 会话

要敞开 Screen 会话很简略,就和敞开平时的会话一样,你能够应用 Ctrl d 快捷键,也能够输出 exit 命令敞开:

$ exit

善用 Screen

在工作中,咱们总会遇到须要执行较长时间能力实现的工作,如果在执行这些工作的过程中,遇到网络中断,那将会导致数据失落以及工夫的节约,这将重大影响咱们的工作。Screen 容许会话断开后过程在后盾持续运行,且反对从断点复原过程,这很好地解决了这问题。

而且 screen 命令还使咱们能够利用一个窗口来同时执行多个工作,这对咱们工作是十分有用的。因而,为了防止数据失落以及节省时间,咱们应该多用 screen 命令。最初,如果你还对 screen 命令有疑难,请留言通知我呗!


最初,最近很多小伙伴找我要 Linux 学习路线图 ,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版