Screen用法

以往,我们可能有过这样的经历,ssh到一台服务器上面,经常要打开多个终端窗口来完成不同的事情。例如,编译nginx的时候,窗口就会被占据,只能重新打开一个窗口干别的事。更重要的是当ssh突然断线了,窗口中运行的进程就会中断掉,这是很杯具的事情。那么,我们可以用Screen解决这种问题。
简单的说下,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,我们可以开启一个会话,可以在会话中创建多个窗口,在不同的窗口中完成不同的操作,每个窗口互不影响。更重要的是,会话可以挂起,挂起,挂起!就是说,即使我们的ssh断线了,会话中的进程依旧会正常运行。
Screen的用法就不一一介绍了,自行度娘或者man screen,这里简单只说下基本用法。

安装:
自行百度。。。
个人推荐下最新的源码编译安装,太旧的版本是不支持分割窗口的,下载链接:http://ftp.gnu.org/gnu/screen/
下载后解压------->./configure--------->make && make install----即可

基本用法:
screen -S test    //创建一个名为test的会话
screen -d test    //挂起名为test的会话,可以写pid
screen -r test    //回复名为test的会话,可以写pid
screen -wipe    //清除所有dead状态的会话
screen -ls    //列出所有会话,pid
exit    //慎用!退出当前窗口,窗口中的任务也会结束!!

快捷键:
screen的键盘操作都是以Ctrl+a为起点,例如要挂起会话,按键盘Ctrl+a后,再按一下d,终端提示如:[detached from xxx]
Ctrl+a ?    //查看帮助,(Ctrl+a;Shift+/)
常用:
Ctrl+a w    //显示所有会话中的窗口列表,在左下角
Ctrl+a d    //挂起当前会话,效果与screen -d name相同
Ctrl+a n    //切换到下一个窗口
Ctrl+a p    //切换到上一个窗口
Ctrl+a 0-9    //在第0到9个窗口之间切换
Ctrl+a k    //杀死当前窗口,窗口中的进程也杀死
Ctrl+a x    //锁定会话,需要输入用户密码解锁
Ctrl+a S    //水平分割窗口
Ctrl+a |    //垂直分割窗口
Ctrl+a tab  //窗口之间切换
Ctrl+a X    //关闭分割窗口