你是否遇到过 ssh 或 telnet 到服务器执行一个长时间的任务,等了几个小时离完成只剩几秒钟时网络中断了,重连后一切等待付诸东流的狗血剧情?
screen 是一款基于会话的多窗体复用终端工具。用户可以创建若干个会话(session),每个会话又可以创建多个窗体,窗体可以在后台运行又可以部分地放在前台上下左右分屏显示。使用它可以解决你的烦恼,远程连上服务器执行命令后随便断开终端,关电脑潇洒走人让程序自己跑即可。过段时间远程连上服务器附着终端(attach),瞄上两眼。
会话管理
会话状态
Attached(被附着,即有用户进入会话)
Detached(分离状态,即没有用户进入该会话)
创建会话
1、创建自动命名的会话
screen
2、创建一个命名的会话
screen -S <name>
会话可以重名,会以不同的 PID 被区分(PID.name)
3、创建一个命名的会话或附着到已存在会话(推荐)
screen -R <name>
不同于 -S,-R 会判断指定名字的会话是否已存在,若存在则直接附着。
分离会话
在 screen 终端里按下 Ctrl+a d 键,此时回到父终端,screen 终端将继续运行。
查看会话
screen -ls
附着会话
screen -r <pid/name>
附着一个会话,如果已经被附着则会提示已被占用。
也可以用 -R 附着,不可以用 pid,会被当成 name 处理。
同步附着会话
screen -x <pid/name>
用 -x 替换 -r 可好玩儿了,已被附着的会话也可以被附着,而且任意操作都会反应到其他用户。这简直就是终端界的“远程桌面”了。
结束会话
1、在会话里结束会话
(1) 退出命令
exit
终端结束后会回到父终端
(2) 快捷键
Ctrl+a k
2、不附着会话的情况下结束会话
screen <-R/-S/-r> <pid/name> -X quit
-R、-S、-r 三者任意一个就可以
窗体操作
在一个会话中通过快捷键可以创建多个窗体。可以只显示一个窗体,也可以将显示屏分成上下左右多个区域来显示窗体。
Ctrl+a c 创建一个窗体,会自动打开 shell
Ctrl+a " 列出所有窗体,然后可以通过方向键或数字键选择显示指定窗体
Ctrl+a 0 输入一个数字,显示该编号的窗体
Ctrl+a n 切换到下一个窗体
Ctrl+a p 切换到上一个窗体
Ctrl+a A 重命名当前窗体(注意,大写字母需要使用组合键 Shift + a )
显示区操作
显示区并不是窗体,而是供窗体显示的区域,同一个窗体可以显示在不同的分区
Ctrl+a S 将当前显示区(region)分为上下两个区
Ctrl+a | 将当前显示区(region)分为左右两个区(注意,是竖线,不是 I 或 l)
Ctrl+a Tab 将焦点切换到下一个显示区
Ctrl+a X 关闭当前区域
Ctrl+a Q 关闭除当前区域外的所有显示区
显示区的大小是可以根据需要调整的,这里就不细说了。
其他快捷键
Ctrl+a ? 显示帮助信息
|