通过SSH或者telent远程登录到Linux服务器,运行一些需要很长时间或者根本不知道耗时多少才能完成的任务,比如安装LNMP、Nginx升级、ftp传输等等,通常情况下我们都是为每一个这样的任务开一个远程终端窗口,必须等待它们执行完毕,而在此期间关掉窗口或者断开连接,这个任务进程就会被杀掉,一切半途而废。为解决这个问题,LINUX防断网工具-screen “应运而生”!
一、screen命令
“ Screen 是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。”
二、安装screen
- CentOS系统:yum install screen
- Debian/Ubuntu系统:apt-get install screen
三、使用方法
以安装LNMP为例:
- 创建一个名字为lnmp的screen会话。Linux命令:screen -S lnmp
- 无人值守安装安装lnmp:
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && LNMP_Auto="y" DBSelect="2" DB_Root_Password="12345678" InstallInnodb="y" PHPSelect="4" SelectMalloc="1" CheckMirror="n" ./install.sh lnmp
- 暂时离开,保留screen会话中的任务或程序。操作:快捷键Ctrl+A+D(即按住Ctrl,依次按A,D)
- 恢复screen会话。Linux命令:screen -r lnmp
- 关闭screen的会话。Linux命令:exit
四、常用命令
- 创建名为XXX的screen会话:screen -S XXX
- 列表所有screen会话:screen -ls
- 恢复名为XXX的screen会话:screen -r XXX
- 检查所有screen会话,并删除已经无法使用的screen任务:screen -wipe
- 关闭screen的会话:exit
注:linux命令中区分大小写。
五、常用快捷键
- Ctrl+A+D :暂时离开,保留screen会话中的任务或程序
- Ctrl+A+C :在当前screen会话中创建窗口
- Ctrl+A+W :窗口列表
- Ctrl+A+N :下一个窗口
- Ctrl+A+P :上一个窗口
- Ctrl+A+ 0-9 :在第0个窗口和第9个窗口之间切换
注:Ctrl+A+D,即按住Ctrl,依次单按下A键,D键
六、参考文档
1、 Linux screen命令 | 菜鸟教程
2、 linux screen 命令详解 - David_Tang - 博客园
3、 Manpage of SCREEN