tmux使用

tmux是一个优秀的终端管理包,他可以创建多个Session,每个Session内有多个Window,而每个Window又可以分为多个Pane,接下来我会介绍tmux的基本命令以及对Session、Window和Pane有一个更直观的理解

1. tmux安装

MacOS的安装只需要一个命令即可

1
brew install tmux

2. tmux命令

2.1 创建和后台挂起

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建一个tmux session, 默认名字为0、1、2...
tmux

# 也可以指定session的名字
tmux new -s test

# 后台挂起session,并回到主bash
tmux detach

# 回到某个已经创建的session中
tmux attach -t <session_name>

# 查看所有session
tmux ls

# 删除某个session
tmux kill-session -t <session_name>

# 关闭某个session,这个与删除相同,当你进入某个session、window、pane中时,运行exit就可以自动关闭了
exit

如果我们再跑一个程序,无法在终端输入命令,那可以使用ctrl+b进入命令模式,然后快速按d来退出当前tmux窗口

下面是开启一个tmux session的状态

2.2 Session中的Window操作

在明白如何创建session之后,我们要知道怎么在一个session中操作window,操作window分为创建、切换以及删除。在tmux操作中,每当我们执行一个命令都需要先按一下ctrl+b进入命令状态

1
2
3
4
5
6
7
8
9
10
11
# 创建window
ctrl+b + c

# 列出当前session的所有window
ctrl+b + w

# 切换window
ctrl+b + 0~9序号

# 关闭window
ctrl+b + &

下面展示了切换window的状态,即ctrl+b+w,从列表中可以看出有两个session,session0只有一个window,session1有3个window

2.3 Window中控制Pane

知道如何控制window之后,我们在window中进行分屏,即pane操作。在分屏时分为水平分屏、垂直分屏、在不同pane之前切换、关闭当前pane

1
2
3
4
5
6
7
8
9
10
11
# 水平分屏
ctrl+b + %

# 垂直分屏
ctrl+b + "

# 切换pane
ctrl+b + 上下左右键

# 关闭pane
ctrl+b + x

下面展示了水平分屏后的状态

3. 自定义快捷键

如果嫌上述命令麻烦,例如每次要使用ctrl+b,可以参考这篇博文设置更改,此外还有其他的命令这里没有进行列举,感兴趣的可以自己去网上搜索

最后有一张博客园的截图展示了Session、Window和Pane之间的关系,以及窗口一些标签的含义