GNU's Screen
homepage
Screen是由GNU计划开发的用于命令行终端切换的自由软件,可以看作是窗口管理器的命令行界面版本。
可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

  • 多窗口
    在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。
    用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
  • 会话共享与限制
    可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。
    同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
  • 会话恢复与分离
    如果Screen本身没有终止,在其内部运行的会话都可以恢复。即使网络连接中断,只要再次登录后执行screen -r就可以恢复先前已经打开的会话。
    同样也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。

安装
CentOS系统中执行:yum install screen
Debian/Ubuntu系统执行:apt-get install screen

常用命令
列出所有会话:screen -ls
创建一个随机命名的会话:screen
创建一个名称为test的会话:screen -S test
分离test会话,但会话中的任务会继续执行:screen -d test
通过screen name恢复test会话:screen -r test
通过session ID恢复test会话:screen -r <session ID>
创建一个处于分离模式(Detached),名称为test的会话:screen -dmS test

使用总结
(Detached)---->挂起状态,无终端在连接会话
(Attached)---->有终端在连接会话。
在会话中输入exit:永久退出本会话,也即是删除本会话,显示信息“screen is terminating”。
多个session之间切换:先分离会话回到shell,再通过screen -ls查看会话列表,然后使用screen -r恢复到目标会话。
停止screen session:会话中输入exit正常退出,或者 kill -9 PID (session ID同时也是PID)。
对于处于Attached模式的会话,不能直接screen -r,需要先screen -d,然后才能screen -r。

Note
不要在session中嵌套建立session。
不建议在一个session中对另一个session做相关操作,例如:在session中直接恢复其他session会话。

Linux - 多窗口管理器Screen程序的更多相关文章

  1. Rsync,Linux日志及Screen工具介绍

    第十六次课 Rsync,Linux日志及Screen工具介绍 目录 一.rsync工具介绍 二.rsync常用选项 三.rsync通过ssh同步 四. rsync通过服务同步 五.linux系统日志 ...

  2. Linux经久不衰的应用程序

    Linux里面的应用程序一贯以高安全性,高性价比(功能/所占空间),此次记录一下Linux里面比较常用的而且经久不衰的应用程序. Shell:               bash(它结合了 csh ...

  3. linux下使用screen和ping命令对网络质量进行监控

    linux下使用screen和ping命令对网络质量进行监控 场景:应用连接云服务器经常偶尔会出现连接不上的情况,android和IOS端连接的时候也会出现tcp延时5秒以上,现在想验证是否是云服务商 ...

  4. Linux Bash命令关于程序调试详解

    转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...

  5. Linux Epoll介绍和程序实例

    Linux Epoll介绍和程序实例 1. Epoll是何方神圣? Epoll但是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select类似, ...

  6. 在Linux系统如何让程序开机时自动启动

    在Linux系统如何让程序开机时自动启动      核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”--& ...

  7. Linux下执行Java程序报错

    在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量 ...

  8. linux 英汉词典程序shell+postgresql版

    在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create databas ...

  9. Linux环境中Qt程序的手工发布

    Linux环境中Qt程序的手工发布

随机推荐

  1. CSS3 Box-sizing(转载)

    转载自:W3CPLUS Airen的博客:http://www.w3cplus.com/content/css3-box-sizing box-sizing是CSS3的box属性之一.一说到CSS的盒 ...

  2. db2开启监控monitor 查看快照snapshot

    ths   https://blog.csdn.net/huaishu/article/details/9671771 #查看监控器 db2 get monitor switches #打开监控器db ...

  3. 【Nodejs】Nodejsの環境構築

    参考URL:http://www.runoob.com/nodejs/nodejs-install-setup.html Windowにインストールする方法を紹介します. ▲ダウンロードURL:htt ...

  4. 【读书笔记】深入应用C++11代码优化与工业级应用 读书笔记01

    第一章 使用C++11让程序更简洁.更现代 1.1  类型推导 1.1.1  auto类型推导 1.auto关键字的新意义 不同于python等动态类型语言的运行时进行变量类型的推导,隐式类型定义的类 ...

  5. Python项目--Scrapy框架(二)

    本文主要是利用scrapy框架爬取果壳问答中热门问答, 精彩问答的相关信息 环境 win8, python3.7, pycharm 正文 1. 创建scrapy项目文件 在cmd命令行中任意目录下执行 ...

  6. jsp相关笔记(二)

    在jsp中将数据库表格内容读出为一个表格,并在表格中添加超链接: <%@ page language="java" contentType="text/html; ...

  7. Java第三次实验敏捷开发与XP实验

    实验三-1 1.实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http: ...

  8. redis 一些操作命令

    # 删除laravel keyredis-cli -h 10.9.103.15 -a password keys "laravel*" | xargs redis-cli -h 1 ...

  9. CMD命令启动和关闭SQL服务

    1.开启:net start mssqlserver 2.关闭:net stop mssqlserver

  10. jdk8 永久代变更

    java8 去掉了永久代permgen(又称非堆,其实也是堆的一部分),类的方法代码,常亮,方法名,静态变量等存放在永久代中 改为使用元空间 Metaspace , Metaspace 不在是堆的一部 ...