我们在远程部署或者运行运行脚本的时候,在终端中运行的命令往往都是监听状态的,这时候如果我们断开连接或者关闭本地终端,会导致远程终端登出,命令中断,这时候使用 screen
就可以既能保证命令正常运行,又能断开远程。
SCREEN 软件介绍
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
- 会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。 - 多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。 - 会话共享
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
常用命令
- screen -S name,新建一个叫 name 的session,并切换到新建的这个session
- screen -r name, 切换到名字为 name 的session
- screen -d [name], 停止当前session,回到原来的session
- screen -ls,列出当前所有的session
- screen -L, 打开 output logging
常用快捷键
- Ctrl+a c -> 创建一个新的运行shell的窗口并切换到该窗口
- Ctrl+a n -> Next,切换到下一个 window
- Ctrl+a p -> Previous,切换到前一个 window
- Ctrl+a 0..9 -> 切换到第 0..9 个 window
- Ctrl+a [Space] -> 由视窗0循序切换到视窗9
- Ctrl+a Ctrl+a -> 在两个最近使用的 window 间切换
- Ctrl+a x -> 锁住当前的 window,需用用户密码解锁
彻底退出
可以使用 exit
来彻底退出当前 screen
。
更多使用方法,参考官网文档