tmux终端复用器使用指南

## 为什么需要tmux SSH断开、网络波动导致终端会话中断,跑了一天的训练任务全丢。或者打开一堆终端窗口,切来切去找不到刚才的日志。tmux解决这两个问题:会话持久化 + 多窗口管理。 ## 安装
# macOS
brew install tmux

# Ubuntu/Debian
apt install tmux

# CentOS/RHEL
yum install tmux
## 核心概念 tmux有三层结构:Session(会话) > Window(窗口) > Pane(面板)。 Session是独立的工作区,关掉终端再连回来还能恢复。Window类似浏览器标签页。Pane是窗口内的分割区域。 ## 快速上手 ### 启动和分离
# 创建新会话
tmux new -s mywork

# 分离会话(保持后台运行)
# 快捷键:Ctrl+b d

# 重新附着
tmux attach -t mywork
### 常用快捷键 所有操作前先按前缀键 `Ctrl+b`(默认),按功能键:
# 窗口管理
c     创建新窗口
,     重命名当前窗口
n/p   切换到下一个/上一个窗口
0-9   切换到指定编号窗口

# 面板操作
%     垂直分割面板(左右)
"     水平分割面板(上下)
方向键 切换面板
x     关闭当前面板
空格  切换面板布局

# 其他
d     分离会话
?     查看所有快捷键
[     进入复制模式(用vi键位翻页)
### 配置文件 `~/.tmux.conf` 让操作更顺手。我的配置:
# 修改前缀键为Ctrl+a(按起来顺手)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 开启鼠标支持(可以点选面板、滚屏)
set -g mouse on

# 设置256色
set -g default-terminal "screen-256color"

# 窗口编号从1开始
set -g base-index 1

# 分割面板快捷键改得更顺手
bind | split-window -h
bind - split-window -v

# 重载配置
bind r source-file ~/.tmux.conf \; display "Reloaded!"
保存后执行 `tmux source ~/.tmux.conf` 或按 `Ctrl+b :source-file ~/.tmux.conf` 生效。 ## 实战场景 ### 场景1:远程服务器跑任务 在雨云的服务器上跑模型训练,SSH连上去后:
tmux new -s train
python train.py
# Ctrl+b d 分离,关掉终端
天连回来:`tmux attach -t train`,训练还在跑。雨云的机器稳定,配合tmux基本不用担心任务中断。 ### 场景2:同时监控多个日志
tmux new -s monitor
# Ctrl+b % 垂直分割
# 左面板:tail -f app.log
# 右面板:tail -f error.log
# Ctrl+b " 再把右面板水平分割,看系统资源
htop
### 场景3:复制粘贴 默认鼠标选中就是复制,但tmux有自己的剪贴板。按 `Ctrl+b [` 进入复制模式,用vi键位移动,空格开始选中,回车复制。`Ctrl+b ]` 粘贴。 ## 脚本化操作 写脚本批量创建会话:
#!/bin/bash
SESSION="dev"

tmux new-session -d -s $SESSION

# 第一个窗口:编辑器
tmux rename-window -t $SESSION:1 "editor"
tmux send-keys -t $SESSION:1 "vim ." C-m

# 个窗口:服务器
tmux new-window -t $SESSION -n "server"
tmux send-keys -t $SESSION:2 "npm run dev" C-m

# 第三个窗口:git
tmux new-window -t $SESSION -n "git"
tmux send-keys -t $SESSION:3 "git status" C-m

tmux select-window -t $SESSION:1
tmux attach -t $SESSION
## 常见问题 问:tmux里滚屏怎么搞? 答:`Ctrl+b [` 进入复制模式,用PgUp/PgDn翻页,q退出。或者配置文件里开鼠标支持,直接用滚轮。 问:重命名会话/窗口? 答:`tmux rename-session -t old new`,窗口按 `Ctrl+b ,` 直接改名。 问:窗口太多乱了? 答:`Ctrl+b w` 显示窗口列表,回车选中。或者 `Ctrl+b f` 搜索窗口名。 问:tmux和screen有什么区别? 答:tmux配置更灵活,分屏功能强,社区活跃。screen太老了,别用了。 ## 备份配置 把 `~/.tmux.conf` 放到Git仓库里,换机器拉下来就能用。我习惯在雨云的服务器上也同步一份,新机器秒变熟悉的工作环境。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容