tmux 入门:让远程 Linux 终端断线也不丢任务
在云服务器上跑长时间任务(编译、训练模型、数据迁移)时,最怕的就是 SSH 断线——终端一关,前台进程跟着被挂断,几个小时的工作白费。tmux(terminal multiplexer,终端复用器)正好解决这个问题:它把会话放在服务器端运行,客户端断开后会话依然存在,重新连上就能接着用。本文用最少的命令带你上手。
一、安装
Ubuntu/Debian:sudo apt install -y tmux
CentOS/EulerOS/openEuler:sudo yum install -y tmux
安装后执行 tmux -V 查看版本,确认可用。
二、三个核心概念
1. 会话(session):一组工作的集合,断线后仍在后台运行。
2. 窗口(window):会话里的"标签页",一个会话可以有多个窗口。
3. 窗格(pane):把一个窗口切成多块,同时看多个终端。
tmux 的快捷键都以"前缀键"开头,默认是 Ctrl+b:先按 Ctrl+b,松开,再按功能键。
三、会话管理
新建并命名会话:tmux new -s build
暂时离开(detach):Ctrl+b 然后按 d,会话继续在后台跑
查看所有会话:tmux ls
重新进入:tmux attach -t build
彻底关闭:在会话里输入 exit,或 tmux kill-session -t build
给会话起有意义的名字很重要,一台机器上同时跑几个任务时,靠名字就能快速找到。
四、窗口与窗格
Ctrl+b c:新建窗口;Ctrl+b n / p:切换下一个 / 上一个窗口;Ctrl+b ,:重命名当前窗口。
Ctrl+b %:左右分屏;Ctrl+b ":上下分屏;Ctrl+b 方向键:在窗格间移动;Ctrl+b x:关闭当前窗格。
一个常见布局是:左边跑服务,右上看日志(tail -f),右下用 htop 盯资源占用。
五、一个实用场景
假设要在云服务器上编译一个大项目:
1. ssh 登录后执行 tmux new -s build
2. 运行 make -j4 2>&1 | tee build.log
3. 按 Ctrl+b d 离开,然后可以放心关掉本地电脑
4. 第二天重新 ssh 登录,执行 tmux attach -t build,编译输出原样还在
相比 nohup 加后台运行,tmux 的好处是能随时回到交互界面,看到完整输出,还能继续输入命令。
六、两条小配置
在家目录新建 ~/.tmux.conf:
set -g mouse on # 允许鼠标点击切换窗格、滚动查看历史
set -g history-limit 10000 # 增大回滚缓冲区
保存后在 tmux 里执行 tmux source-file ~/.tmux.conf 立即生效。
七、注意事项
- tmux 会话保存在服务器内存中,服务器重启后会话会消失,重要输出记得用 tee 写入文件。
- 在 tmux 里滚动查看历史,可以按 Ctrl+b [ 进入复制模式,用方向键或 PageUp 翻页,按 q 退出。
- 不再使用的会话及时 kill 掉,避免长期占用资源。
总结:记住 new -s、Ctrl+b d、ls、attach -t 这四个操作,就能解决 90% 的"断线丢任务"问题。习惯之后,再配合窗口和分屏,远程运维效率会明显提升。
- 点赞
- 收藏
- 关注作者
评论(0)