Linux下,我们常常使用命令行进行操作,很多Linux服务器上都没有安装GUI,但是,有时候我们需要共享屏幕,即使是命令行,我们也需要让同事在遥远的另一端看到我们的实时操作,那么给你推荐一款Linux下的命令行远程屏幕共享工具,screen。


screen作用:

1可以实现多个“屏幕”的效果。

2可以实现类似“后台执行”的效果,避免远程终端窗口中执行长时间任务时意外断开

3可以远程共享字符界面会话,就像远程桌面一样,两个人看到的画面一样,只不过screen是字符界面,而且有一个前提是,两个人必须登录同一台主机的同一个用户。


        centos6.8中,运行screen需要提前安装screen-4.0.3-19.el6.x86_64.rpm

 

 



screen的使用场景:




直接打开一个新的屏幕


  screen命令可以直接创建一个screen会话,screen -S 会话名称,可以创建一个指定名称的会话,不指定名称的情况下,会话会有ID编号。

  使用screen命令创建会话后默认自动进入新建的screen会话,输入exit 相当于关闭这个screen会话,这个screen会话中的程序也会关闭,而是用Ctrl + a +d 或者使用screen-d会话ID  属于剥离会话或者跳出会话,跳出后相当于这个screen会话以及其中的程序一直都在后台运行,并没有停止或关闭,随时可以再进入到这个screen会话中,所以要区分好exit和跳出的区别

 




显示已经建立的屏幕会话


screen -ls命令可以查看当前机器已经建立的screen会话

[root@cos68 ~]# screen -ls

There are screens on:

8809pxs-0.cos68        (Attached)

8859pxs-5.cos68        (Detached)

8841pxs-0.cos68        (Detached)

8704pxs-0.cos68        (Detached)

8824pxs-0.cos68        (Detached)

5 Sockets in/var/run/screen/S-root.

可以看到一共有5个会话,编号为6607的会话为联系状态,其他4个分回话都是派遣状态

也就是说,6607会话中有人在操作,而其他四个会话没有人在操作,没有人在操作不代表这个会话已经停止,而是代表没有人在这个会话中进行人为操作,Detached状态的screen会话相当于在后台自动运行,没有人为参与,而且Detached状态的屏幕中的程序也相当于后台运行,而Attached状态的screen会话中,肯定有人正在操作,所以显示为联系状态,如果有人加入到了一个处于Detached状态的screen会话中,那么这个会话的状态会从Detached变为Attached

 

处于Attached状态的会话只能加入。

处于Detached状态的会话既能加入,也能还原。

 




关闭 、跳出某个会话


   如果已经处于某个screen会话中,使用exit命令 或者 使用ctrl+d 快捷键,表示关闭当前会话,同时这个会话中运行的程序也会关闭

  如果已经处于某个screen会话中,使用Ctrl+a+d 快捷键,表示跳出(剥离)当前会话,这个会话以及会话中的程序不会被停止或关闭,它们一直在后台运行。

  不管是否处于screen会话中,都可以使用screen-d ID号 ,剥离指定screen的会话,如果指定跳出的会话中已经有人在操作,那么这个人会被强行剔出会话,但是会话以及其中的程序都会在后台正常运行,也就是说这个会话会从Attached状态变成Detached状态,会话中的人也会被跳出。

 




加入已经建立的屏幕会话,或者还原到处于跳出(剥离)状态的会话


  screen -x ID号  ,可以直接加入某个screen会话,不管这个会话是处于Attached状态还是Detached状态,都可以使用此命令加入。

  screen -r ID号  ,这个命令可以还原到某个跳出(剥离)状态的会话,不能还原到处于Attached状态的会话,如果使用此命令还原某个处于Attached状态的会话,screen会提示你,这个会话者处于Attached状态,意思就是说,这个会话里面有人用,你自己考虑是否加进来,加入会话以后这个会话就由你俩共同控制了,处于Attached状态的会话只能加入,不能还原。

 

欢迎访问博主的个人博客

http://www.zsythink.net/