终端复用工具 tmux 的使用方式与推荐配置
高效终端复用工具:tmux 安装与配置指南
在日常开发中,你是否遇到过以下问题:
- 一个 SSH 连接被断开,所有进程都随之终止;
- 打开了多个终端窗口,切换起来杂乱低效;
- 想要在一个窗口里同时查看日志、运行命令,却没法灵活分屏。
tmux(terminal multiplexer) 就是为了解决这些问题的神器。它能让你在一个终端里开多个窗口和面板,并且会话可以“挂起”与“恢复”,即使断开 SSH,再次连接也能继续之前的工作。
本文将介绍 tmux 的安装、基本使用,并分享一份优化过的配置,让你的开发体验更顺畅。
1. tmux 安装
在不同系统上的安装方式略有不同:
macOS(推荐使用 Homebrew):
brew install tmux
Ubuntu / Debian:
sudo apt update
sudo apt install tmux -y
CentOS / Fedora:
sudo yum install tmux -y
安装完成后,可以通过以下命令检查版本:
tmux -V
2. tmux 基础使用
常用命令速览(默认前缀键是 Ctrl+b
):
-
开启新会话
tmux new -s mysession
-
分离会话(保留后台运行):
Ctrl+b d
-
列出会话
tmux ls
-
恢复会话
tmux attach -t mysession
-
分屏
- 水平分屏:
Ctrl+b "
- 垂直分屏:
Ctrl+b %
- 水平分屏:
-
新建窗口
Ctrl+b c
有了这些基础操作,你就能在一个 tmux 会话里同时管理多个任务了。
3. 推荐 tmux 配置
新建或编辑 ~/.tmux.conf
文件,加入以下配置:
set -sg escape-time 0
set-option -g history-limit 30000# 在当前目录创建新窗口 / 分屏
unbind-key c
bind c new-window -c "#{pane_current_path}"
unbind-key '"'
unbind-key '%'
bind '"' split-window -c '#{pane_current_path}'
bind '%' split-window -h -c '#{pane_current_path}'
# end# 显示面板标题(面板索引 + 命令)
set -g pane-border-status top
set -g pane-border-format "#{pane_index} #T"# 窗口和面板编号从 1 开始
set -g base-index 1
setw -g pane-base-index 1# 保持环境变量同步(如 SSH、X11 等)
set-option -g update-environment "DBUS_SESSION_BUS_ADDRESS DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"# 启用鼠标支持(滚动/切换/拖拽面板)
set -g mouse on# 默认使用 zsh
set -g default-command /usr/bin/zsh
4. 配置详解
-
set -sg escape-time 0
减少前缀键后续按键的延迟,使操作更加流畅。 -
set-option -g history-limit 30000
增加滚动缓冲区,方便回溯日志或输出内容。 -
在当前目录创建新窗口 / 分屏
默认情况下,新窗口会在 home 目录启动,这里改为继承当前目录,更贴合日常开发需求。 -
set -g pane-border-status top
在面板边框顶部显示标题,结合pane-border-format
,可以快速识别每个 pane 里在运行的命令。 -
窗口和面板从 1 开始编号
更直观,不用从 0 开始数。 -
set -g mouse on
启用鼠标支持,可以直接用鼠标滚动、点击切换窗口或拖动面板,非常实用。 -
set -g default-command /usr/bin/zsh
默认使用 zsh 作为 shell(如果你平时用 bash,可以改成/bin/bash
)。
5. 使用效果展示
配置完成后,重新加载配置:
tmux source-file ~/.tmux.conf
现在你就能体验到:
- 快速无延迟的键盘操作;
- 新窗口 / 分屏自动继承当前目录;
- 鼠标滚动查看历史输出;
- 面板顶部显示命令,窗口和面板编号从 1 开始。
一个高效、顺手的终端工作流,就此打造完成。
6. 总结
tmux 是开发者必备的终端利器,能够极大提升工作效率。
通过安装、学习基础命令,再配合合理配置,你就能在命令行中享受媲美 GUI 的多任务体验。
推荐大家先熟悉基本操作,再根据自己的习惯调整配置。本文提供的配置是一份高效通用的模板,适合大多数开发场景。