Screen 窗口管理器

screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。

1. 安装

yum -y install screen
rpm -qa|grep screen

来自: http://lnmp.ailinux.net/screen

2. 使用

man screen

-A  将所有的视窗都调整为目前终端机的大小。 
-d <作业名称>  将指定的screen作业离线。 
-h <行数>  指定视窗的缓冲区行数。 
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。 
-r <作业名称>  恢复离线的screen作业。 
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s  指定建立新视窗时,所要执行的shell。 
-S <作业名称>  指定screen作业的名称。 
-v  显示版本信息。 
-x  恢复之前离线的screen作业。 
-ls或--list  显示目前所有的screen作业。 
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。
2. 0 常用命令
screen -S yourname -> 新建一个叫yourname的session 
screen -ls -> 列出当前所有的session 
screen -r yourname -> 回到yourname这个session 
screen -d yourname -> 远程detach某个session 
screen -d -r yourname -> 结束当前session并回到yourname这个session
2.1 新建会话
screen [command] [-S name]
screen -dmS hujun
2.2 查看会话列表
screen -list
2.3 连接会话
screen -r hujun
2.4 断开会话
screen –d [screen name]
screen -d ****
2.5 screen 多窗口管理命令
ctrl + a + c:创建新窗口(create)
ctrl + a + A: 窗口重命名

ctrl + a + w: 列出所有窗口

ctrl + a 0: 切换到0号窗口
ctrl + a 9: 切换到9号窗口
ctrl + a + [1-9]: 切换到指定窗口(1-9为窗口号)

ctrl + a + n:切换至下一个窗口(next)
ctrl + a + p:切换至上一个窗口(previous)

ctrl + a + k:死当前的窗口,同时也将杀死这个窗口中正在运行的进程
ctrl + a: quit 退出所有窗口

ctrl + a + d:detach当前会话
ctrl + d:退出(关闭)当前窗口

3. 改变screen配置

# 修改配置文件 /etc/screenrc,在末尾添加
vim /etc/screenrc
# 允许设置窗口标题
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %Y-%m-%d %c"

# screen -c /etc/screnrc -S hujun

4. screen 高级应用

4.1 会话共享

还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:

[root@TS-DEV ~]# screen -x

这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。当然,如果你们切换到这个会话的不同窗口中去,那还是可以分别进行不同的操作的。

4.2 屏幕分割

现在显示器那么大,将一个屏幕分割成不同区域显示不同的Screen窗口显然是个很酷的事情。可以使用快捷键C-a S将显示器水平分割,Screen 4.00.03版本以后,也支持垂直分屏,快捷键是C-a |。分屏以后,可以使用C-a 在各个区块间切换,每一区块上都可以创建窗口并在其中运行进程。


可以用C-a X快捷键关闭当前焦点所在的屏幕区块,也可以用C-a Q关闭除当前区块之外其他的所有区块。关闭的区块中的窗口并不会关闭,还可以通过窗口切换找到它。

4.3 发送命令到screen会话

在Screen会话之外,可以通过screen命令操作一个Screen会话,这也为使用Screen作为脚本程序增加了便利。关于Screen在脚本中的应用超出了入门的范围,这里只看一个例子,体会一下在会话之外对Screen的操作:

 [root@TS-DEV ~]# screen -S sandy -X screen ping www.baidu.com

这个命令在一个叫做sandy的screen会话中创建一个新窗口,并在其中运行ping命令。

4.4 会话锁定与解锁

Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。


也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。

4.5 C/P模式和操作

screen的另一个很强大的功能就是可以在不同窗口之间进行复制粘贴了。使用快捷键C-a 或者C-a [可以进入copy/paste模式,这个模式下可以像在vi中一样移动光标,并可以使用空格键设置标记。其实在这个模式下有很多类似vi的操作,譬如使用/进行搜索,使用y快速标记一行,使用w快速标记一个单词等。关于C/P模式下的高级操作,其文档的这一部分有比较详细的说明。


一般情况下,可以移动光标到指定位置,按下空格设置一个开头标记,然后移动光标到结尾位置,按下空格设置第二个标记,同时会将两个标记之间的部分储存在copy/paste buffer中,并退出copy/paste模式。在正常模式下,可以使用快捷键C-a ]将储存在buffer中的内容粘贴到当前窗口。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值