前言
tmux 是一个终端复用器,能让你在一个终端里分屏出多个窗格,还能保存你的终端会话。尤其是在 SSH 连接到远程服务器工作的时候,网络情况不好的情况下 SSH 连接可能会意外断开,此时在该 SSH 会话中运行的命令也会被中断;在使用了 tmux 之后,只要 tmux 进程不结束,任务就不会中断,待恢复 SSH 连接后,tmux 可以让你快速恢复到之前的工作现场。
快捷键说明
tmux 的快捷键操作都需要先按下前缀快捷键,默认的前缀快捷键是Ctrl+b,需要先按下此快捷键后松开,然后再按下后续指令。所有的快捷键操作均需要在 tmux 会话中按下才能生效。
如分离会话的快捷键是Ctrl+bd,你需要先按下Ctrl+b,松开键盘,再按下d。其它快捷键同理。
在会话中,使用Ctrl+b?快捷键来展示所有的快捷键,按q退出帮助页面。
多会话
启动
tmux
,新建一个会话,默认名称是以数字序号,从 0 开始tmux new -s session_name
,新建一个会话并命名为「session_name」
退出
- 会话中不存在进程时会话会自动关闭,使用
exit
命令或者Ctrl+d关闭当前 shell tmux kill-session -t <会话编号/会话名称>
,杀死会话
分离
可以手动分离会话,在 SSH 断开的时候也会分离会话,只要会话中有进程该会话就不会自动关闭。
- 在会话中,使用Ctrl+bd分离当前会话
返回
tmux ls
,列出所有会话- Ctrl+bs,列出所有会话
tmux attach -t <会话编号/会话名称>
,返回会话tmux switch -t <会话编号/会话名称>
,切换会话
重命名
tmux rename-session -t <会话编号/会话名称> <新的会话名称>
- Ctrl+b$,重命名当前会话
多窗格(pane)
划分窗格
tmux split-window
,向下划分窗格(垂直)- Ctrl+b% ,向下划分窗格
tmux split-window -h
,向右划分窗格(水平)- Ctrl+b" ,向右划分窗格
切换光标
tmux select-pane -U
,光标切换到上一窗格- Ctrl+b↑
tmux select-pane -D
,光标切换到下一窗格- Ctrl+b↓
tmux select-pane -L
,光标切换到左一窗格- Ctrl+b←
tmux select-pane -R
,光标切换到右一窗格- Ctrl+b→
移动窗格
- Ctrl+bq ,显示窗格编号
tmux swap-pane -U
,把当前窗格与上一个窗格交换位置- Ctrl+b{ ,把当前窗格与上一个窗格交换位置
tmux swap-pane -D
,把当前窗格与下一个窗格交换位置- Ctrl+b} ,把当前窗格与下一个窗格交换位置
其它操作
- Ctrl+bz ,当前窗格全屏显示,再按一次还原。在全屏模式下
- Ctrl+bx ,关闭当前窗格
- Ctrl+b! ,把当前窗格拆分为一个独立窗口
- Ctrl+b[ ,开启复制模式,可以用用方向键或滚轮上下滚动,q退出。
多窗口(window)
一个会话中可以存在多个窗口,每个窗口中可以有多个窗格。
tmux new-window
,新建窗口tmux new-window -n <窗口名称>
,新建窗口- Ctrl+bc ,新建窗口
tmux select-window -t <窗口名称>
,切换到指定名称的窗口- Ctrl+bp ,切换到上一个窗口
- Ctrl+bn ,缺环到下一个窗口
- Ctrl+bnumber ,切换到指定序号的窗口