☞ 程序员进阶架构师必备资源免费送 ☜

您是否遇到过在远程计算机上执行长时间运行任务的情况,然后连接突然断开, SSH 会话终止了并且丢失正在进行的工作呢。幸运的是,有一个实用程序叫做 screen 允许我们恢复我们的会话。

介绍

screen 或 GNU screen 是终端多路复用器。换句话说,这意味着您可以启动 screen 会话,然后在该会话中打开任意数量的窗口(虚拟终端)。即使断开连接,当其窗口不可见时,在 screen 上运行的进程将继续运行。

安装 Linux screen

现在大多数 Linux 发行版上已经预装了 screen 包。您可以通过键入以下内容来检查系统上是否安装了它:linuxidc@linuxidc:~/www.linuxidc.com$ screen --versionScreen version 4.06.02 (GNU) 23-Oct-17如果您的系统上没有安装 screen ,则可以使用发行版的软件包管理器轻松安装。

在 Ubuntu 和 Debian 上安装 screen

linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt install screen

在 CentOS 和 Fedora 上安装 screen

linuxidc@linuxidc:~/www.linuxidc.com$ sudo yum install screen

启动 Linux screen

要启动 screen 会话,只需在控制台键入 screen :

screen

这将打开一个 screen 会话,创建一个新窗口并在该窗口中启动一个 shell 。现在您已经打开了一个 screen 会话,您可以通过输入以下命令获取命令列表:Ctrl+a ?

命名会话

运行多个 screen 会话时,命名会话非常有用。要创建命名会话,请使用以下参数运行 screen 命令:

screen -S session_name

选择描述性有意义的会话名称总是一个好主意。

使用 Linux Screen 窗口

默认情况下,当您启动新的 screen 会话时,它会创建一个包含 shell 的单个窗口。您可以在 screen 会话中拥有多个窗口。要创建一个有 shell 的新窗口请键入 Ctrl+a c ,将为其分配范围 0...9 中的第一个可用编号。以下是一些用于管理 Linux Screen 窗口 的最常用命令:

  • Ctrl+a c 创建一个新窗口(带shell)
  • Ctrl+a " 列出所有窗口
  • Ctrl+a 0 切换到窗口 0(按编号)
  • Ctrl+a A 重命名当前窗口
  • Ctrl+a S 将当前区域水平分割为两个区域
  • Ctrl+a | 将当前区域垂直分成两个区域
  • Ctrl+a tab 将输入焦点切换到下一个区域
  • Ctrl+a Ctrl+a 在当前和之前的区域之间切换
  • Ctrl+a Q 关闭除当前区域之外其他所有区域
  • Ctrl+a X 关闭当前区域

从 Linux screen 会话中分离出来

您可以通过键入以下内容随时从 screen 会话中分离:Ctrl+a d从会话中分离后,在 screen 会话中运行的程序将继续运行。

重新连接到 Linux screen

要恢复 screen 会话,请使用以下命令:

screen -r

如果您的计算机上运行了多个 screen 会话,则需要在 r 后附加 screen 会话 ID 。要查找 screen 会话 ID,可以使用如下命令列出当前运行的列表:linuxidc@linuxidc:~/www.linuxidc.com$ screen -lsThere are screens on:

15174.session_name      (08/13/2019 09:19:34 PM)        (Attached)12475.pts-0.linuxidc    (08/13/2019 09:16:31 PM)        (Attached)12230.pts-0.linuxidc    (08/13/2019 09:15:42 PM)        (Detached)

3 Sockets in /run/screen/S-linuxidc.如果要还原 12475.pts-0 ,请键入以下命令:linuxidc@linuxidc:~/www.linuxidc.com$ screen -r 12475There is a screen on:

12475.pts-0.linuxidc    (08/13/2019 09:16:32 PM)        (Attached)

There is no screen to be resumed matching 12475.

自定义 Linux screen

如果 /etc/screenrc 和 ~/.screenrc 文件存在,当 screen 启动时从中读取它的配置参数。我们可以通过 .screenrc 文件根据我们自己的偏好修改默认 screen 设置。以下是一个示例 ~/.screenrc配置, 有自定义状态行和几个附加选项:〜/.screenrc

# 关闭欢迎信息startup_message off

# 禁用视觉铃声vbell off

# 将回滚缓冲区设置为10000defscrollback 10000

# 自定义状态行hardstatus alwayslastlinehardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

基本的 Linux screen 用法

以下是开始使用 screen 的最基本步骤:

  1. 在命令提示符下,键入 screen 。
  2. 运行所需的程序。
  3. 使用键序列 Ctrl-a + Ctrl-d 从 screen 会话中分离。
  4. 键入即可重新连接到 screen 会话 screen -r 。

结论

在本教程中,您学习了如何使用 Gnu Screen 。现在,您可以开始使用 Screen 实用程序,从单个会话创建多个 screen 窗口,在窗口之间导航,分离和恢复 screen 会话,并使用 .screenrc 文件个性化您的 screen 终端。

在 screen 用户手册页面上还有很多关于 Gnu screen 的知识。

