zoukankan      html  css  js  c++  java
  • Linux下screen命令的使用

    在一些生产环境中,需要使用SSH或者是telnet登陆远程的Linux服务器,例如阿里云等。在打开一个终端窗口之后,我们一般会执行命令,然后等待结束关闭窗口。如果碰到了需要长时间执行的任务,例如备份文件、传输海量数据等等耗时的操作时,必须等待当前的任务完成之后才能离开当前的窗口,否则在任务停止之前关闭窗口,也会导致当前任务的终止。如果碰到类似上述的情况,那么就可以考虑使用screen命令来解决该问题。

    • screen是什么?
      screen命令是用来管理终端窗口的工具。我们可以在screen命令下新建多个终端窗口,并且可以在这些终端窗口之间自由的切换,也可以让当前的正在执行命令的会话窗口离开screen界面,返回到后台运行,即使退出了SSH会话,该命令依然执行。

    • 如何新建一个screen会话?

    screen -S mytest

    一般情况下,直接输入screen命令就可以进入到screen会话中,这里的 -S命令作用是为了给screen标识一个名字供用户识别。

    • 如何在screen会话中同时执行多个命令?

    在进入screen会话之后,直接键入要执行的命令,例如 top命令,这个命令会一直执行直到我们显示的关闭它。此时突然有一个需求,我们要切换到某个目录下配置某个文件,这个时候键入ctrl + a,然后键入c,这样就新建了一个新的shell窗口并且切换到了该窗口。这里的ctrl +a是screen会话的格式,稍后会说。

    • 如何退出当前的screen会话?

    键入命令ctrl +a,然后键入d(detach)命令就可以离开当前的screen会话,此时在之前screen会话中的命令依然在执行,只是切换到了后台执行,哪怕我们关闭了当前的shell会话也不会中断这些命令的执行。

    • 如何回到之前的screen会话中?
      首先需要查看当前的screen命令中存在哪些screen会话。键入命令screen -list,结果如下:
    root@iZ25gnpvvy1Z:~# screen -list
    There is a screen on:
            15927.test      (06/25/2016 12:24:49 AM)        (Detached)
    1 Socket in /var/run/screen/S-root.

    发现存在一个已经分离的screen会话,id是15927,名字是test。这个正是之前的screen会话,键入screen -r 15927,可以重新回到之前的会话中并且查看命令的执行情况。
    一些基本的用法大致如上所示。刚才说到screen会话中的命令以ctrl + a开头,后面接不同的命令,一些常用的命令如下:

    • c —新建一个新的shell命令窗口并且切换到该窗口

    • n —(next)切换到另外一个window窗口

    • p —(previous),切换到前一个window窗口

    • d —(detach),离开当前的screen环境

    • w —显示所有窗口列表

    常用的如上所示,更加详细的说明请参考linux screen命令详解

  • 相关阅读:
    Codeforces 590 A:Median Smoothing
    HDU 1024:Max Sum Plus Plus 经典动态规划之最大M子段和
    POJ 1027:The Same Game 较(chao)为(ji)复(ma)杂(fan)的模拟
    【算法学习】 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?
    【读书笔记】 spinlock, mutex and rwlock 的性能比较
    【读书笔记】 nginx 负载均衡测试
    【读书笔记】 多线程程序常见bug
    关注一下 hurd OS的开发
    【读书笔记】 分布式文件存储系统 MogileFS
    【读书笔记】 nginx + memcached 高速缓存
  • 原文地址:https://www.cnblogs.com/summerpxy/p/13648326.html
Copyright © 2011-2022 走看看