Tmux使用说明:

1.tmux会话退出

1
2
3
1. 输入exit 然后 ‘enter’
2.ctrl+b,than press ‘x’
3.ctrl+d

注意:1,2,3的区别:

1.直接退出tmux窗口

2,3.都是依次关闭tmux会话中的窗口,直到关闭最后一个窗口时,退出tmux窗口

2.前缀键

tmux窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。

举例来说:

帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。

然后,按下ESC 键或q键,就可以退出帮助。

3.会话管理

3.1新建会话

启动tmux窗口第一个窗口编号是0,第二个窗口编号是1,以此类推。这些窗口对应的会话,就是0号会话,1号会话。

使用编号区分会话的话不太直观,更直观的是给会话取名

1
[root@bogon ~]# tmux new -s nws01

img

3.2分离会话(退出但是后台会话依旧存在)有奇用

在 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
在tmux 会话中执行
# Ctrl+b d
执行以上命令后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行


#查看当前所有的 Tmux 会话
# tmux ls
# tmux list-session

[root@bogon ~]# tmux ls
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]
[root@bogon ~]#

[root@bogon ~]# tmux list-session
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]
[root@bogon ~]#


# 注意:
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]

是意思如下:
nws01: tmux 会话名字
2 windows: 会话中有2个窗口

3.3 重新接入已存在的会话

tmux attach : 用于重新接入某个已存在的会话

# 使用会话编号
$ tmux attach -t 0 # 如果会话没有名字,以默认编号命名时

# 使用会话名称
$ tmux attach -t

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 重新接入已存在的 tmux 会话
# tmux attach -t <会话编号>
# tmux attach -t <会话名字>
# 注意 -t 后参数输入 tmux list-session 查询结果中 冒号前的字段即可。
若 会话有名字:nws01 , -t nws01
若 会话没有名字,已默认编号为名字, -t 默认编号即可

# 会话名是默认编号
[root@bogon ~]# tmux list-session
0: 1 windows (created Wed Nov 22 17:07:20 2023) [108x19]
1: 1 windows (created Wed Nov 22 17:07:33 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]# tmux attach -t 1 # 成功接入 已存在会话,会话名为:1
[detached]
[root@bogon ~]#


[root@bogon ~]# tmux ls
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]# tmux list-session
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]
[root@bogon ~]#


[root@bogon ~]# tmux attach -t nws01 # new01 : tmux 会话session 名字

3.4 切换会话

tmux switch -t <param>: 用于切换会话

注意 -t 后参数输入 tmux list-session 查询结果中 冒号前的字段即可。
若 会话有名字:nws01 , -t nws01
若 会话没有名字,已默认编号为名字, -t 默认编号即可

img

3.5杀死会话

tmux kill-session -t :用于杀死某个会话。

注意 :-t 后参数输入 tmux list-session 查询结果中 冒号前的字段即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1. 使用会话编号
$ tmux kill-session -t <会话编号:即 tmux list-session 查询结果中 冒号前的字段即可>

[root@bogon ~]# tmux list-session
0: 1 windows (created Wed Nov 22 17:07:20 2023) [108x19]
1: 1 windows (created Wed Nov 22 17:07:33 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]# tmux kill-session -t 1
[root@bogon ~]#
[root@bogon ~]# tmux list-session
0: 1 windows (created Wed Nov 22 17:07:20 2023) [108x19]
[root@bogon ~]#


2. 使用会话名称
$ tmux kill-session -t <session-name> # 根据会话名字杀死会话

[root@bogon ~]# tmux list-session
nws01: 2 windows (created Wed Nov 22 16:33:30 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]# tmux kill-session -t nws01
[root@bogon ~]#
[root@bogon ~]# tmux list-session # 查询会话
failed to connect to server
[root@bogon ~]#

3.6 重命名会话

tmux rename-session -t : 用于重命名会话。

注意 -t 后参数输入 tmux list-session 查询结果中 冒号前的字段即可。

若 会话有名字:nws01 , -t nws01
若 会话没有名字,已默认编号为名字, -t 默认编号即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#tmux rename-session -t <old_session_name or default_session_no> <new_session_name>


1. 会话没有名字,只有默认编号
[root@bogon ~]# tmux list-session # 查询已存在会话
0: 1 windows (created Wed Nov 22 17:07:20 2023) [108x19]
2: 1 windows (created Wed Nov 22 17:16:51 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]# tmux rename-session -t 2 nws12 # 将默认编号2的会话重命名 news12
[root@bogon ~]#
[root@bogon ~]# tmux list-session
0: 1 windows (created Wed Nov 22 17:07:20 2023) [108x19]
nws12: 1 windows (created Wed Nov 22 17:16:51 2023) [108x19] # 查询编号2的会话名字已更新
[root@bogon ~]#


