美文网首页基础技能
linux screen命令的使用

linux screen命令的使用

作者: 大魂 | 来源:发表于2019-08-20 16:27 被阅读0次

    参考链接:https://blog.csdn.net/weixin_42651205/article/details/83790666
    https://blog.csdn.net/yizhang_ml/article/details/79632316

    一、screen命令是什么?

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

    二、如何安装screen命令?

    除部分精简的系统或者定制的系统大部分都安装了screen命令,如果没有安装,CentOS系统可以执行:yum install screen

    Debian/Ubuntu系统执行:apt-get install screen

    三、screen命令使用方法?

    1、常用的使用方法

    用来解决文章开始我们遇到的问题,比如在安装lnmp时。

    1.1 创建screen会话

    可以先执行:screen -S test,screen就会创建一个名字为test的会话。

    1.2 暂时离开,保留screen会话中的任务或程序

    当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

    1.3 恢复screen会话

    当回来时可以再执行执行:screen -r test即可恢复到离开前创建的test会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表,如下图:

    image.png

    11987.test即为刚才的screen创建的test会话,目前已经暂时退出了test会话,所以状态为Detached,当使用screen -r test后状态就会变为Attached,11987是这个screen的会话的进程ID,恢复会话时也可以使用:screen -r 11987

    【注意】有时在恢复 screen 时会出现 There is no screen to be resumed matching ****,遇到时输入命令:screen -d test

    1.4 关闭screen的会话

    执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。

    2、远程演示

    首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。

    3、常用快捷键

    Ctrl+a c :在当前screen会话中创建窗口
    Ctrl+a w :窗口列表
    Ctrl+a n :下一个窗口
    Ctrl+a p :上一个窗口
    Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

    用 screen -ls, 显式当前状态为Attached, 但当前没有用户登陆些会话。screen此时正常状态应该为(Detached)
    此时用screen -r ,怎么也登不上。最后找到解决方法:screen -D -r <session-id>
    -D -r 先踢掉前一用户,再登陆。

    四、具体使用如下

    我们可以使用screen -S u-net创建一个叫做u-net的session,这时我们要进入该session,需要使用screen -r u-net进入到该session中,此时就可以在该session里进行操作了,如运行程序。之后我们可以使用Ctrl + a +d命令将该session丢到后台进行处理。

    注:

    screen -S yourname -> 新建一个叫yourname的session
    screen -ls -> 列出当前所有的session
    screen -r yourname -> 回到yourname这个session
    screen -d yourname -> 远程detach某个session
    screen -d -r yourname -> 结束当前session并回到yourname这个session
    
    Ctrl-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
    

    相关文章

      网友评论

        本文标题:linux screen命令的使用

        本文链接:https://www.haomeiwen.com/subject/cripsctx.html