本文参考自 阮一峰老师Tmux 使用教程[1]
Tmux,不仅仅是分屏那么简单。。。
与tmux类似的工具是screen
将窗口与会话"解绑" 对于没有图形界面只有shell的场景(如服务器),尤其有用..这是其最核心解决的问题(窗口管理啥的只能算锦上添花的辅助功能)
即便是窗口关了,ssh断了,只要不重启机器, 不结束tmux进程,“会话中的任务”就一直还在 (不然之前这种case,只能用nohup,但用nohup无法恢复会话了~)
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话时间一长就忘了,无法直观获悉0号,1号都对应啥内容。更好的方法是为会话起自定义的名称
tmux new -s 自定义的会话名称
Ctrl+b d
或 tmux detach
会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行
tmux ls
可查看当前所有的 Tmux 会话
tmux attach
用于重新接入某个已存在的会话
# 使用会话编号
$ tmux attach -t 0
# 使用会话名称
$ tmux attach -t 自定义的会话名称`
tmux kill-session
用于杀死某个会话
# 使用会话编号
$ tmux kill-session -t 0
# 使用会话名称
$ tmux kill-session -t 自定义的会话名称`
tmux switch
用于切换会话
# 使用会话编号
$ tmux switch -t 0
# 使用会话名称
$ tmux switch -t 自定义的会话名称
tmux rename-session
用于重命名会话
tmux rename-session -t 0 <new-name>
上面命令将0号会话重命名
下面是一些会话相关的快捷键
Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话。
Ctrl+b $:重命名当前会话。
即最简的使用步骤:
这个用处没那么大,不过比较容易弄得很酷炫
例如,对于tmux,可以通过执行
tmux
ctrl+b
%
实现竖直分屏(ctrl+b将tmux激活为"快捷键接受模式")
更多命令:
Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格与上一个窗格交换位置。
Ctrl+b }:当前窗格与下一个窗格交换位置。
Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。
其实Mac上iTerm2或者终端的分屏&窗口管理快捷键差不多够用了,所以我觉得会话管理,才是Tmux的核心能力
对于iTerm2:
- ⌘ + d : 垂直分屏
- ⌘ + shift + d : 水平分屏
- ⌘ + ]
和 ⌘ + [
在最近使用的分屏直接切换
而对于Mac自带的终端:
参考资料:
tmux cheatsheat[2]
[1]
Tmux 使用教程: http://www.ruanyifeng.com/blog/2019/10/tmux.html
[2]
tmux cheatsheat: https://blog.freecloud.dev/2023/05/03/tmux-cheatsheet/