Menu Close

screen命令的常见用法

1. screen 简介

当我们在使用putty进行远程访问服务器时,进行远程访问的界面往往不能关掉,否则,程序将不再运行。而且,程序在运行的过程中,还必须时刻保证网络的通常,这些条件都很难得到满足。

为了解决上述问题,可以使用Linux下的screen命令,即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。下面介绍一些常用的screen命令。

具体使用如下:

我们可以使用screen -S u-net创建一个叫做u-net的session,这时我们要进入该session,需要使用screen -r u-net进入到该session中,此时就可以在该session里进行操作了,如运行程序。之后我们可以使用Ctrl + a +d命令将该session丢到后台进行处理。

注:

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
Ctrl-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

2. 示例:

2.1. screen 安装

centos7.6的最小化安装没有这个命令,需要自己安装

yum install screen -y

2.2. 新建一个会话窗口

[root@localhost bin]# screen -S demo
**解释:**如果不使用-S参数指定会话名称,那么就会默认使用当前的远程终端创建一个名称

2.3. 列出当前所有的会话窗口

[root@localhost screen-4.6.2]# screen -ls
There is a screen on:
13263.demo (Attached)
1 Socket in /var/run/screen/S-root
解释: 输出的前面的13263应该是这个会话的进程id

2.4. 退出当前的会话窗口(退出后这个screen就会消失)

[root@localhost ~]# exit

2.5. 远程分离指定的会话窗口

[root@localhost bin]# screen -d 13361
解释: -d参数后面可以跟会话的id或窗口名称
注意: 分离会话不是结束这个会话

2.6. 返回到指定的会话

[root@localhost bin]# screen -r 13361
经试验:
screen创建的窗口不存在层级关系,是平行的.一个screen只能有一个远程终端相连接

2.7. 新建一个会话窗口并运行指定程序(程序结束后,这个会话也就消失了)

[root@localhost ~]# screen vi demo.txt

2.8. 分离当前会话

ctrl+a,d

2.9. 清除dead会话(如果一个screen会话被杀死的话,使用清除命令清除一下)

[root@localhost ~]# screen -wipe
[root@localhost ~]# screen -ls

参考:http://man.linuxde.net/screen