Linux下使用screen命令,来进行类似多窗口操作,断开SSH进程会继续执行。
常用命令示例
screen -S session_name # 新建一个叫session_name的session
screen -ls(或者screen -list) # 列出当前所有的session
screen -r session_name # 回到session_name这个session
screen -d session_name # 远程detach某个session
screen -d -r session_name # 结束当前session并回到session_name这个session
screen中按键控制
(ctrl+a 意为同时按下 Ctrl 键和 A 键,ctrl+a x 意为先同时按下 Ctrl 键和 A 键,再按 X 键)
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 命令则可回去。
ctrl+a :quit #类似vim的:wq的用法,关闭该screen及该screen内的进程
参数
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
参考链接:https://handerfly.github.io/linux/2019/03/31/Screan%E5%91%BD%E4%BB%A4%E7%9A%84%E4%BD%BF%E7%94%A8/