GNU Screen 是一个终端多路复用器(窗口管理器)。顾名思义,Screen 可以在多个交互式 shell 之间复用物理终端,因此我们可以在每个终端会话中执行不同的任务。所有的 Screen 会话都完全独立地运行程序。因此,即使会话意外关闭或断开连接,在 Screen 会话内运行的程序或进程也将继续运行。例如,当通过 SSH 升级 Ubuntu 服务器时,screen 命令将继续运行升级过程,以防万一 SSH 会话因任何原因而终止。

GNU Screen 允许我们轻松创建多个 Screen 会话,在不同会话之间切换,在会话之间复制文本,随时连上或脱离会话等等。它是每个 Linux 管理员应该在必要时学习和使用的重要命令行工具之一。在本简要指南中,我们将看到 screen 命令的基本用法以及在 Linux 中的示例。

安装 GNU Screen

GNU Screen 在大多数 Linux 操作系统的默认存储库中都可用。

要在 Arch Linux 上安装 GNU Screen,请运行:

$ sudo pacman -S screen
复制代码

在 Debian、Ubuntu、Linux Mint 上:

$ sudo apt-get install screen
复制代码

在 Fedora 上:

$ sudo dnf install screen
复制代码

在 RHEL、CentOS 上:

$ sudo yum install screen
复制代码

在 SUSE/openSUSE 上:

$ sudo zypper install screen
复制代码

让我们继续看一些 screen 命令示例。

管理多个终端会话的 Screen 命令示例

在 Screen 中所有命令的默认前缀快捷方式是 Ctrl + a。使用 Screen 时,你需要经常使用此快捷方式。所以,要记住这个键盘快捷键。

创建新的 Screen 会话

让我们创建一个新的 Screen 会话并连上它。为此,请在终端中键入以下命令:

screen
复制代码

现在,在此会话中运行任何程序或进程,即使你与此会话断开连接,正在运行的进程或程序也将继续运行。

从 Screen 会话脱离

要从屏幕会话中脱离,请按 Ctrl + ad。你无需同时按下两个组合键。首先按 Ctrl + a 然后按 d。从会话中脱离后,你将看到类似下面的输出。

[detached from 29149.pts-0.sk]
复制代码

这里,29149 是 Screen ID,pts-0.sk 是屏幕会话的名称。你可以使用 Screen ID 或相应的会话名称来连上、脱离和终止屏幕会话。

创建命名会话

你还可以用你选择的任何自定义名称创建一个 Screen 会话,而不是默认用户名,如下所示。

screen -S ostechnix
复制代码

上面的命令将创建一个名为 xxxxx.ostechnix 的新 Screen 会话,并立即连上它。要从当前会话中脱离,请按 Ctrl + a,然后按 d

当你想要查找哪些进程在哪些会话上运行时,命名会话会很有用。例如,当在会话中设置 LAMP 系统时,你可以简单地将其命名为如下所示。

screen -S lampstack
复制代码

创建脱离的会话

有时,你可能想要创建一个会话,但不希望自动连上该会话。在这种情况下,运行以下命令来创建名为senthil 的已脱离会话:

screen -S senthil -d -m
复制代码

也可以缩短为:

screen -dmS senthil
复制代码

上面的命令将创建一个名为 senthil 的会话,但不会连上它。

列出屏幕会话

要列出所有正在运行的会话(连上的或脱离的),请运行:

screen -ls
复制代码

示例输出:

There are screens on:29700.senthil   (Detached)29415.ostechnix (Detached)29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.
复制代码

如你所见,我有三个正在运行的会话,并且所有会话都已脱离。

连上 Screen 会话

如果你想连上会话,例如 29415.ostechnix,只需运行:

screen -r 29415.ostechnix
复制代码

或:

screen -r ostechnix
复制代码

或使用 Screen ID:

screen -r 29415
复制代码

要验证我们是否连上到上述会话,只需列出打开的会话并检查。

screen -ls
复制代码

示例输出:

There are screens on:29700.senthil   (Detached)29415.ostechnix (Attached)29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.
复制代码

如你所见,在上面的输出中,我们目前已连上到 29415.ostechnix 会话。要退出当前会话,请按 ctrl + a d

创建嵌套会话

当我们运行 screen 命令时,它将为我们创建一个会话。但是,我们可以创建嵌套会话(会话内的会话)。

首先,创建一个新会话或连上已打开的会话。然后我将创建一个名为 nested 的新会话。

screen -S nested
复制代码

现在,在会话中按 Ctrl + ac 创建另一个会话。只需重复此操作即可创建任意数量的嵌套 Screen 会话。每个会话都将分配一个号码。号码将从 0 开始。

你可以按 Ctrl + n 移动到下一个会话,然后按 Ctrl + p 移动到上一个会话。

以下是管理嵌套会话的重要键盘快捷键列表。

  • Ctrl + a " - 列出所有会话
  • Ctrl + a 0 - 切换到会话号 0
  • Ctrl + a n - 切换到下一个会话
  • Ctrl + a p - 切换到上一个会话
  • Ctrl + a S - 将当前区域水平分割为两个区域
  • Ctrl + a l - 将当前区域垂直分割为两个区域
  • Ctrl + a Q - 关闭除当前会话之外的所有会话
  • Ctrl + a X - 关闭当前会话
  • Ctrl + a \ - 终止所有会话并终止 Screen
  • Ctrl + a ? - 显示键绑定。要退出,请按回车

锁定会话

Screen 有一个锁定会话的选项。为此,请按 Ctrl + ax。 输入你的 Linux 密码以锁定。

Screen used by sk <sk> on ubuntuserver.
Password:
复制代码

记录会话

你可能希望记录 Screen 会话中的所有内容。为此,只需按 Ctrl + aH 即可。

