ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Tmux 终端复用器速查指南:CLI 命令、快捷键与命令模式全解析

Tmux 终端复用器速查指南:CLI 命令、快捷键与命令模式全解析 Tmux 终端复用器速查指南CLI 命令、快捷键与命令模式全解析【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference本文是对 Quick Reference 技术速查清单仓库中 docs/tmux.md 的深度扩展围绕 Tmux 最常用的 CLI 命令、前缀快捷键与命令模式展开并补充了背后的概念模型与实战用法。读完本文你将掌握会话Session、窗口Window、窗格Pane三级模型的日常操作能够独立完成创建/附加/终止会话、拆分与导航窗格、复制模式取词以及通过命令模式调整布局、管理缓冲区等完整操作。理解 Tmux 的三级模型与前缀键在记忆快捷键之前先建立两个核心概念它们是理解整份速查表的地图。会话Session一个独立的后台工作环境可以包含多个窗口。脱离终端后会话仍在后台运行这是 Tmux 断线不丢工作 的根基。窗口Window相当于一个标签页每个会话可开多个窗口窗口之间互不干扰。窗格Pane窗口内的屏幕分割单元可在同一窗口内并排运行多个程序如编辑器、编译进程、日志输出。Tmux 的所有交互快捷键都以**前缀键Prefix**开头默认前缀是Ctrlb。按下前缀后松开再按功能键即触发对应动作例如Ctrlb后按c表示新建窗口。前缀键可以通过set -g prefix C-a改为其他组合见下文环境与选项。Tmux CLI不进入交互界面也能管理会话Tmux 的 CLI 命令与交互快捷键是同一能力的两种入口。以下是 docs/tmux.md 中整理的常用 CLI 操作。新建会话不带任何参数直接启动即可在当前终端创建一个新会话$ tmux $ tmux new $ tmux new-sessionnew、new-session与无参数tmux等价在命令模式前缀 :内还可以直接输入:new完成同样的事。为会话命名便于后续按名管理$ tmux new -s myname # 创建名为 myname 的新会话命令模式下对应写法为:new -s myname。列出当前所有会话无论是否附加$ tmux ls $ tmux list-sessionsls是list-sessions的别名在会话内也可用快捷键Ctrlbs调出会话列表交互切换。附加attach到已存在的会话从外部终端回到某个后台会话称为附加$ tmux a $ tmux at $ tmux attach $ tmux attach-session这四个写法等价默认附加到最近一个会话。附加到指定名称的会话时使用-t参数$ tmux a -t myname $ tmux at -t myname $ tmux attach -t myname $ tmux attach-session -t myname-t是-target的缩写是 Tmux 命令中指定操作对象的通用参数后续的kill-session、swap-pane等命令同样适用。终止kill会话按名称删除会话会话内的所有窗口与窗格会一并结束$ tmux kill-ses -t myname # 杀死/删除名为 myname 的会话 $ tmux kill-session -t myname删除除当前会话之外的所有会话$ tmux kill-ses -a删除除 myname 之外的所有会话-a表示除指定目标外$ tmux kill-ses -a -t myname帮助与信息$ tmux infotmux info输出当前 Tmux 服务器、各会话、窗口、窗格的详细信息包括 PID、环境变量、绑定等在排查问题时非常有用该命令在入门场景中也常用来确认当前运行状态。配置管理Tmux 的启动配置默认位于~/.tmux.conf修改后需重新加载$ tmux source-file ~/.tmux.conf查看当前生效的全部全局选项$ tmux show-options -gshow-options -g会将~/.tmux.conf中所有全局选项及其当前值一次性列出是核对配置是否按预期生效的快速手段。复制模式像 Vim 一样选择文本Tmux 的复制模式Copy Mode允许你用键盘在回滚缓冲区中选择并复制文本其操作手感与 Vim 的选择方式高度相似。| 命令 | 描述 | | :- | - | |Ctrlb[| 进入复制模式 | |Space| 开始选择 | |Enter| 复制选择 | |q| 退出复制模式 | |Ctrlb]| 粘贴 buffer_0 的内容 |典型流程为Ctrlb[进入复制模式 → 方向键移动到起点 →Space开始选择 → 移动选中区域 →Enter完成复制 →q退出 →Ctrlb]粘贴。复制的文本进入编号缓冲区默认 buffer_0详见下文缓冲区与复制一节。Vim 联动复制模式下若开启了 vi 模式setw -g mode-keys vi即可用 Vim 的动作键如w、b、0、$等快速移动光标。Vim 动作的完整速查见仓库内 Vim 备忘清单 - 动作 一节二者配合可以大幅提升长文本选取效率。Tmux 快捷键速查入门先学会列出所有快捷键| 快捷键/命令 | 描述 | | :- | - | |Ctrlb?| 列出所有快捷键绑定 |Ctrlb?会以分页形式展示当前所有键绑定即list-keys的交互形态是新环境快速上手的第一入口。此外终端内执行tmux info可显示每个会话、窗口、窗格等的实时状态与快捷键列表互为补充。窗格Pane拆分与导航窗格是把一个窗口拆成多块屏幕的核心机制| 快捷键 | 描述 | | :- | - | |Ctrlb/%| 上下分割分隔线水平/ 左右分割%分隔线垂直 | |Ctrlb!| 将当前窗格独立成一个新窗口 | |Ctrlbx| 杀死当前窗格 | |CtrlbArrow | 按方向键导航窗格 | |CtrlbSpace| 循环切换窗格布局 | |Ctrlb{/}| 向左 / 向右移动当前窗格 | |Ctrlbo| 跳到下一个窗格 | |Ctrlbz| 切换窗格全屏放大/还原 | |Ctrlb;| 切回最后一个窗格 | |Ctrlbq| 短暂显示各窗格编号 | |Ctrlbq0...9| 跳到编号为 # 的窗格 |使用技巧z全屏放大适合临时聚焦单个窗格写代码再次按下还原q后窗格角会闪现编号数字此时直接按数字即可跳转Space则能在预设布局并排、上下、主从等间轮换。窗口Window / Tabs窗口相当于浏览器标签页是组织任务的第二层容器| 快捷键 | 描述 | | :- | - | |Ctrlbc| 创建新窗口 | |Ctrlbp/n| 上一个 / 下一个窗口 | |Ctrlb/%| 在窗口内上下 / 左右拆分窗格 | |Ctrlbw| 列出所有窗口供选择 | |Ctrlb,| 重命名当前窗口 | |Ctrlbf| 按名称查找窗口 | |Ctrlbl| 跳到最后一个上一个访问的窗口 | |Ctrlb.| 移动窗口改变窗口编号 | |Ctrlb| 关闭当前窗口 | |Ctrlb0...9| 跳到编号为 # 的窗口 |习惯建议为不同任务建窗口并命名,例如code、server、logs结合f查找可在窗口较多时快速定位。会话Session / Windows 组会话是最外层容器多个窗口从属于同一会话| 快捷键 | 描述 | | :- | - | |Ctrlbd| 从当前会话分离detach会话继续在后台运行 | |Ctrlbs| 显示所有会话可交互切换 | |Ctrlb$| 重命名当前会话 | |Ctrlb(/)| 切换到上一个 / 下一个会话 |d分离是日常使用频率最高的动作——按完后终端回到普通 shell但所有窗口与程序仍在后台运行下次tmux attach或Ctrlbs选择即可原样恢复。命令模式比快捷键更精细的控制快捷键本质是命令的绑定而命令模式允许直接输入完整命令表达能力更强。进入命令模式| 快捷键/命令 | 描述 | | :- | - | |Ctrlb:| 进入命令模式 |按下Ctrlb:后屏幕底部出现:提示符输入命令回车执行例如输入new -s myname相当于前面的:new -s myname。命令模式中的绝大多数命令也能在 shell 中通过tmux 命令调用。调整窗格大小| 命令 | 描述 | | :- | - | |resize-pane -D 20| 向下扩大当前窗格 20 行 | |resize-pane -U 20| 向上扩大当前窗格 20 行 | |resize-pane -L 20| 向左扩大当前窗格 20 列 | |resize-pane -R 20| 向右扩大当前窗格 20 列 |-D/-U/-L/-R分别对应下/上/左/右四个方向后面的数字是调整的单元格数量。该命令也可配合目标窗格使用如resize-pane -t 2 -D 10调整指定窗格。清单类命令| 命令 | 描述 | | :- | - | |list-keys| 列出所有键绑定命令 | |list-panes| 列出当前或指定窗口的所有窗格 | |list-windows| 列出当前会话的所有窗口 |list-keys输出即Ctrlb?展示的完整数据list-panes与list-windows会附带编号、尺寸、活动状态等信息便于脚本化处理。缓冲区与复制复制模式产生的文本存放在编号缓冲区buffer中以下是缓冲区的管理命令| 命令 | 描述 | | :- | - | |list-buffers| 列出所有缓冲区 | |show-buffer| 显示缓冲区 #0 的内容 | |capture-pane| 捕获窗格的完整内容屏幕输出到缓冲区 | |choose-buffer| 交互式选择缓冲区并粘贴 | |save-buffer a.txt| 将缓冲区内容保存到文件 a.txt | |delete-buffer -b 1| 删除编号为 1 的缓冲区 |实战场景当终端输出超过屏幕、又需要把某段日志留存时可capture-pane捕获当前窗格全部内容再save-buffer a.txt落盘多个候选内容用choose-buffer交互挑选后粘贴。delete-buffer -b 1用于清理指定编号的缓冲区不带-b则删除最近一个。环境与选项set / setw| 命令 | 描述 | | :- | - | |set -g OPTION| 为所有会话设置选项全局会话选项 | |setw -g OPTION| 为所有窗口设置选项全局窗口选项 | |setw -g mode-keys vi| 启用 vi 风格的复制模式按键 | |set -g prefix C-a| 将前缀键设置为Ctrla|setset-option管理会话级/服务级选项setwset-window-option管理窗口级选项-g表示全局生效后续新建的会话或窗口都会继承。两个高频组合setw -g mode-keys vi把复制模式切换到 vi 键位配合 Vim 动作速查 可获得编辑器一致的操作体验set -g prefix C-a将前缀从Ctrlb换成Ctrla对习惯 GNU Screen 的用户更友好改后所有快捷键均以新前缀开头。建议把这些选项写入~/.tmux.conf持久化修改后用tmux source-file ~/.tmux.conf重新加载。杂项窗格与窗口重排| 命令 | 描述 | | :- | - | |swap-pane -s 3 -t 1| 将窗格 3 与窗格 1 交换位置 | |swap-window -t -1| 将当前窗口与上一个窗口交换 | |setw synchronize-panes| 切换同步输入所有窗格同时接收键盘输入 | |join-pane -t :#| 将当前窗格合并到目标会话的 # 号窗口 |swap-pane -s 3 -t 1-s指定源窗格、-t指定目标窗格适用于把监控窗格挪到顺手位置swap-window -t -1负号表示相对位置-1即相邻的上一个窗口setw synchronize-panes开启后在一个窗格键入的内容会广播到同窗口所有窗格常用于对多台服务器批量执行相同命令再次执行即关闭join-pane -t :#把当前窗格搬进指定窗口格式为会话:窗口例如join-pane -t :1表示并入当前会话的 1 号窗口是跨窗口重组任务的有力工具。实战组合把速查表变成工作流将以上零散命令组合起来可以形成几种高频工作流多机运维新会话tmux new -s ops→ 拆分窗格Ctrlb%→setw synchronize-panes开启同步 → 在所有窗格中批量执行同样的 SSH 巡检命令 → 完成后再次执行setw synchronize-panes关闭同步。长任务托管编译/拉取等耗时任务放在独立窗格随时Ctrlbz放大盯进度即使终端关闭tmux attach后任务仍在。日志留存程序输出被刷屏时capture-pane捕获 →save-buffer log.txt保存避免肉眼滚动回看。布局整理用swap-pane、swap-window、join-pane把散落的窗格/窗口重组为编辑区 运行区 日志区的固定布局。相关参考Tmux 备忘清单本文的原始速查文档可在仓库首页 README.md 的命令分类中找到入口Vim 备忘清单 - 动作复制模式vi 模式下移动光标与选择文本的动作参考Screen 备忘清单同为终端复用器的 GNU Screen 速查可作为对比与备选方案。此外本仓库的速查清单由 package.json 中定义的构建工具链refs-cli将docs/下的 Markdown 渲染为网页版所有速查文档均遵循同一排版约定详见 Quick Reference 排版说明你可以在同一站点内按需检索其他命令与工具。【免费下载链接】reference面向开发者的技术速查清单Cheat Sheets集合整理常见技术、工具与开发流程帮助快速查阅关键信息提高开发效率。项目地址: https://gitcode.com/GitHub_Trending/referen/reference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表