tmux 终端复用的五个实用技巧
远程登录服务器干活时,最怕的就是网络一抖、SSH 断开,跑了一半的编译或数据迁移跟着中断。tmux 作为终端复用工具,可以让会话脱离 SSH 连接独立存活,还能在一个窗口里分屏、多任务切换。下面整理五个日常最实用的 tmux 技巧。
一、会话管理:断线不丢任务
新建一个带名字的会话,方便之后找回:
tmux new -s deploy
在会话里按 Ctrl+b 再按 d 即可分离(detach),会话和其中的进程继续在后台运行。之后无论是重新 SSH 登录还是换了一台电脑,都可以重新接入:
tmux ls
tmux attach -t deploy
不再需要的会话可以直接关闭:
tmux kill-session -t deploy
建议给每个长期任务单独起会话名,例如 build、logs、db,排查时一眼就能看出哪个会话在做什么。
二、窗口与分屏:一屏多用
一个会话里可以开多个窗口(window),每个窗口又能切成多个面板(pane):
Ctrl+b c:新建窗口;Ctrl+b n/Ctrl+b p:切换到下一个 / 上一个窗口Ctrl+b %:左右分屏;Ctrl+b ":上下分屏Ctrl+b 方向键:在面板间移动;Ctrl+b z:把当前面板临时放大,再按一次还原
典型用法是左边跑服务,右边 tail 日志,下方留一个 shell 随时执行命令,比来回开多个 SSH 窗口高效得多。
三、复制模式:翻看和复制历史输出
终端输出滚出屏幕后,按 Ctrl+b [ 进入复制模式,可以用方向键或 PageUp 往回翻,按 q 退出。默认历史行数较少,可以在配置里调大:
set -g history-limit 50000
开启 vi 风格按键后,在复制模式下可以用 / 搜索关键字,用 v 选择、y 复制,查找报错信息非常方便:
setw -g mode-keys vi
四、用配置文件提升体验
tmux 的配置放在 ~/.tmux.conf,下面是几个常用设置:
# 开启鼠标:点击切换面板、拖动调整大小、滚轮翻页
set -g mouse on
# 窗口编号从 1 开始,方便键盘操作
set -g base-index 1
setw -g pane-base-index 1
# 关闭窗口后自动重新编号
set -g renumber-windows on
修改后无需重启,在会话里执行下面的命令即可生效:
tmux source-file ~/.tmux.conf
五、脚本化:一条命令搭好工作环境
tmux 的所有操作都可以用命令完成,因此很适合写成脚本,一键还原常用布局:
#!/bin/bash
tmux new-session -d -s work -n main
tmux split-window -h -t work:main
tmux send-keys -t work:main.1 'tail -f /var/log/syslog' C-m
tmux new-window -t work -n top
tmux send-keys -t work:top 'htop' C-m
tmux attach -t work
另外,send-keys 还能让你在不进入会话的情况下向其中的进程发送命令,适合在定时任务或运维脚本里操作长期运行的程序。
小结
tmux 的核心价值是让终端会话与网络连接解耦:任务放进会话里跑,SSH 断了也不怕。再配合分屏、复制模式、合理的配置和脚本化布局,就能把远程运维的效率提升一个档次。建议从“每次登录服务器先开一个 tmux 会话”这个习惯开始。
- 点赞
- 收藏
- 关注作者
评论(0)