2. 回话有名字
[root@bogon ~]# tmux list-session # 查询已存在会话 1,2
nws01: 1 windows (created Wed Nov 22 16:53:20 2023) [108x19]
nws02: 1 windows (created Wed Nov 22 16:53:27 2023) [108x19]
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]# tmux rename-session -t nws01 nws11 # 将会话nws01 重命名为 new11
[root@bogon ~]# tmux list-session # 查询已存在会话 1,2
nws02: 1 windows (created Wed Nov 22 16:53:27 2023) [108x19]
nws11: 1 windows (created Wed Nov 22 16:53:20 2023) [108x19] # 会话1 名字已更新
[root@bogon ~]#

3.7常见会话快捷键

一些会话快捷键:

ctrl+b d:分离当前所有会话

ctrl+b s:列出所有会话

ctrl+b $:重命名当前会话

4.窗格操作

4.1创建水平分屏

1
2
# 同一个窗格,水平分屏
Ctrl + b, then %

4.2创建垂直分屏

1
2
# 同一个窗格,垂直分屏
Ctrl + b, then "

4.3 光标不同窗格切换

1
2
3
4
5
# 光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。

Ctrl+b <arrow key>

即:Ctrl + b, then Arrow keys

4.4显示窗格编号

1
2
3
# 显示窗格编号

Ctrl + b, then 'q'

img

4.5 窗格组合其他键功能列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在 tmux 中,按下 Prefix 键(默认是 Ctrl + b),然后组合其他键 实现不同功能,

详细列表如下:

Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <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:显示窗格编号。

5.窗口管理

5.1新建窗口

除了将一个窗口划分成多个窗格,Tmux 也允许新建多个窗口。

1
2
3
4
5
# tmux 启动会话

[root@bogon ~]# tmux

# 在会话窗口创建新窗口

在tmux窗口中还可以再创建一个tmux窗口:

1
2
3
4
5
6
7
8
9
10
11
12
#在tmux的会话中,创建一个窗口
tmux new-window
-or -

Ctrl + b, then 'c'


# 新建一个指定名称的窗口
tmux new-window -n <window-name>

# 关闭窗口
enter 'exit'

5.2切换窗口

Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的是状态栏上的窗口编号。

Ctrl+b w:从列表中选择窗口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一直向上一个窗口切换,可以通第1个切换到0,再从0切换到1
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。

# 一直向下一个窗口切换,可以通第0个切换到1,再从1切换到0
Ctrl+b n:切换到下一个窗口。

# 直接选择窗口编号切换
Ctrl+b <number>:切换到指定编号的窗口,其中的是状态栏上的窗口编号。


# 从列表中选择窗口
Ctrl+b, then 'w'

通过上下方向键选择 或者 直接数据 窗口号 选择切换窗口

5.3窗口重命名

选中的窗口重命名

Ctrl+b , then ‘,’ 输出重命名 -> 回车

5.4窗口快捷键

Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。

6.其他命令

在tmux会话中,输入以下命令:

6.1列出所有快捷键,及其对应的Tmux 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1. 列出所有快捷键,及其对应的 Tmux 命令
# tmux 会话中输入一下命令
# tmux list-keys

[root@bogon ~]# tmux list-keys
bind-key ; last-pane # 注意:bind-key: Ctrl + b
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-tree
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key z resize-pane -Z
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key ~ show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key M-1 select-layout even-horizontal
bind-key M-2 select-layout even-vertical
bind-key M-3 select-layout main-horizontal
bind-key M-4 select-layout main-vertical
bind-key M-5 select-layout tiled
bind-key M-n next-window -a
bind-key M-o rotate-window -D
bind-key M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R
[root@bogon ~]#

6.2列出所有 Tmux 命令及其参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2. 列出所有 Tmux 命令及其参数
# tmux 会话中输入一下命令
# tmux list-commands


