大家在初次接触linuxVPS时,会发现linux操作和windows操作太不相同的,windows都是图形操作界面,而linux一般是命令行操作,当然,linux也有图形操作界面,但是我们在将vps作为网络生产环境时,安装图形界面不光费时费力,更费vps那少的可怜的系统资源,所以,还是命令行吧,可是命令行只有一个,linux下编译命令一般执行也比较慢,如编译军哥的lnmp,少则半小时二十分钟,多则三小时五小时,一旦断开,正在编译的软件也就完了,这很不符合偶们的折腾精神,难道就木有个解决方法?当然有,那就是screen。

一、神马是screen?

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

通俗的讲,screen命令用于新建一个或多个“命令行窗口”,在新建的这“窗口”中,可以执行命令;每个“窗口”都是独立并行的。

二、安装screen

要想使用screen,当然得有screen了,不是所有的linux系统都安装了screen,如果木有安装,可以使用一下命令安装:

centos:

yum install screen

debian:

apt-get install screen

安装也就分分钟的事情,中途需要输入y并按回车执行;

三、使用screen

  1. 创建会话:最简单的就是直接输入screen回车,一个新会话就完成了(debian下会有提示,再按一次回车就可以了),但偶还是推荐用下面的命令来创建会话:
    screen -S php

    上面命令的意思就是新创建一个名为php的会话,这时你可以继续输入其它命令,如编译php,费时很长,不用管它,喝杯茶先;

  2. 离开会话,按住键盘上的ctrl,然后依次按a和d,好了,又回到主会话了,这时你可以继续创建其它会话或者执行其它命令,对我们创建的会话内容没有任何影响,你甚至可以退出会话;
  3. 恢复创建的会话:如果还记得会话名称,可以输入命令:
    screen -r php

    上面命令的意思就是恢复名为php的会话,如果你只创建了一个会话,直接如入命令

    screen -r

    就可以恢复了,如果不记得会话名称或者我直接输入screen创建的会话,怎么办呢,那就要用到下面的命令;

  4. 查看已经创建的会话:
    screen -ls

    上面的命令的意思就是查看本机已经创建的会话,可以查看会话的名称和id,恢复时可以使用id代替名称;

  5. 有时在恢复screen时会出现There is no screen to be resumed matching ****,遇到这种情况咋办呢?输入命令
    screen -d ****

    然后再使用恢复命令恢复就ok了

  6. 退出screen,使用screen会耗费一定的系统资源,所以当screen中的命令执行完毕之后,最好退出screen,直接输入命令
    exit

    就可以退出了。

  7. 其它命令
    Ctrl + a,d       #暂离当前会话
    Ctrl + a,c        #在当前screen会话中创建一个子会话 
    Ctrl + a,w       #子会话列表
    Ctrl + a,p       #上一个子会话
    Ctrl + a,n       #下一个子会话
    Ctrl + a,0-9   #在第0窗口至第9子会话间切换