Chinaunix首页 | 论坛 | 博客
  • 博客访问: 514716
  • 博文数量: 484
  • 博客积分: 10145
  • 博客等级: 上将
  • 技术积分: 5805
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(484)

文章存档

2011年(52)

2010年(107)

2009年(287)

2008年(38)

我的朋友

分类: LINUX

2010-07-26 02:53:21

http://guoq.blog.sohu.com/2556025.html

GNU Screen 简介


GNU Screen 是什么
最好的说法是:Screen 是的一个终端倍增器,用了它,你可以在一个终端里面,同运行多个可 交互式的程序。平时不少人总是同时打开多个终端,比如一个用VI编写代码,另一个则负责编译和运行,等等。总之至少有七八个终端同时布满桌面。如果使用了Screen,你只需要打开一个虚拟终端程序就行了。
Screen另一个比较酷的特点就能它能把运行着的程序与终端窗口分开。这意味着你在程序运行时关掉终端窗口,程序仍然还在运行。
Screen 起步:运行和在各终端窗口之间切换
在命令行中输入 $ screen 启动Screen程序。你要运行每个程序都是运行在窗口下的,而每个窗口都会有一个唯一的 编号,一但创建新的窗口,Scree就会给它一个新的编号。试着用 C-a c (意思是按住Ctrl加上a(注意大小定)松开后,再按c) 创建一个新的窗口。 这样你就有两个窗口了,可以用 C-a C-a 在两个窗口之间互相切换。另外的一些切换命令如下:
C-a n //下一个窗口
C-a p //上一个窗口
C-a // N 是一个数字,用来把当前视窗切换到指定N号窗口。
C-a " // 显示一个所有窗口的列表,你可以上VI风格的上下移动在各个窗口之间选择
另外,当你正工作在一个窗口中时使用 C-a A 可以给当前窗口取一个名字,这个名字将会显示在窗口列表中。当你退出程序后,窗口就会消失,你也可以使用 C-a K 来结束当前窗口中有问题程序
分离与结合:终端退耦的魔力
当你完成前面的练习后,你已经能创建一个screen 的任务了。你可以使用 C-a d 把任务与窗口分离。也可通过把关掉虚拟终端的程序来这一步。当然实际上你在窗口中运行 的程序没有受到任何影响。你可以试着关闭所以刚才打开的虚拟终端程序,如果你喜欢也可以登出再登入,重新运行Screen程序 screen -r (这个 -r 显然代表了“reattach"),你就能回到当初你"detached"时的状态。
拷贝,粘贴与scrollback 缓存
Screen程序可以缓存指定数旦的回卷(scrollback) 行。因为当你使用了Screen后,你的终端虚拟程序的滚动条将不再有用。所以当你想往回看看先前的显示的一些内容的话,你只能通过访问 ScrollBack 缓存来实现。首先你要用 C-a [ 命令进入“拷贝模式(copy mode)”,然后可以用上下左右等各键来察看你想要内容,并作标记,然后按 C-a ] 复制它们。当然Screen也可以把先前显示的内容记录到一个文件中,这里暂且不表。
监视窗口的活动与静止
在Screen中运行一堆程序有一个不好的地方,那就是你一次能监视一个程序运行的情况,因为只有一个窗口,(事实上,你可以把它们分开罗列出来,不过这 是高级内容,也暂且不表)。为了解决这个问题。Screen开发了一种可以监视窗口是否活动,或者静止。所谓活动应该是指窗口有新的显示,所谓静止则相 反。你可以用 C-a _ 打开或者关闭对当前窗口的30秒静止的监视,用 C-a M 打开或者关闭对当前窗口的活动监视。
终结Screen的运行
正如你在前面所看到的,因为窗口的“结合与分离”的功能,Sceen程序本身并不那样容易结束。单单关闭终端窗口,并不一定意味着结束了Screen程序,因为还有程序在后台,默默的等待着再复合。
就我所知,唯一比较优雅的方式(不是那种暴力的Kill 方式)是关闭每一个在Screen中运行的程序或者是Shell,当最后一个程序关闭后,Screen本身也就关闭了。
其它内容
当然,Screen能作的要比上文描述的多的多,但以上内容已足够你起步了。使用 C-a ? 你能得到更多的帮助,Screen的man 帮助也有不少信息。如还有问题可以上网求助,下面是一些因特网的资源。
阅读(753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~