tmux (Terminal Multiplexer) 是一个非常强大的终端复用工具,它允许你在一个终端窗口中创建、管理多个终端会话、窗口和窗格。以下是一些 tmux 的常用命令,分为几个主要类别:
一、核心概念:前缀键 (Prefix Key)
所有 tmux 内部的命令都需要先按下前缀键,然后才能按相应的命令键。
默认的前缀键是:Ctrl + b
所以,当你看到 Ctrl-b c 时,意思是:
-
按住
Ctrl键,然后按b键,然后松开Ctrl和b。 -
迅速按
c键。
二、会话 (Session) 管理
会话是 tmux 的最高级别容器,你可以启动多个独立的会话,并在会话之间切换。
-
tmux或tmux new: 启动一个新的tmux会话。 -
tmux new -s my_session: 启动一个名为my_session的新会话。 -
tmux ls或tmux list-sessions: 列出所有当前的tmux会话。 -
tmux attach -t my_session: 连接(或重新连接)到名为my_session的会话。 -
tmux attach: 如果只有一个会话,直接连接到它。 -
Ctrl-b d: 从当前会话中分离(detach)。你的会话会在后台继续运行,你可以之后再连接回来。 -
tmux kill-session -t my_session: 杀死(终止)名为my_session的会话。 -
Ctrl-b $: 重命名当前会话。
三、窗口 (Window) 管理
一个会话可以包含多个窗口,每个窗口都有自己的编号。
-
Ctrl-b c: 创建一个新窗口。 -
Ctrl-b n: 切换到下一个窗口。 -
Ctrl-b p: 切换到上一个窗口。 -
Ctrl-b <数字>(例如Ctrl-b 0,Ctrl-b 1): 切换到指定编号的窗口。 -
Ctrl-b w: 以交互式列表显示所有窗口,你可以选择要切换的窗口。 -
Ctrl-b ,: 重命名当前窗口。 -
Ctrl-b &: 关闭当前窗口(会提示确认(y/n))。 -
Ctrl-b .: 将当前窗口移动到不同的位置(提示输入新索引)。 -
Ctrl-b f: 查找窗口(按窗口名搜索)。
四、窗格 (Pane) 管理
一个窗口可以进一步分割成多个窗格,每个窗格都运行一个独立的 shell。
-
Ctrl-b %: 将当前窗格垂直分割(分成左右两个窗格)。 -
Ctrl-b ": 将当前窗格水平分割(分成上下两个窗格)。 -
Ctrl-b <箭头键>(例如Ctrl-b ↑,Ctrl-b ↓,Ctrl-b ←,Ctrl-b →): 切换到指定方向的相邻窗格。 -
Ctrl-b o: 顺时针切换到下一个窗格。 -
Ctrl-b x: 关闭当前窗格(会提示确认(y/n))。 -
Ctrl-b z: 放大/缩小(zoom)当前窗格,使其占据整个窗口。再次按下可恢复。 -
Ctrl-b space: 切换当前窗格的布局(预设了几种分割布局,循环切换)。 -
Ctrl-b {: 将当前窗格与上一个窗格交换位置。 -
Ctrl-b }: 将当前窗格与下一个窗格交换位置。 -
Ctrl-b Alt-<箭头键>(或Ctrl-b Ctrl-<箭头键>): 调整当前窗格的大小。例如:-
Ctrl-b Alt-↑: 向上缩小窗格 -
Ctrl-b Alt-↓: 向下放大窗格 -
Ctrl-b Alt-←: 向左缩小窗格 -
Ctrl-b Alt-→: 向右放大窗格 -
注意:这需要一些配置,或者直接使用命令模式。
更通用的调整大小方法(命令模式):
-
Ctrl-b : resize-pane -U 10(向上调整10行) -
Ctrl-b : resize-pane -D 10(向下调整10行) -
Ctrl-b : resize-pane -L 10(向左调整10列) -
Ctrl-b : resize-pane -R 10(向右调整10列)
-
-
Ctrl-b q: 显示窗格编号。显示后,输入数字可以直接切换到对应窗格。 -
Ctrl-b !: 将当前窗格破裂(break)成一个新窗口。 -
Ctrl-b ;: 切换到上次活动的窗格。 -
Ctrl-b : set-window-option synchronize-panes: 切换窗格同步模式。开启后,你在一个窗格中输入的命令会同步到所有其他窗格中执行,非常适合同时在多台服务器上执行相同命令。再次执行可关闭。
五、复制模式 (Copy Mode) 与粘贴
tmux 可以让你复制终端输出的内容,即使它们已经滚动出屏幕。
-
Ctrl-b [: 进入复制模式。-
进入复制模式后,你可以使用 Vim 风格的按键(或 Emacs 风格,取决于你的配置)进行导航:
-
hjkl或 箭头键: 移动光标 -
Ctrl-u/Ctrl-d: 向上/向下翻页 -
Space: 开始选择(标记区域) -
Enter: 结束选择,复制选中的内容。
-
-
-
Ctrl-b ]: 粘贴上次复制的内容。
六、其他常用命令
-
Ctrl-b ?: 显示所有快捷键的帮助信息。 -
Ctrl-b t: 显示一个时钟。 -
Ctrl-b :: 进入tmux命令模式。你可以在这里输入各种tmux命令,例如:-
Ctrl-b : source-file ~/.tmux.conf(重新加载tmux配置文件) -
Ctrl-b : new-window(创建新窗口) -
Ctrl-b : kill-pane(关闭当前窗格)
-
-
Ctrl-b !: 将当前窗格转换为一个独立的新窗口。
七、自定义 (~/.tmux.conf)
tmux 强大的一个原因是可以高度自定义。你可以在 ~/.tmux.conf 文件中定义自己的快捷键、修改状态栏、设置主题等。
-
修改前缀键: 如果你觉得
Ctrl-b不方便,可以修改。例如改为Ctrl-a(与 Screen 相似):unbind C-b set -g prefix C-a bind C-a send-prefix修改后,需要
Ctrl-b : source-file ~/.tmux.conf来重新加载配置。
掌握这些常用命令,你就能大大提高在终端下工作的效率!