Screen简介

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。

远程服务器的时候,断网或者手误关掉了远程终端,会导致会话中断,程序终止。

而Screen连接的终端,会话独立运行,程序会一直进行。而且会话可以恢复,还可以自行删除。

常用Screen命令

screen -S yourname           # 新建一个叫yourname的session
screen -ls                   # 列出当前所有的session
screen -r yourname           # 回到yourname这个session
screen -d yourname           # 远程detach某个session    # detach快捷键 ctrl a + d
screen -d -r yourname        # 结束当前session并回到yourname这个session
screen -S yourname -X quit   # 删除叫yourname的session
exit                         # 退出虚拟终端(关闭):需要在虚拟终端里输入
  • 恢复会话

    screen -r session_name

    如果不能恢复:
    对于已经Attached Session则不能直接screen -r,需要先screen -d,然后才能screen -r
    用screen -ls可以查看所有的session的状态

    screen -d session_name

    screen -r session_name

  • 删除&(重名怎么删)

    重名怎么删,如下图:
    1、没有重名的直接可以screen -S session_name -X quit
    2、重名的,需要带上id删,screen -S id.session_name -X quit

高级应用

会话共享

s还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:

screen -x

这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。当然,如果你们切换到这个会话的不同窗口中去,那还是可以分别进行不同的操作的。