tmux
tmux 安装
brew install tmux # Mac
sudo apt install -y tmux # Ubuntu/Debian
tmux 中的名称与前缀键
在 tmux 中,有三个基本的概念
- session : 会话/任务
- window : 窗口
- pane :窗格
在 tmux 中,使用快捷键是使用 ctrl+B
去唤起快捷键的 (MacOS 中则是 control+B
),叫前缀键 (网上可能缩写为 C+B
)
例如挂起 session 的快捷键是
ctrl+B d
。意思是,先按下前缀键ctrl+B
唤起快捷键操作,然后接着按下d
进行相应操作
tmux 的会话管理
新建会话
新建一个默认的 session
tmux
这时候新建一个默认的 session ,底部有一个状态栏。左侧 [0] 0:zsh*
是窗口编号、名称和终端信息,右侧是当前的系统信息。
为了方便 session 的管理,在新建 session 时,(推荐)指定名称
tmux new -s <session_name>
# example : create a session to test
tmux new -s test
# [test] 0:zsh*
这时候的 session 名称就是 test
了, [test]0:zsh*
挂起会话
当想要挂起一个 session 让其在后台继续工作而不是退出的时候
tmux detach
也可以使用快捷键 ctrl+B d
挂起当前 session
这时候该 session 会继续挂在后台运行继续执行任务 (显示为 [detach (from seesion xxx)]
),直到再次被唤起或被 kill 掉。
查看会话
我们想查看当前 tmux 挂在后台的 session 时,可以
tmux list-sessions
tmux ls # 简写
# test: 1 windows (created Sun Aug 25 19:49:08 2024)
快捷键 ctrl+B s
如果已经在某个 session 内的时候,可以通过快捷键 ctrl+B s
来查看,黄色高光部分就是当前正在运行的 session
进入会话
当我们想要进入一个 session 的时候,可以通过 session 的编号或者名字来进入
tmux attach -t <session_name>
tmux a -t <session_name> # 简写
例如当前运行的两个 session 分别是编号为 0
和名称为 test
的 session
我们想要进入其中一个 session 的时候,可以通过编号进入,也可以通过名称进入
tmux a -t 0
tmux a -t test
退出会话
当完成任务后,需要彻底退出 session 而不是挂在后台的时候,可以
tmux kill-session -t <session_name>
# example :
tmux kill-session -t test
这时候 session 就会被 kill 掉,并且出现 [exited]
,表示已经退出了。在 tmux ls
查看 session 的时候,也不会有该 session 了
退出当前 session 的快捷键是 ctrl+d
切换会话
执行命令,可以从当前的 session 快速切换到另一个 session:
tmux switch -t <session_name>
重命名会话
tmux rename-session -t <old_session_name> <new_session_name>
# example : rename test to run
tmux rename-session -t test run
快捷键 ctrl+b $
TIP
后续内容还没整理完成
窗格管理
划分窗格
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>
:按箭头方向调整窗格大小。 prefix + (ctrl)+上下左右箭头 : 与上面命令不同的是,ctrl + b按完之后,不要松开ctrl,一直按着,然后再按箭头来调整。不过因为在mac下ctrl+箭头是切换屏幕,所以还得在偏好设置->键盘->快捷键->Mission Control里把对应的快捷键取消掉。Ctrl+b q
:显示窗格编号。
窗口管理
新建窗口 ctrl+b c
重命名窗口 ctrl+b ,
关闭窗口 ctrl+b x
快捷键
设置
# Use Alt-arrow keys to switch panes
# 不用按prefix,直接用alt+箭头在pane之间switch。%%
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
# 不用按prefix,直接用shift+箭头在window之间switch。
bind -n S-Left previous-window
bind -n S-Right next-window
# Mouse mode
# 开启鼠标模式。用鼠标就能切换window,pane,
set -g mouse on
# Set easier window split keys
# 这一部分是用来更方便切分pane的。prefix + v 代表竖着切,prefix + h 代表横着切。比起默认的切割方法不仅直观而且方便。
bind-key v split-window -h
bind-key h split-window -v
# Easy config reload
# prefix+r 加载文件
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"