赞
踩
在什么情况下使用该命令
系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
功能
会话恢复
多窗口
会话共享
语法
# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
参数说明
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
使用yum命令安装screen程序包:
#yum install screen
创建与使用会话功能
完成安装后直接运行screen即可使用服务,推荐为每个会话取一个名字,方便分辨
创建名称为backup的会话:
#screen -S backup
查看当前已经存在的会话:
[root@linuxprobe~]# screen -ls
There is a screenon:
32230.backup(Attached)
1 Socket in/var/run/screen/S-root.
当执行screen命令后会调用系统默认的shell(通常即bash),所以敲完screen命令后会立即返回一个命令提示符,虽然看起来与刚刚没有变化,但此时你已经进入screen会话啦!
创建一个会话,初始为用vim编辑器写文件:
[root@linuxprobe~]# screen vim memo.txt
退出vim后会话也会被自动被删除:
[root@linuxprobe~]# screen -ls
There is a screenon:
32230.backup(Attached)
1 Socket in /var/run/screen/S-root.
新建一个叫做linuxprobe的会话:
[root@linuxprobe~]# screen -S linuxprobe
列出当前所有会话(有两个哦):
[root@linuxprobe~]# screen --ls
There are screenson:
32403.linuxprobe(Attached)
32230.backup(Attached)
2 Sockets in/var/run/screen/S-root.
回到backup会话中:
[root@linuxprobe~]# screen -r backup
将linuxprobe会话离线:
[root@linuxprobe~]# screen -d linuxprobe
[remote detachedfrom 32403.linuxprobe]
再次查看会话状态(linuxprobe已经被离线了):
[root@linuxprobe~]# screen -ls
There are screenson:
32403.linuxprobe(Detached)
32230.backup(Attached)
2 Sockets in/var/run/screen/S-root.
将当前会话离线并回到linuxprobe会话中:
[root@linuxprobe~]# screen -d -r linuxprobe
[32403.linuxprobedetached.]
回到linuxprobe会话后,状态又改变了:
[root@linuxprobe~]# screen -ls
There are screenson:
32403.linuxprobe (Attached)
32230.backup(Attached)
2 Sockets in/var/run/screen/S-root.
[/pre]
总结来说:将screen会话甚至为暂时断开(detach),那么会话窗口中的程序依然会执行。随后将会话重新连接(attach),那么即可重新控制会话窗口中运行的程序啦。
会话共享功能是一件很酷的事,它让多个用户同时使用某一个会话,甚至让您和对方看到相同的终端内容,拓扑如下:
将两台Linux主机均连入同一个服务器:
在主机A的终端上执行创建会话的操作:
[root@linuxprobe ~]# screen -S linuxprobe
在主机B的终端上同步会话信息:
[root@linuxprobe ~]# screen -x
那么此时终端A与终端B上做的任何操作,都可以实时同步到对方的屏幕上,真的很酷哦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。