-------------------------知乎:良许LinuxB站:程序员良许抖音:良许微博:良许Linux

打卡送书活动

活动介绍:打卡送书活动暂停通知

赞助商:清华大学出版社

本书从原理到实践,循序渐进地讲述了使用Python开发网络爬虫的核心技术。全书从逻辑上可分为基础篇、实战篇和爬虫框架篇三部分。

本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!

推荐阅读:

看示例学awk

Linux的inode的理解

github 项目搜索技巧-让你更高效精准地搜索项目

5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「1024」,即可免费获取!!

ui分离的进程 如何查找窗口句柄_如何使用 Linux screen相关推荐

  1. linux按目录名查找目录_如何在Linux中查找目录?

    linux按目录名查找目录 Linux provides different ways to find directories. Here we will look at how to find di ...

  2. 如何恢复隐藏的窗口 已知进程名称_如何判断Linux系统是否被黑客入侵?可以用这种方法...

    恶意软件有时会使用Linux内核进程伪装来隐藏其运行时,让我们研究一下如何使用这种策略来揭露Linux恶意软件. Linux内核进程伪装了什么? 在Linux上,内核创建了许多线程来帮助完成系统任务, ...

  3. react获取id_解决React应用界面开发常见痛点(一)业务逻辑与UI分离

    前言:本系列是针对于React在界面开发痛点的一些解决方案,只是React应用中偏向展示的一环 构建一个业务与UI分离的react应用 本篇是基于HOC方案并未使用Hooks 业务逻辑与UI 在编写一 ...

  4. cb32a_c++_STL_算法_查找算法_(5)adjacent_find

    cb32a_c++_STL_算法_查找算法_(5)adjacent_find adjacent_find(b,e),b,begin(),e,end() adjacent_find(b,e,p),p-p ...

  5. 通过Windows进程ID获取窗口句柄

    通过Windows进程ID获取窗口句柄 方法一:使用EnumWindows的方式 ///< 枚举窗口参数 typedef struct { HWND hwndWindow; // 窗口句柄 DW ...

  6. C++ 遍历寻找指定进程,通过进程ID获取窗口句柄,以及HWND与CWnd之间转换

    问题: 如题,如何遍历寻找指定进程?如何通过进程ID获取窗口句柄?HWND与CWnd之间是如何转换的? 解决: 1.HWND与CWnd之间的转换:使用 GetSafeHwnd 和 CWnd::From ...

  7. java 进程假死原因_分析java进程假死状况

    1 引言 1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照. 1.2编写背景 最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近 ...

  8. linux temp文件夹在哪_全方位剖析 Linux 操作系统,太全了

    Linux 简介 UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线.为什么要说 UNIX,那是因为 Linux 是由 UNIX 发展而来的,UNIX 是由程序员设计,它的主要服务对象也是 ...

  9. 1进程 ppid_杀死僵尸进程,你需要这些神奇的Linux命令行

    Linux高手,其实都是玩儿命令行很熟练的人. 命令行的学习捷径 Linux命令有许多强大的功能:从简单的磁盘操作.文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行. 在Linux的 ...

  10. 杀死僵尸进程,需要这些神奇高效的 Linux 命令

    一.五大系统运维状态 对运维来说,查看系统运行状态是最基础的工作之一. 要了解CPU.内存.进程.磁盘.网络,这五大运维系统的运行状态,需要掌握的运维命令有ls.ps.free.top.uptime. ...

最新文章

  1. 【学习总结】数学-欧拉函数
  2. 获取某个时间开始 之后的 N次[周几,周几]
  3. 视觉工程师面试指南_选择正确视觉效果的终极指南
  4. css中图片有缩放和转动效果
  5. 布尔类型(boolean/Boolean)自动生成的get方法需要注意的小细节
  6. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
  7. CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率
  8. 使用WPF的C#中的矩阵样式雨
  9. 直接插入法(C语言版本)
  10. 数据保护与云不离不弃,云中护航渐成行业主旋律
  11. manga camera android,SMAAASH! Camera [Manga Photo]
  12. Webots学习笔记(四)---舵轮模型
  13. 从一维cutting问题看列生成算法
  14. LTE与VOLTE基础知识(1)
  15. 罗斯公司理财第11版笔记和课后习题答案
  16. 昆山计算机等级考试考点,广东计算机等级考试报名时间和地点统计
  17. 如何从公网访问局域网WEB服务器
  18. word无法打开请去应用商店_Microsoft Office安卓版正式上线,word、Excel、PPT全都有...
  19. RecycledView三种Linear,Grid,Staggered
  20. 有史以来最牛的一张程序员职业路线图!

热门文章

  1. 补发 四人小组 组队简单说明
  2. HDU POJ 1015 Jury Compromise(陪审团的人选,DP)
  3. View组件之各xml属性
  4. 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息
  5. gridview中手工排序
  6. opencv 学习之 亮度检测
  7. 汇编语言数据段查找ASCII码并回显
  8. 从零基础入门Tensorflow2.0 ----一、2. 实战回归模型
  9. Homestead安装 PHP Redis 扩展
  10. 找出单身狗java_Java单身狗 —— 单例模式