与 tmux 工具较为类似,sreen 命令同样提供在唯一个的命令行终端上进行多窗口切换和管理的基本功能( 关于 tmux 基本操作可参见笔者的博文 终端复用工具 tmux 基本操作教程 )。screen 命令以会话( session )为基础为用户提供终端复用功能,当用户在某一终端运行 sreen 命令时,当前终端即进入某个 screen 创建的会话,新建的会话默认拥有一个运行 shell 的窗口,用户可在该窗口中进行所需操作,并通过 screen 命令进行会话中新窗口的创建、对某个窗口进行面板划分等操作。用户可通过 screen 命令脱离( detach )某个会话,则该会话会在后台运行而不再显示到终端上,当前终端也可通过 screen 命令绑定( attach )到某个会话上,从而显示目标会话中的窗口内容,以供用户操作。当会话中所有的窗口均退出时,则 screen 会话自动结束。

  

screen 安装

  screen 的安装方式与之前介绍的 tmux 大致相同,用户可通过 apt 命令直接在个人计算设备上进行安装。与 tmux 不同的是,一般的 Ubuntu 服务器操作系统会自带 screen 程序,故而用户使用服务器时,可直接通过 screen 命令进行终端复用和管理。

    apt-get install screen        //通过 apt 安装 screen 命令

  

screen 基本操作

  想要使用 screen 命令的功能,既可以在 shell 中直接输入 screen + 操作 格式的命令执行操作,又可以通过 screen 提供的 <prefix> + 功能键 的方式进行操作。其中前者可在任何可执行命令行操作的终端中运行,后者只有绑定了 screen 的会话后的终端才能使用。

    screen operation        // operation 指定执行动作,可在任意终端中运行<prefix> 功能键      // 指定特定 screen 功能,仅可在绑定了 screen 会话的终端中使用

  在 screen 创建的窗口中,默认用户的按键操作直接作为终端的按键输入,只有当用户输入特定的命令前缀( prefix )时,后续的按键输入才会根据 screen 命令与按键的绑定情况被解释为特定的 screen 操作,这一点与 tmux 命令的 <prefix> + 功能键 的控制方式相类似。 screen 默认的命令前缀为 Ctrl + a ,在输入命令前缀之后,用户键入 screen 命令所支持的功能按键,即可执行指定的 screen 操作。

  会话管理

  用户可通过 screen -S 会话名 创建一个新的会话。在终端中运行上述命令后,当前终端即绑定( attach )新创建的会话,新建会话默认创建一个运行 shell 的窗口,用户即可在其中进行操作。

    screen -S session_name     //创建名为 session_name 的会话,不指定 session_name 时则创建匿名会话

  可通过 screen -d session_name 使得当前终端脱离( 不再显示 )指定会话,被脱离的会话仍在后台运行,可通过 screen 命令重新绑定.

    screen -d session_name        //脱离( detach ) 指定的会话,不指定 session_name ,则脱离当前会话

  可通过 screen -ls 命令显示所有存在的会话。

    screen -ls               //显示当前存在的所有会话

  可通过 screen -r session 使得当前终端重新进入某个会话,用户既可以使用每个会话拥有的独立编号指定会话,也可以通过创建会话时的会话名来指定会话。

    screen -r session          // 使得当前终端重新进入( attach )并显示 session 指定的会话

  用户也可以直接通过 screen command 的方式创建一个单窗口会话,command 直接指定新建会话中要运行的命令( 不再默认运行 shell ),命令执行完毕则会话自动退出。

    screen python main.py        // 创建一个运行 main.py 程序的会话,程序运行完成后会话直接退出

  对于一个 screen 会话而言,当其中运行的最后一个程序退出时( 如唯一的窗口中的 shell 程序退出 ),会话即自动结束。当会话非自然的无法使用时,通过 screen -ls 查看时,该会话后面会带有"dead"后缀,用户可通过 screen -wipe 直接上述这些会话。

    screen -wipe        //删除非正常( dead )状态的会话

  实例:

  1.在服务器登陆的 ssh 终端中新创建一个名为 test 的会话,此时终端会绑定到新创建的终端中并显示其窗口;

  

  2.在该窗口中输入 screen -d 则取消当前终端与会话的绑定,此时又回到之前的登录终端上,终端会显示 detach 信息;

  

  3.通过 screen -ls 命令显示所有存在的会话信息,这里可以看到笔者通过 screen 命令创建的会话的 id 和名字;

  

  4.用户可通过指定会话 id 或会话名的方式通过 screen -r 命令将当前终端重新绑定到指定会话中,终端会重新显示绑定终端的窗口内容;

  

    

  窗口管理

  在绑定了 screen 会话的窗口中,可以进行 screen 窗口的管理。一般而言常用的窗口管理方式有两种,一种直接通过命令行输入 screen 命令,另一种则是通过 screen 会话所支持的 <prefix> + 操作 的方式。在实际使用过程中,由于 screen 会话提供的窗口一般会用于执行用户所需的命令,故而命令行输入命令的方式并不总是可用的,笔者更常使用适用范围更广的 <prefix> + 操作 的方式进行窗口管理。下列命令即记录输入 <prefix> ( screen 的命令前缀为 Ctrl + a )后各个特定输入与命令之间的对应关系,不再记录命令前缀。注意,下列窗口管理的功能也可通过命令行输入命令的方式实现,具体可参见 screen 命令的 man 帮助文档。

  窗口创建和切换  

    c      //创建一个带有 shell 的新窗口并切换至新窗口k      //关闭当前窗口(以及其中运行的程序)d      //退出当前会话
