tmux 使用指南
记录 tmux 的使用方法
基本概念
要用好 tmux,首先要了解三个相关的概念:会话 session、窗口 window、 窗格 pane。
session 可以理解为保持终端状态数据的后台。tmux 的一个重要应用场景就是我们需要在终端运行一个耗时很长的任务,又不想一直保持终端开着,这个时候 session 就能发挥作用了。我们通过 tmux 命令新建一个 session,在 session 里面运行指定的程序,然后通过 tmux 命令(快捷键)分离 session,让它保持在后台继续运行,并可以放心的关闭 tmux 外层终端。下次打开终端的时候,通过 tmux 命令接入 session,就可以查看程序运行的状态或者结果。
window 和 pane 则是在屏幕上展示 tmux 内层终端的载体,一个 session 可以绑定一个或多个 window(s),而一个 window 又可以绑定一个或多个 pane(s)。panes 是用来分割 window 的,这样一个屏幕上就能展示出多个终端,让工作更高效。我们可以通过快捷键在不同的 panes 之间切换,来控制不同的终端。windows 则类似于桌面环境的工作区,通过切换 windows 来让屏幕显示不同工作区的内容。
总结一下就是,pane 依存于 window,window 依存于 session。每次我们新建一个 session 的时候会自动创建一个 window,每个 window 又至少有一个 pane。我们可以根据需求新建 window 和 pane。当我们关闭一个 session 的时候,所有依附于它的 window 也都关闭。当我们关闭一个 window 时,所有依附于它的 pane 也都关闭。当一个 window 只有最后一个 pane 时,我们关闭 pane 时,这个 window 也会关闭。当一个 session 只有最后一个 window 时,我们关闭 window,这个 session 也会关闭。每个 pane 绑定一个 tmux 内层终端,当我们希望运行在这个终端的程序不被终止时,一定要保证这个 pane 不被关闭。我们还可以通过分离操作退出 tmux 界面而保持 session 在后台运行,这样所有与这个 session 关联的程序也继续保持运行。这段话很啰嗦,但是层次很分明,逻辑很简单。
常用命令与快捷键
操作 | 命令 | 快捷键 |
---|---|---|
新建会话 | tmux new -s <session-name> |
|
分离会话 | tmux detach |
^b + d |
查看会话列表 | tmux ls |
^b + s |
接入会话 | tmux attach -t <session-name> |
|
杀死会话 | tmux kill-session -t <session-name> |
^d |
切换会话 | tmux switch -t <session-name> |
|
重命名会话 | tmux rename-session -t <session-name> <new-name> |
^b + $ |
创建窗口 | tmux new-window -n <window-name> |
^b + c |
切换窗口 | tmux select-window -t <window-name> |
^b + w / n / p |
重命名窗口 | tmux rename-window <window-name> |
^b + , |
关闭窗口 | tmux kill-window -t <window-name> |
^b + & |
纵向分割窗口 | tmux split-window |
^b + “ |
横向分割窗口 | tmux split-window -h |
^b + % |
激活不同方位窗格 | tmux select-pane -U / -D / -L / -R |
^b + <arrow key> / ; / o |
最大化/还原窗格 | ^b + z | |
关闭窗格 | ^b + x |
官方文档
更多详细用法请参考官方文档