有时候putty连接服务器,当数据量较大,运行时间较长时,直接跑命令,窗口或许异常终止,不得不重新跑。可以使用Linux下的screen命令,即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
参数说明:
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
使用:
创建 screen 终端:
screen -S jamesyoung
screen -S 创建名称为jamesyoung的screen终端。
screen -ls
screen -ls 查看现有的screen终端。
screen -r jamesyoung
screen -r 恢复名称为jamesyoung的screen终端。
screen -wipe jamesyoung
清除dead会话,若因为某一个原因其中一个终端死掉,这时screen -list会显示该终端成为dead状态,使用screen -wipe命令清除该终端。
用 screen -ls, 显式当前状态为Attached, 但当前没有用户登陆些会话。screen此时正常状态应该为(Detached)
此时用screen -r <session-id>,怎么也登不上。
解决方法:screen -D -r <session-id>
-D -r 先踢掉前一用户,再登陆。
There are screens on:
13961.james (12/10/2020 07:24:19 PM) (Detached)
也可以直接kill掉终端。
kill 13961