本文参考自 阮一峰老师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 $:重命名当前会话。
即最简的使用步骤:
-
1.新建会话tmux new -s my_session。 -
2.在 Tmux 窗口运行所需的程序。 -
3.按下快捷键Ctrl+b d将会话分离。 -
4.下次使用时,重新连接到会话tmux attach-session -t my_session。
窗格操作 & 窗口管理
这个用处没那么大,不过比较容易弄得很酷炫
例如,对于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或者终端的分屏&窗口管理快捷键差不多够用了
对于iterm2:
- ⌘ + d : 垂直分屏
- ⌘ + shift + d : 水平分屏
- ⌘ + ]
和 ⌘ + [
在最近使用的分屏直接切换
而对于Mac自带的终端:
-
command+w:关闭标签 -
command+t:新建标签 -
command+数字或command+左右方向键:切换标签 -
command+enter:切换全屏 -
command+f:查找 -
command+d:垂直分屏 -
command+shift+d:水平分屏 -
command+option+方向键:切换屏幕 -
ctrl+u:清除当前行 -
ctrl+a:到行首 -
ctrl+e:到行尾 -
ctrl+w:从光标位置删除至开始 -
ctrl+k:从光标位置删除至末尾
参考资料:
tmux cheatsheat[2]
参考资料
Tmux 使用教程: http://www.ruanyifeng.com/blog/2019/10/tmux.html
[2]tmux cheatsheat: https://blog.freecloud.dev/2023/05/03/tmux-cheatsheet/
本文由 mdnice 多平台发布