在 Ubuntu 中安装 GNU Screen 非常简单:
sudo apt update
sudo apt install screen
screen
或者为会话命名:
screen -S session_name
所有 Screen 快捷键都以 Ctrl+a
为前缀:
Ctrl+a c
- 创建新窗口Ctrl+a n
- 切换到下一个窗口Ctrl+a p
- 切换到上一个窗口Ctrl+a "
- 显示窗口列表Ctrl+a 0-9
- 直接切换到指定编号的窗口Ctrl+a d
- 分离当前会话(会话在后台继续运行)Ctrl+a A
- 重命名当前窗口Ctrl+a k
- 终止当前窗口Ctrl+a \
- 终止所有窗口并退出 ScreenCtrl+a ?
- 显示所有快捷键帮助列出所有会话:
screen -ls
重新连接到分离的会话:
screen -r
如果有多个会话,可以指定会话ID或名称:
screen -r session_id
screen -r session_name
共享会话(允许多个用户同时连接):
screen -x session_name
日志记录:
screen -L
或在一个会话中:
Ctrl+a H
日志默认保存在 screenlog.0
文件中
分屏:
Ctrl+a S
- 水平分割Ctrl+a |
- 垂直分割Ctrl+a Tab
- 在分屏间切换Ctrl+a X
- 关闭当前分屏滚动模式:
Ctrl+a [
- 进入滚动模式Esc
或 Ctrl+a [
退出滚动模式Screen 的配置文件位于 ~/.screenrc
,可以自定义各种设置。例如:
# 启用状态栏
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
# 设置滚动缓冲区大小
defscrollback 10000
# 启动时显示欢迎信息
startup_message off
如果你需要更现代的功能,可以考虑:
- tmux
- Screen 的现代替代品
- byobu
- 基于 Screen 或 Tmux 的增强终端管理器
Screen 是一个强大的终端复用工具,特别适合长时间运行的任务或远程工作。掌握它可以显著提高你在命令行环境下的工作效率。