SSH 远程会话管理工具 – screen 使用教程
刚接触 Linux 时最怕的就是 SSH 远程登录 Linux VPS 编译安装程序时(比如安装 lnmp)网络突然断开,或者其他情况导致不得不与远程 SSH 服务器链接断开,远程执行的命令也被迫停止,只能重新连接,重新运行。使用 screen 可以解决这个问题。
一、screen 是什么?
Screen 是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen 中有会话的概念,用户可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 telnet/SSH 连接窗口那样。
二、如何安装 screen 命令?
除部分精简的系统或者定制的系统大部分都安装了 screen 命令,如果没有安装,CentOS 系统可以执行:yum install screen ;
CentOS 8 上移除了 screen,需要安装 epel 后安装 screen 执行:yum install screen
# 安装 epel
yum install epel-release
# 如果无法安装,尝试以下命令
# CentOS/RHEL 5 :
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
# CentOS/RHEL 6 :
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# CentOS/RHEL 7 :
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Debian/Ubuntu 系统执行:apt-get install screen
三、screen 命令使用方法?
3.1 创建 screen 会话
可以先执行:screen -S lnmp
,screen 就会创建一个名字为 lnmp 的会话。
3.2 暂时离开,保留 screen 会话中的任务或程序
当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键 Ctrl+a d (即按住 Ctrl,依次再按 a,d)
3.3 恢复 screen 会话
当回来时可以再执行执行:screen -r lnmp
即可恢复到离开前创建的 lnmp 会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen
会列出当前存在的会话列表。
如果因为某种异常情况,但你断开了 SSH 连接,但 screen 状态为 Attached 时,可以使用
screen -D -r lnmp
,先踢掉前一用户,再登陆。
3.4 关闭 screen 的会话
执行:exit
,会提示:[screen is terminating],表示已经成功退出 screen 会话。
四、远程演示
首先演示者先在服务器上执行 screen -S test
创建一个 screen 会话,观众可以链接到远程服务器上执行 screen -x test
观众屏幕上就会出现和演示者同步。
五、常用快捷键
Ctrl+a c :在当前 screen 会话中创建窗口 Ctrl+a w :窗口列表 Ctrl+a n :下一个窗口 Ctrl+a p :上一个窗口 Ctrl+a 0-9 :在第 0 个窗口和第 9 个窗口之间切换