1 screen介绍
Linux screen命令用于多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。
用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
在Screen环境下,所有的会话(session)都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。
2 screen 基本语法
screen [-AmRvx -ls -wipe]
[-d <作业名称>]
[-h <行数>]
[-r <作业名称>]
[-s <shell>]
[-S <作业名称>]
3 screen 参数说明
-A | 将所有的视窗都调整为目前终端机的大小。 |
-d<作业名称> | 将指定的screen作业离线。 如果本地用的Shell出现“卡顿”,自己关闭了这个窗口,但是重新连接时,发现状态为“Attached”,不能连接。这时,你也可以使用这个命令,先中断会话,再重新连接。 |
-h<行数> | 指定视窗的缓冲区行数。 |
-m | 即使目前已在作业中的screen作业,仍强制建立新的screen作业。 |
-r<作业名称> | 恢复离线的screen作业。 screen -r 'screen -ls中所说的socket的编号' eg,screen -r 11697 screen -r yourname -> 回到yourname这个session |
-R | 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业 |
-s<shell> | 指定建立新视窗时,所要执行的shell |
-S<作业名称> | 指定screen作业的名称。 screen -S 'yourname' 新建一个叫yourname的会话(session)
|
-v | 显示版本信息。 screen -v |
-x | 恢复之前离线的screen作业。 |
-ls或--list | 显示目前所有的screen作业。 screen -ls |
-wipe | 检查目前所有的screen作业,并删除已经无法使用的screen作业。 |
3.1 删除
screen -X -S [socket name] quit
4 session模式下的按键
ctrl+a+c | 创建一个新的运行shell的窗口并切换到该窗口 |
ctrl+a+n | Next,切换到下一个 window |
ctrl+a+p | Previous,切换到前一个 window |
ctrl+a+0~9的数字 | 切换到第 0..9 个 window |
ctrl+a+d | detach 暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 |
ctrl+a+w | 显示所有窗口列表 |
ctrl+a+t | time,显示当前时间,和系统的 loadscreemn |
参考文献: