您的位置:首页 > 运维架构 > Linux

screen命令详解 linux中的"远程神器"

2017-12-20 11:46 246 查看
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状态的会话只能加入,不能还原。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: