什么是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)
使用screen
启动一个 Screen 会话后,终端进入screen
使用 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 会话,它都不会受到影响。
如果你想重新连接到已分离的 Screen 会话,以查看更新进程,只需执行以下命令:
$ screen -r <会话名>
会话的嵌套
即在 Screen 会话中的使用 Screen 会话,实现用户在一个窗口中使用多个终端。
在 Screen 终端再次输入 screen
命令,或者按 Ctrl a+c
快捷键,这会在你原来的 Screen 会话中再启动一个 Screen 会话,而原来的 Screen 会话则会在后台保持活动。
可以使用快捷键 Ctrl a+n
(切换至下一个 Screen 会话)或者 Ctrl a+p
(切换至上一个 Screen 会话)进行切换。
关闭会话
可以使用 Ctrl d
快捷键,也可以输入 exit
命令关闭:
$ exit
另外,进入 Screen 终端后,按 Ctrl a+?
(先按Ctrl +a
,松开后按shift+/
)快捷键,可以查看 Screen 所附带的所有命令:
为了提高输入效率,这里将一些常用的screen命令设置为简写,编辑~/.bashrc
(如果已经使用oh-my-zsh,为~/.zshrc
)
ubuntu@ubuntu ~> vim ~/.zshrc
设置简写
alias sr='screen -r'
alias sls='screen -ls'
alias ss='screen -S'