i      //显示当前窗口的信息w      //显示所有窗口的序号         "      //显示所有窗口,以供选择切换num             //num 为 0-9 之间的数字,切换至 num 对应的窗口space / n         //切换到下一窗口( next )backspace / p       //切换到上一窗口( previous )

  上述操作中,注意通过 <prefix> + d 的快捷操作直接退出退出当前会话,其效果与 screen -d 一致。

  窗口划分及其管理

  一个完整的终端窗口可以被进一步的划分为若干个小部分,每个部分均可独立运行程序。

    S        //将当前终端水平划分|        //将当前终端垂直划分tab       //终端中划分的不同区域进行顺序切换Q        //删除除当前所在区域外的所有的区域X        //删除当前区域

  辅助功能

    H          //开始/结束对当前窗口输出的记录,记录保存在名为 "screenlog.n" 的文件中C          //清空当前屏幕(终端)l          //刷新当前窗口?          //显示按键与功能的绑定[                //进入复制模式,其大致操作与 vim 类似,详见官方文档及文后参考资料[                //将复制模式中复制的内容粘贴

参考:

  Linux 命令大全 - screen 命令

  Screen User’s Manual

转载于:https://www.cnblogs.com/yhjoker/p/10690148.html

screen 命令基本操作教程相关推荐

  1. Screen安装+命令使用教程

    文章目录 Screen简介 Screen安装 Screen常用命令 Screen简介 Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行 ...

  2. linux screen 命令的使用教程

    Linux screen命令用于多重视窗管理程序.很多时候我们需要在与终端断开连接之后后台继续运行程序,方法一是nohup命令,用法为直接在nohup后面跟需要执行的命令,例如 nohup pytho ...

  3. linux cp 强制覆盖_Linux基本操作教程

    Linux基本操作教程 点击蓝字 关注我们 01.Linux系统简介 Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第 ...

  4. 常用screen命令

    在linux远程会话的时候,使用screen可以很方便地进行会话管理而不需要担心ssh断开后程序停止运行. 常用screen命令: screen #新建一个screen会话 screen vi tes ...

  5. 计算机视觉——PyCharm连接远程服务器和Linux Screen命令使用

    一.PyCharm连接远程服务器 (1)教程配置 详见:pycharm:远程连接服务器调试代码(保姆级详细步骤) (2)开始使用 打开服务器的terminal(可开多个):Tools-Start SS ...

  6. Bat批处理命令使用教程(完整篇)

    Bat批处理命令使用教程(完整篇) 原帖:http://www.anqn.com/arp/article/2007-09-14/a0986565.shtml 此处仅是学习只用: 这是一篇技术教程,我会 ...

  7. Windows脚本 - Bat批处理命令使用教程

    原文url:  http://www.x5dj.com/Blog/00534041/00389984.shtml 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知 ...

  8. ssh 远程防止断网神器 - screen 命令

    我们在使用需要 SSH 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如AI训练.系统备份.ftp传输等等.通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执 ...

  9. 【编程实践】Git命令基础教程和代码实例讲解

    Git命令基础教程和代码实例讲解 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git与常用的版本控制工具CVS.Subversion等不同,它采用了分布式版本库的方式. ...

最新文章

  1. java gmail smtp_通过JAVA中的Gmail SMTP服务器发送电子邮件
  2. 特斯拉马斯克直聘AI人才:不看学历看能力
  3. sharepoint2010 SP1 chrome 时常无滚动条
  4. 华为swot分析2020_2020华为音频产品汇总分析,完善产品质量,丰富产品线
  5. SAP UI5 Library Resource Bundle 的设计原理
  6. netty SimpleChannelInboundHandler类继承使用
  7. 第四单元和课程总结:简单的架构设计意识
  8. 自定义百度网盘加密分享密码
  9. verilog——74X138译码器及其应用
  10. 双曲函数奇偶性_第二百一十二夜:高考押题-双曲函数的性质
  11. java计算乘地铁费用_Java_地铁购票系统
  12. 【论文阅读】 Object Detection in 20 Years: A Survey
  13. HTML元素的宽度计算
  14. 神奇的幻方(洛谷)c语言
  15. CTF逆向-IDA Pro攻防世界Hello CTF
  16. Electron主进程和渲染进程之间通信
  17. 微信小程序input调用数字键盘没有小数点
  18. Oracle 天数计算函数
  19. radan7中文使用手册
  20. 如何使用WRLD构建教练假期展示柜

热门文章

  1. 激光诱导击穿光谱电化学方法对环境中重金属离子的检测研究获进展
  2. Math.abs(x)<1e-6
  3. Segd 2.1格式注释
  4. Nvidia显卡怎样查看显存大小及硬件相关信息
  5. 树形dp day43
  6. 【综合类型第 34 篇】喜讯!喜讯!!喜讯!!!,我在 CSDN 的第一个实体铭牌
  7. 江疏影成为FILA新晋时尚运动代言人
  8. 在mac系统中安装node
  9. 计算器算贝塞尔公式_二手车评估计算器是如何估价的?
  10. 计算机中常用的储存度量单位有,计算机中度量存储信息容量的基本单位是什么?...