![94223969bc7fbb8efd5bbd9d79efe119.png](https://i-blog.csdnimg.cn/blog_migrate/6e45e6a8be4c66d024450fda054a451d.png)
什么是Screen?
看看官网怎么介绍的,这是地址http://www.gnu.org/software/screen/,原文为:
Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells
这里把重点圈出来,windows manager
窗口管理,主要用于执行长时间不能中断的备份、测试和传输任务等(恢复会话);以及共享终端会话窗口(窗口共享)
安装Screen
现在许多的 Linux 发行版通常都预装了 Screen 。通过运行以下命令,可以查看系统是否安装了 Screen :
ubuntu@ubuntu ~> screen -v
Screen version 4.08.00 (GNU) 05-Feb-20
如果你的系统并未安装 Screen ,则可以执行以下命令来安装:
$ sudo apt install screen
创建启动会话
未使用前终端为zsh(示例中已安装oh-my-zsh)
![de906c10348cf4e9fe61fbde6838e7c0.png](https://i-blog.csdnimg.cn/blog_migrate/c84f7097c23096adb975e3c3434ef88b.png)
使用screen
启动一个 Screen 会话后,终端进入screen
![809649af7aa1e8a39989735a9ca55327.png](https://i-blog.csdnimg.cn/blog_migrate/40e65f6309e2b6621014324e2e8f99b2.png)
使用 screen -ls
查看已经创建的screen会话:
ubuntu@ubuntu ~> screen -ls
There are screens on:
15649.docker (2020年08月25日 09时32分13秒) (Attached)
15601.pts-2.ubuntu (2020年08月25日 09时29分44秒) (Attached)
7117.nc (2020年08月24日 13时54分42秒) (Detached)
3 Sockets in /run/screen/S-ubuntu.
使用 screen -S <会话名>
创建并进入screen会话,这里创建一个名为“test”的会话:
ubuntu@ubuntu ~> screen -S test
ubuntu@ubuntu ~> screen -ls
There are screens on:
18558.test (2020年08月25日 10时27分05秒) (Attached)
15649.docker (2020年08月25日 09时32分13秒) (Attached)
15601.pts-2.ubuntu (2020年08月25日 09时29分44秒) (Attached)
3 Sockets in /run/screen/S-ubuntu.
分离和重新连接会话
进入 Screen 终端里执行命令后,可以输入会话分离快捷键 Ctrl a+d
,回到原来的shell会话中。这时,Screen 会话会继续留在后台执行更新任务。而且无论是网络断开连接,还是关闭原来的 Shell 会话,它都不会受到影响。
![7e41b7eaa71a3047b5a93d1a19b9808a.png](https://i-blog.csdnimg.cn/blog_migrate/b21118a34787b7f425a6f2cc9286771f.png)
如果你想重新连接到已分离的 Screen 会话,以查看更新进程,只需执行以下命令:
$ screen -r <会话名>
会话的嵌套
即在 Screen 会话中的使用 Screen 会话,实现用户在一个窗口中使用多个终端。
在 Screen 终端再次输入 screen
命令,或者按 Ctrl a+c
快捷键,这会在你原来的 Screen 会话中再启动一个 Screen 会话,而原来的 Screen 会话则会在后台保持活动。
![8761a94ad911c0f19cfc7a985823238f.png](https://i-blog.csdnimg.cn/blog_migrate/c1657997caa4020f85d5a3cced2c5daa.png)
可以使用快捷键 Ctrl a+n
(切换至下一个 Screen 会话)或者 Ctrl a+p
(切换至上一个 Screen 会话)进行切换。
关闭会话
可以使用 Ctrl d
快捷键,也可以输入 exit
命令关闭:
$ exit
另外,进入 Screen 终端后,按 Ctrl a+?
(先按Ctrl +a
,松开后按shift+/
)快捷键,可以查看 Screen 所附带的所有命令:
![0e86c0c3e5b9e66055cff83d11d6a604.png](https://i-blog.csdnimg.cn/blog_migrate/a378b278873a7ea08994b99b042e2f5e.jpeg)
为了提高输入效率,这里将一些常用的screen命令设置为简写,编辑~/.bashrc
(如果已经使用oh-my-zsh,为~/.zshrc
)
ubuntu@ubuntu ~> vim ~/.zshrc
设置简写
alias sr='screen -r'
alias sls='screen -ls'
alias ss='screen -S'