screen
是一个用于管理多个终端会话的实用工具,常用于在单个终端窗口中运行多个虚拟终端。它允许用户在一个终端窗口中分离和重新连接会话,非常适合在远程服务器上工作或长时间运行任务时使用。
主要功能
1.会话管理:
可以创建多个虚拟终端会话,并在这些会话之间切换。
即使断开与服务器的连接,会话仍会在后台运行。
2.会话分离与恢复:
可以分离(detach)当前会话,稍后重新连接(reattach)到同一个会话。
非常适合在远程工作时保持任务运行。
3.多窗口支持:
可以在一个 screen
会话中创建多个窗口,并在这些窗口之间切换。
4.会话共享:
允许多个用户同时连接到同一个 screen
会话,适合协作工作。
5.日志记录:
可以将终端输出保存到日志文件中。
常用命令
-
启动一个新的
screen
会话:screen
这会创建一个新的会话并进入其中。
-
创建命名会话:
screen -S session_name
可以为会话指定一个名称,方便后续管理。
-
分离当前会话:
按下Ctrl + A
,然后按D
(Detach)。
或者使用命令:screen -d
-
列出所有会话:
screen -ls
这会显示所有正在运行的
screen
会话。 -
重新连接到会话:
screen -r session_name_or_pid
通过会话名称或进程 ID 重新连接到会话。
-
创建新窗口:
按下Ctrl + A
,然后按C
(Create)。 -
切换窗口:
按下Ctrl + A
,然后按N
(Next)或P
(Previous)。 -
结束当前会话:
在会话中输入exit
或按下Ctrl + D
。 -
日志记录:
按下Ctrl + A
,然后按H
开始记录日志。日志会保存到当前目录下的screenlog.x
文件中。
示例场景
1.远程服务器任务:
在远程服务器上启动一个长时间运行的任务(如编译或数据处理)。
使用 screen
启动会话,分离会话后断开连接。
稍后重新连接并恢复会话,查看任务进度。
2.多任务管理:
在一个终端中创建多个窗口,分别运行不同的任务(如开发、测试、日志监控等)。
3.协作工作:
多个用户连接到同一个 screen
会话,实时协作。