LINUX下如何使用screen或tmux管理终端会话_Linux终端多会话管理指南

使用Screen或Tmux可解决远程任务因网络中断而终止的问题。首先在Ubuntu 22.04上安装screen或tmux,通过screen -S或tmux new -s创建命名会话,运行任务后按Ctrl+A D(Screen)或Ctrl+B D(Tmux)分离会话,断开后可用screen -r或tmux attach -t重新连接。使用screen -ls或tmux list-sessions查看现有会话,支持恢复、清理无响应会话。还可配置~/.tmux.conf文件自定义快捷键和启用鼠标,提升操作效率。

如果您在远程服务器上执行长时间运行的任务,但网络不稳定导致连接中断,任务可能会被迫终止。使用终端多路复用工具可以保持会话持续运行,即使断开连接也能重新附着。以下是解决此问题的步骤:

本文运行环境:Dell XPS 13,Ubuntu 22.04

一、使用Screen创建持久化会话

Screen允许用户在一个终端窗口中运行多个会话,并支持会话分离与重连。这对于需要长时间运行的进程尤其有用。

1、安装screen工具,运行命令:sudo apt install screen

2、启动一个新的screen会话,输入:screen -S session_name,其中session_name为自定义会话名。

3、在当前会话中执行所需命令,如长时间的数据处理脚本。

4、按下Ctrl+A后松开,再按D键即可分离当前会话。

5、重新连接到已分离的会话,使用命令:screen -r session_name

二、使用Tmux进行高级会话管理

Tmux提供了比Screen更灵活的窗口分割和会话管理功能,适合复杂任务场景下的终端操作。

1、通过包管理器安装tmux:sudo apt install tmux

2、创建新会话并命名,命令为:tmux new -s session_name

3、在会话中运行程序,可使用快捷键Ctrl+B后再按%实现水平分割窗格。

4、要脱离当前会话,按下Ctrl+B后松开,再按D键。

5、恢复指定会话时,执行:tmux attach -t session_name

三、查看并管理现有会话

无论是Screen还是Tmux,都支持列出当前所有会话,以便用户选择要恢复的会话。

1、查看所有screen会话,运行:screen -ls

2、查看所有tmux会话,执行:tmux list-sessions

3、若发现孤立会话(detached),可通过-r参数重新接入。

4、对于无响应的会话,可先杀掉进程再清理,screen使用screen -X -S session_name quit

四、配置Tmux提高操作效率

通过修改配置文件,可以自定义Tmux的快捷键和界面显示,提升长期使用的舒适度。

1、创建配置文件:nano ~/.tmux.conf

2、添加常用设置,例如更改前缀键为Ctrl+A:set-option -g prefix C-a

3、启用鼠标支持,加入:set-option -g mouse on

4、保存文件后,在任意tmux会话中执行:tmux source-file ~/.tmux.conf以加载配置。