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) |