screen 场景命令

  • screen,场景,它存在的意义是将执行的工作转给计算机去监督,而不需要再人为值守。

    经常使用putty类工具的人应该会有下面这样的感受:

    1:正在ssh中执行某些命令,突然本地电脑断网了,putty窗口自然也就断开了,这时刚刚执行的命令还没有返回结果,就已经掉线,不得不重新登录ssh,重新执行命令。
    2:正在执行一个很长时间才能返回结果的命令,例如打包某个大型目录,可能需要近一个小时,而putty窗口默认情况下如果30分钟没有任何指令发送的情况下,会自动断开,那怎么办呢,如果一小时才能打包完,半小时就掉线的话,总不能每30分钟内去敲一些无关紧要的字符让putty窗口接受响应吧,这时screen就能帮上忙了
    3:正在执行某些需要较长时间去运行的指令,例如安装lnmp一键包,这时,老婆喊你去给孩子换尿片,也许两个小时你都无法回到电脑前,总不能之前在执行的东西就这么不管它了吧喂?要有始有终啊喂!

    解决这些问题的办法就是:screen 命令


  • screen -S name 创建screen窗口:例如:screen -S zip
    (name是自定义的场景名,建议定义时与工作内容关联,例如该screen场景是用来执行zip打包的,那么取名为zip)

    root@localhost ~]# screen -S zip
    
    执行后就会进入到screen窗口了,screen窗口和默认的ssh本身的窗口使用上没有任何区别。

     

    《screen 场景命令》

    • screen -ls 列出正存在screen窗口
      (列出正存在的screen窗口,可以帮助使用者回忆起自己创建的screen场景名称等信息)

      root@localhost ~]# screen -ls
      There is a screen on:
              29058.zip       (Detached)
      1 Socket in /var/run/screen/S-root.
      
      表示当前一个screen场景,其进程号是 29058,名称是 zip
    • screen -r namescreen -r pid进程号 恢复至对应的screen任务视窗
      (如果网络断开造成putty中断,只要此前已创建了screen,那么就可以通过该方法恢复到之前的screen视窗,且你会发现screen中的工作任务仍然还在进行,并没有因为操作者对ssh的掉线或断开而中止工作任务)

      root@localhost ~]# screen -r zip

      root@localhost ~]# screen -r 29058
    • Ctrl + a ⇒ d 暂时退出当前screen视窗,但不中止screen中任务的运行,使用方法:先按住Ctrl+a键,再按d键,即可回到默认ssh视窗。
      (screen中的任务通常是执行时间很长的任务,所以往往我们等不及它的完成,就需要去执行一些其它命令,但总不能每次都重新打开putty软件再登录一次ssh,虽然这样也可以,但可以用这个更简单的办法解决)
    • exit 退出命令,这在linux中是通用命令,不多介绍了。
      • screen -x name 远程同步某screen场景。
        以上几种使用,通常已经足够,但这里之所以还要介绍下这个,是因为它可以拿来装~B,不过它也不是只能拿来装~B,例如当你需要将整个操作过程展示给另一客户端机器的用户,那么就是它被使用的时候了
        假设展示者是A机,接收者(观看者)是B机

        《screen 场景命令》
        《screen 场景命令》

        1:A机执行 screen -S iget 来创建一个名叫iget的screen
        2:B机执行 screen -x iget 来进入该iget的screen窗口

        《screen 场景命令》
        《screen 场景命令》

 

点赞

发表评论