本文由wuyao721(吴遥)编写,转载请注明出处。
文章链接: http://www.wuyao721.com/?p=40
新浪微博:weibo.com/wuyao721

有时候,我们需要远程登录到linux一段比较长的时间。在使用过程中网络不好,连接断开了。我们的工作被中断了,又得重头再来,纠结。screen能够解决这样问题,它就好像一个容器一样把进程都装在里面。连接断开了没关系,下次再登录进来,您的程序还在运行。那么为什么说到emacs呢?因为emacs牛叉到把整个linux系统都装在里面。

1. 修改配置文件.screenrc,添加以下两行:
defflow off
escape ^Zz
第一行关闭流控制,取消screen的快捷键C-s(它与emacs有冲突);第二行将C-a替换为C-z,前者与emacs有冲突,后者则没有。

2. 运行emacs
这里推荐只用一个screen,一个screen就可以装多个进程(窗口)了。太多的screen反而更乱。
screen emacs

3. 连接断开后再打开emacs
screen -r

4. 夺回控制权
有时候emacs已经被screen占有(Attached),但是那个screen不受控制了。这时就要把screen杀了,抢回emacs。
4.1 找出screen的pid:ps aux | grep screen
4.2 杀了这个screen:kill XXX
4.3 取回我们的进程:screen -D -RR

5. screen常用快捷键
对于emacser来说,screen只是用来保护emacs不挂掉的工具。所以尽管screen的快捷键不少,但是我们只要记住几个就行了。(C-z在emacs里是没有被用到的,所以并不冲突)
C-z c创建一个新的运行shell的窗口并切换到该窗口
C-z n切换到下一个窗口
C-z d暂时断开screen会话
C-z k杀掉当前窗口
C-z w显示所有窗口列表

参考资料:
Screen和Emacs的完美结合 http://blog.csdn.net/circleexpandor/article/details/5808258
使用screen管理你的远程会话 http://www.ibm.com/developerworks/cn/linux/l-cn-screen/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