[root@bogon ~]# tmux
lock-server (lock)
lock-session (locks) [-t target-session]
move-pane (movep) [-bdhv] [-p percentage|-l size] [-s src-pane] [-t dst-pane]
move-window (movew) [-dkr] [-s src-window] [-t dst-window]
new-session (new) [-AdDP] [-F format] [-n window-name] [-s session-name] [-t target-session] [-x width] [-y height] [command]
new-window (neww) [-adkP] [-c start-directory] [-F format] [-n window-name] [-t target-window] [command]
next-layout (nextl) [-t target-window]
next-window (next) [-a] [-t target-session]
paste-buffer (pasteb) [-dpr] [-s separator] [-b buffer-index] [-t target-pane]
pipe-pane (pipep) [-o] [-t target-pane] [command]
previous-layout (prevl) [-t target-window]
previous-window (prev) [-a] [-t target-session]
refresh-client (refresh) [-S] [-C size][-t target-client]
rename-session (rename) [-t target-session] new-name
rename-window (renamew) [-t target-window] new-name
resize-pane (resizep) [-DLRUZ] [-x width] [-y height] [-t target-pane] [adjustment]
respawn-pane (respawnp) [-k] [-t target-pane] [command]
respawn-window (respawnw) [-k] [-t target-window] [command]
rotate-window (rotatew) [-DU] [-t target-window]
run-shell (run) [-b] [-t target-pane] shell-command
save-buffer (saveb) [-a] [-b buffer-index] path
select-layout (selectl) [-np] [-t target-window] [layout-name]
select-pane (selectp) [-lDLRU] [-t target-pane]
select-window (selectw) [-lnpT] [-t target-window]
send-keys (send) [-lR] [-t target-pane] key ...
send-prefix [-2] [-t target-pane]
server-info (info)
set-buffer (setb) [-b buffer-index] data
set-environment (setenv) [-gru] [-t target-session] name [value]
set-option (set) [-agosquw] [-t target-session|target-window] option [value]
set-window-option (setw) [-agoqu] [-t target-window] option [value]
show-buffer (showb) [-b buffer-index]
show-environment (showenv) [-g] [-t target-session] [name]
show-messages (showmsgs) [-t target-client]
show-options (show) [-gqsvw] [-t target-session|target-window] [option]
show-window-options (showw) [-gv] [-t target-window] [option]
source-file (source) path
split-window (splitw) [-dhvP] [-c start-directory] [-F format] [-p percentage|-l size] [-t target-pane] [command]
start-server (start)
suspend-client (suspendc) [-t target-client]
swap-pane (swapp) [-dDU] [-s src-pane] [-t dst-pane]
swap-window (swapw) [-d] [-s src-window] [-t dst-window]
switch-client (switchc) [-lnpr] [-c target-client] [-t target-session]
unbind-key (unbind) [-acn] [-t key-table] key
unlink-window (unlinkw) [-k] [-t target-window]
wait-for (wait) [-LSU] channel
[root@bogon ~]#
[0] 0:root@bogon:~*

6.3 列出当前所有 Tmux 会话的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
3.列出当前所有 Tmux 会话的信息
# tmux 会话中输入一下命令
# tmux info

[root@bogon ~]# tmux
112: kNXT3: (string) \033[6;3~
113: kNXT4: (string) \033[6;4~
114: kNXT5: (string) \033[6;5~
115: kNXT6: (string) \033[6;6~
116: kNXT7: (string) \033[6;7~
117: kpp: (string) \033[5~
118: kPRV: (string) \033[5;2~
119: kPRV3: (string) \033[5;3~
120: kPRV4: (string) \033[5;4~
121: kPRV5: (string) \033[5;5~
122: kPRV6: (string) \033[5;6~
123: kPRV7: (string) \033[5;7~
124: kRIT: (string) \033[1;2C
125: kRIT3: (string) \033[1;3C
126: kRIT4: (string) \033[1;4C
127: kRIT5: (string) \033[1;5C
128: kRIT6: (string) \033[1;6C
129: kRIT7: (string) \033[1;7C
130: kUP: (string) \033[1;2A
131: kUP3: (string) \033[1;3A
132: kUP4: (string) \033[1;4A
133: kUP5: (string) \033[1;5A
134: kUP6: (string) \033[1;6A
135: kUP7: (string) \033[1;7A
136: Ms: (string) \033]52;%p1%s;%p2%s\007
137: op: (string) \033[39;49m
138: rev: (string) \033[7m
139: ri: (string) \033M
140: rmacs: (string) \033(B
141: rmcup: (string) \033[?1049l
142: rmkx: (string) \033[?1l\033>
143: setab: (string) \033[4%p1%dm
144: setaf: (string) \033[3%p1%dm
145: sgr0: (string) \033(B\033[m
146: sitm: [missing]
147: smacs: (string) \033(0
148: smcup: (string) \033[?1049h
149: smkx: (string) \033[?1h\033=
150: smso: (string) \033[7m
151: smul: (string) \033[4m
152: tsl: (string) \033]0;
153: vpa: (string) \033[%i%p1%dd
154: xenl: (flag) true
155: XT: (flag) true

Jobs:
[root@bogon ~]#

6.4 补充信息

1
2
3
4
5
6
7
8
9
10
11
# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys

# 列出所有 Tmux 命令及其参数
$ tmux list-commands

# 列出当前所有 Tmux 会话的信息
$ tmux info

# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf