朋友给的服务器网不太好,老是掉线,我想起了 screen。但是我也不是很熟悉,对 screen 的了解仅限于 screen -S xxx
和 screen -R xxx
安装
命令在网上可以很轻松的查到
CentOS/Redhat
yum -y install screen #for CentOS/Redhat
Debian/Ubuntu
apt-get -y install wget screen #for Debian/Ubuntu
使用
参数说明
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称>将指定的 screen 作业离线。
-h <行数>指定视窗的缓冲区行数。
-m 即使目前已在作业中的 screen 作业,仍强制建立新的 screen 作业。
-r <作业名称>恢复离线的 screen 作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的 screen 作业。
-s 指定建立新视窗时,所要执行的 shell。
-S <作业名称>指定 screen 作业的名称。
-v 显示版本信息。
-x 恢复之前离线的 screen 作业。
-ls 显示目前所有的 screen 作业。
-wipe 检查目前所有的 screen 作业,并删除已经无法使用的 screen 作业。
常用 screen 参数及快捷操作
screen -S session_name # 新建一个叫 session_name 的 session
screen -ls # 列出当前所有的 session
screen -r session_name # 回到 session_name 这个 session
screen -d session_name # 远程 detach 某个 session
screen -d -r session_name # 结束当前 session 并回到 session_name 这个 session
在每个 screen session 下,命令都以 ctrl+a、ctrl-a,常用的几个操作如下:
ctrl-a x # 锁住当前的 shell window,需用用户密码解锁
ctrl-a d # detach,暂时离开当前 session,将当前 screen session 转到后台执行,并会返回没进 screen 时的状态,此时在 screen session 里,每个 shell client 内运行的 process (无论是前台/后台) 都在继续执行,即使 logout 也不影响
ctrl-a z # 把当前 session 放到后台执行,用 shell 的 fg 命令则可回去。