GNU Screen

机缘巧合,终于下定决心学习闻名已久的GNU Screen。Screen有两大主要功能——多窗口管理器,以及attach/detach功能。

多窗口功能是我学习它的主要原因,在Cygwin下一直用rxvt,可惜没有tab功能,经常要开好几个窗口。有了Screen,只要一个窗口运行Screen,在Screen里面可以运行多个命令行程序,当然主要还是Shell。然后可以像Emacs切换buffer一样,切换到相应的Shell。这个功能本来的设计目的是解决登录远程机器只有一个终端的问题。

attach/detach主要也是用于登录远程机器,所谓detach即Screen退出但在Screen里面运行的程序仍在运行,detach之后即使从远程机器logout也没关系,下次登录后可以运行Screen去attach上次detach的东西,这样,前面的所有窗口及里面运行的程序又回来了。我很少需要登录远程机器,但我想到了另一个应用场景。在启动Netmeeting后,Cygwin X窗口会消失,退出Netmeeting后,X又回来了。利用Screen的attach功能,我们可以在X窗口消失后,启动一个非X的Shell,然后运行screen -x命令连接到X里面的Screen,查看里面的应用程序运行状况,而不必等到冗长的会议结束。

和Emacs一样,没有配置过的Screen也能用,但不太方便。我的配置比较简单,都是网上拿来的。

2 thoughts on “GNU Screen

  1. screen 果然很好用,以前在 linux 下有用 mlterm,是一个支持 tab 切换的终端软件,因此对 screen 需求不大。

    现在在 win 下经常用到远程登录,这样的话,就不需要专门去找支持 tab 切换的终端软件了,screen 搞定。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据