或者,你也可以使用 -L 参数启动新会话来启用日志记录。

screen -L
复制代码

从现在开始,你在会话中做的所有活动都将记录并存储在 $HOME 目录中名为 screenlog.x 的文件中。这里,x 是一个数字。

你可以使用 cat 命令或任何文本查看器查看日志文件的内容。

记录 Screen 会话

终止 Screen 会话

如果不再需要会话,只需杀死它。要杀死名为 senthil 的脱离会话:

screen -r senthil -X quit
复制代码

或:

screen -X -S senthil quit
复制代码

或:

screen -X -S 29415 quit
复制代码

如果没有打开的会话,你将看到以下输出:

$ screen -ls
No Sockets found in /run/screens/S-sk.
复制代码

更多细节请参照 man 手册页:

$ man screen
复制代码

还有一个名为 Tmux 的类似的命令行实用程序,它与 GNU Screen 执行相同的工作。要了解更多信息,请参阅以下指南。

  • Tmux 命令示例:管理多个终端会话

资源

  • GNU Screen 主页

via: www.ostechnix.com/screen-comm…

作者:sk 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

转载于:https://juejin.im/post/5cffb475e51d45775f516a48

screen 命令示例:管理多个终端会话相关推荐

  1. 管理Linux终端的screen命令示例

    screen是一个全屏幕软件程序,他可以用于在若干进程(一般交换的shells)之间复用一个物理console.它提供给用户在单个终端窗口管理器中打开若干单独的终端实例. 如果你从一个命令行接口处理多 ...

  2. 使用 screen 管理你的远程会话

    你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终 ...

  3. [linux 技巧] 使用 screen 管理你的远程会话(转载)

    linux 技巧:使用 screen 管理你的远程会话 转载地址: https://www.ibm.com/developerworks/cn/linux/l-cn-screen/  你是不是经常需要 ...

  4. Linux 命令(18)—— screen 命令

    1.命令简介 screen 是 GNU 开发的终端会话管理工具,可以新建和管理多个终端会话,并提供切换.分离.挂载等相应的功能. 每个终端会话可以创建 1~10 个窗口,其重要的特点就是终端断开连接后 ...

  5. linux中强大的screen命令

    原文:http://www.weiruoyu.cn/?p=676 ####################下面是常用的命令###################################### ...

  6. linux 终端会话连接,如何在 Linux 中使用 Asciinema 进行录制和回放终端会话

    简介 Asciinema 是一个轻量并且非常高效的终端会话录制器.使用它可以录制.回放和分享 JSON 格式的终端会话记录.与一些桌面录制器,比如 Recordmydesktop.Simplescre ...

  7. linux用终端播放视频,如何在 Linux 中使用 Asciinema 进行录制和回放终端会话

    简介 Asciinema 是一个轻量并且非常高效的终端会话录制器.使用它可以录制.回放和分享 JSON 格式的终端会话记录.与一些桌面录制器,比如 Recordmydesktop.Simplescre ...

  8. Linux录制终端视频,桌面应用|如何在 Linux 中使用 Asciinema 进行录制和回放终端会话...

    简介 Asciinema 是一个轻量并且非常高效的终端会话录制器.使用它可以录制.回放和分享 JSON 格式的终端会话记录.与一些桌面录制器,比如 Recordmydesktop.Simplescre ...

  9. linux下screen版本,在Linux (RHEL/CentOS 7/8 )中,如何使用4个简单步骤安装Screen命令

    在本文中,我通过4个简单步骤指导您完成在Linux(RHEL/CentOS 7/8)中安装Screen命令.你遇到在Linux会话中运行一些重要任务,但由于某些问题而突然中断了会话,任务在两个会话之间 ...

最新文章

  1. 食出100分:‘粥’的做法4---鱼片瘦肉粥
  2. 史诗级pg脚本,亲测好使
  3. layui --- [结构优化]参数优化
  4. UC/OS-II的学习
  5. Bootstrap 3之美03-独立行,文字环绕,图片自适应,隐藏元素
  6. 计算机的论文初稿要交什么,论文初稿
  7. Win10教育版变为企业版
  8. 杂谈:微信推出赞赏码功能,如何使用?
  9. unity 关闭所有日志输出
  10. uni-app分享小程序卡片给微信好友
  11. 【C语言】-关于strlen的介绍以及三种模拟实现的方法
  12. AFNetworking(v3.0+)框架学习总结(三框架基本使用)
  13. os模块创建多级目录
  14. SoftLayer Object Storage 节点
  15. 小番茄插件(VAssist)和Visual studio 自带,常用快捷键整理
  16. 零基础学画画从什么开始学起
  17. 开源 | 全球首个批流一体机器学习平台 Alink
  18. 如何在EXCEL中实现日期自动递增
  19. 「镁客·请讲」布局全产业链,幻维要以最优姿态迎接VR爆发的到来
  20. 我还要不要学习Android开发?

热门文章

  1. vue微信支付回到原界面不执行mounted里的内容
  2. 首次使用Gradle配置本地仓库和更好国内镜像源
  3. [Java] 蓝桥杯BASIC-15 基础练习 字符串对比
  4. 谭晓生大闹中国计算机中心,360高管谭晓生不满中国计算机大会拖堂和临时加议程,现场摔话筒发飙...
  5. rbf神经网络原理_【新书推荐】【2012.12】智能优化算法原理与应用(李士勇)...
  6. 不同微服务独立数据库,如何保障微服务架构下的数据一致性
  7. Linux系统性能检测
  8. 微软推出Windows Sandbox:可安全运行任何应用的一次性VM\n
  9. HP11.31安装11.2.0.3实施手册
  10. 手机端仿ios的银行下拉脚本五