本人github
screen
是一个功能强大的终端复用器,它允许你在一个物理终端下运行多个终端会话,并且可以在会话之间进行切换,还可以在会话中运行的程序和脚本在后台持续运行,即使你已经断开了与服务器的连接。
以下是 screen
的一些基本使用方法:
安装 screen
在大多数 Linux 发行版中,screen
可能已经预装在系统上。如果没有,你可以通过包管理器安装:
# 在基于 Debian/Ubuntu 的系统上
sudo apt install screen
# 在基于 RHEL/CentOS 的系统上
sudo yum install screen
启动 screen
要启动一个新的 screen
会话,只需在终端中输入 screen
:
screen
创建新的窗口
在 screen
会话中,你可以创建多个窗口:
# 创建新窗口
Ctrl-a c
这里的 Ctrl-a
是 screen
命令的前缀;在按下 Ctrl-a
后,再按其他键来执行 screen
命令。
在窗口间切换
你可以在不同的 screen
窗口间切换:
# 切换到下一个窗口
Ctrl-a n
# 切换到上一个窗口
Ctrl-a p
# 切换到特定编号的窗口(例如 0)
Ctrl-a 0
分离和重新附着 screen
会话
如果你想断开当前会话并让它在后台运行,可以分离 screen
会话:
# 分离当前会话
Ctrl-a d
分离后,你可以关闭终端或断开与服务器的连接,screen
会话和其中运行的程序都会继续在后台运行。要重新连接到一个已经分离的 screen
会话,可以使用:
# 列出所有的 screen 会话
screen -ls
# 重新附着到一个特定的会话(用会话ID替换 1234)
screen -r 1234
结束 screen
会话
要结束当前 screen
窗口中的会话,可以退出窗口中运行的 shell,通常是通过输入 exit
命令或按 Ctrl-d
。
自定义 screen
screen
的许多行为都可以通过一个名为 .screenrc
的配置文件进行自定义,该文件位于你的家目录中。
这只是 screen
功能的冰山一角。screen
还提供了很多高级特性,如会话命名、窗口命名、区域分割、会话锁定等。你可以通过阅读 screen
的手册页来了解更多:
man screen
记住,screen
使用 Ctrl-a
作为默认的命令前缀,但是这个前缀可以在 .screenrc
配置文件中自定义。如果你习惯于使用 Ctrl-a
来回到命令行的开头,可能需要改变 screen
的默认前缀键或者使用 Ctrl-a a
在 screen
中获得 Ctrl-a
的原有行为。