Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样 最简单使用

screen -ls会列出现在已有的会话,比如: 123.tty1.server (Detached) 321.tty2.server (Detached) 如果想恢复第一个会话,使用:screen -r 123或者screen -r tty1,只要能让screen区别出你要选择哪个即可。 直接使用screen创建会话有一个问题,就是会话的名字无实际的语义,不容易记忆,此时可以使用- S参数: screen -S foobar 然后按ctrl+a+d保存会话,接着使用命令screen -ls查询,你就能看到名为foobar的会话了,再恢复它: screen -r foobar

键绑定

C-a ?	显示所有键绑定信息
C-a w	显示所有窗口列表
C-a C-a	切换到之前显示的窗口
C-a c	创建一个新的运行shell的窗口并切换到该窗口
C-a n	切换到下一个窗口
C-a p	切换到前一个窗口(与C-a n相对)
C-a 0..9	切换到窗口0..9
C-a a	发送 C-a到当前窗口
C-a d	暂时断开screen会话
C-a k	杀掉当前窗口
C-a [	进入拷贝/回滚模式

启动参数

-c file	使用配置文件file,而不使用默认的$HOME/.screenrc
-d|-D [pid.tty.host]	不开启新的screen会话,而是断开其他正在运行的screen会话
-h num	指定历史回滚缓冲区大小为num行
-list|-ls	列出现有screen会话,格式为pid.tty.host
-d -m	启动一个开始就处于断开模式的会话
-r sessionowner/ [pid.tty.host]	重新连接一个断开的会话。多用户模式下连接到其他用户screen会话需要指定sessionowner,需要setuid-root权限
-S sessionname	创建screen会话时为会话指定一个名字
-v	显示screen版本信息
-wipe [match]	同-list,但删掉那些无法连接的会话

使用请参考这两篇: 复习一下Linux下的screen命令 使用 screen 管理你的远程会话