当前位置: 首页 > Linux

screen指令的使用方法

时间:2023-04-06 19:48:16 Linux

大家好,我是良旭。很多时候,我们都需要执行一些需要很长时间的任务。如果此时你的网络连接突然断开,那么你之前所做的工作可能会全部丢失,而你已经完成的工作可能又要重做,这样会浪费我们大量的时间,极大地影响我们的工作。那么有没有办法解决这个问题呢?答案是肯定的,那就是使用screen命令。screen命令允许用户在单个窗口中使用多个终端会话,并且可以断开和重新连接断开的会话。每个会话都可以恢复连接,这样即使会话断开,用户也不用担心数据丢失,正好解决了我们的问题。因此,良旭想和大家分享一下Screen这个实用工具的一些功能和使用方法:安装Screen现在很多Linux发行版都预装了Screen。您可以通过运行以下命令检查您的系统上是否安装了Screen:$screen--versionScreenversion4.06.02(GNU)23-Oct-17如果您的系统上没有安装Screen,您可以执行以下命令进行安装它:$sudoaptinstallscreenStartaScreensession要启动一个Screen会话,只需输入以下命令:$screen输入screen命令后,你会看到一个全是版权信息的界面,你只需要按回车或空格键即可跳过这个界面。跳过后可以看到终端界面。此终端与原始终端没有区别。您还可以浏览文件夹和打开文件。它也可以做您在原始终端中可以做的事情。您还可以在启动Screen会话时使用-S参数为会话命名。例如,我想启动一个名为alvin的Screen会话:$screen-Salvin当启动多个Screen会话时,这可以用来区分其他Screen会话。进入Screen终端后,按Ctrla+?查看所有附加到Screen的命令:断开并重新连接Screen会话如果要更新系统,输入更新命令后,需要很长时间才能完成更新。此时如果不使用screen命令,一旦网络连接断开,更新就会中断,需要重新开始更新。Screen会话的detach特性可以解决这个问题。可以进入Screen终端执行更新命令,然后输入会话分离快捷键Ctrla+d,会看到如下提示信息:这表示你已经成功脱离Screen会话,回到原来的状态外壳会话。此时Screen会话会在后台继续执行更新任务。并且它不会受到网络断开或关闭原始shell会话的影响。当然,如果在你按下会话分离快捷键之前网络已经断开,Screen会话不会关闭,它会继续留在后台执行更新任务。如果想重新连接到detachedScreensession查看更新过程,执行如下命令即可:$screen-r需要注意的是,该命令只适用于当前终端只启动一个Screensession的情况。NestedScreensessionNestedScreensession,顾名思义,就是Screen会话中的Screen会话,是让用户在一个窗口中使用多个终端的方法之一。启动一个嵌套的Screen会话非常简单,只需要在Screen终端中再次输入screen命令,或者按快捷键Ctrla+c,就会在你原来的Screen会话中启动另一个Screen会话,并且原始屏幕会话在后台保持活动状态。比如你运行top命令来监控系统的CPU使用率:$top而你又不想关闭top进程,又想同时做其他任务,那么可以使用快捷方式键Ctrla+c启动一个新的Screen会话,因此您可以在执行其他任务时让top命令在后台运行。而如果想切换回执行top命令的Screen会话,可以使用快捷键Ctrla+n(切换到下一个Screen会话)或者Ctrla+p(切换到上一个Screen会话)来切换.分离并启动新的屏幕会话从屏幕会话分离并启动新的屏幕会话还使用户能够在一个窗口中使用多个终端。比如你启动一个Screen会话,然后输入df-h查看硬盘的使用情况:$df-h然后你可以按Ctrla+d脱离Screen会话,回到原来的终端。此时可以再次输入screen命令,启动一个新的Screen会话来执行其他任务。如果你想重新连接回运行df-h命令的Screen会话,你需要先从新的Screen会话分离,然后尝试输入screen-r命令。这时,因为你已经并行启动了多个Screen会话,但是screen命令并不知道你要重新连接到哪个会话,所以你会看到如下提示:从图中可以看出,每个Screen会话都有它自己的ID(4352和4294)和它自己的名字(pts-0.lxlinux)。这里可以看到两个session的名字都是pts-0.lxlinux,那是因为我在启动Screensession的时候没有指定名字,所以都是使用默认的名字作为自己的名字。要重新连接到运行df-h命令的Screen会话,你只需要在screen-r命令后添加会话ID,就像这样:$screen-r4352当然,如果你启动Screen会话,你已经指定了一个会话的唯一名称,因此您还可以通过会话的名称指定要重新连接到哪个会话,例如,重新连接到名为alvin的会话:$screen-ralvin如果您不知道Screen会话的ID并且$screen-ls关闭Screensession关闭Screensession很简单,就像关闭一个普通的session一样,可以使用Ctrld快捷键,或者输入退出命令关闭:$Exit善用Screen在我们的工作中,总是会遇到需要很长时间才能完成的任务。如果在执行这些任务的过程中网络中断,将导致数据丢失和时间浪费。严重影响我们的工作。Screen允许会话断开后进程在后台继续运行,并且支持断点续传,很好的解决了这个问题。而且screen命令还可以让我们使用一个窗口同时执行多个任务,这对我们的工作非常有用。因此,为了避免数据丢失和节省时间,我们应该多使用screen命令。最后,如果大家对screen命令还有什么疑问,欢迎留言告诉我!最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站