在前面的文章中我们介绍过tmux中会话(session)的概念,会话包含窗口和窗格,并介绍了创建和删除会话的方法,这篇文章中来总结一下tmux中对于会话的常见操作。
操作命令
命令 | 说明 |
---|---|
tmux ls | 显示会话列表 |
tmux list-session | 显示会话列表 |
tmux new -s 会话名称 | 创建指定名称的会话 |
tmux new | 创建会话(省略名称时会使用默认名称, 默认方式使用编号,编号从0开始递增) |
tmux a -t mysession | 连接指定名称会话(a是attach的缩写,也可以使用attach) |
tmux a | 连接会话(省略会话名称时表示连接上一个会话) |
tmux rename -t 修改前的会话名或者编号 修改后的会话名 | 重命名会话:将 修改前的会话名修改为修改后的会话名 |
tmux switch -t 会话名称或者编号 | 会话切换,需要注意的是需要在tmux环境下 |
tmux kill-session | 删除上次打开的会话 |
tmux kill-session -t 删除目标会话名 | 删除指定会话 |
tmux kill-session -a -t 保留的会话名称 | 删除 指定的保留的会话之外的所有会话 |
tmux kill-server | 删除所有会话 |
快捷方式
tmux的缺省快捷键为 Ctrl + b,会话相关的操作又如下的快捷键可以进行操作
快捷键 | 说明 |
---|---|
Ctrl + b → s | 列出可以进行选择切换的会话 |
Ctrl + b → $ | 重命名重命名 |
Ctrl + b → d | 退出当前会话 |
Ctrl + b → D | 退出指定会话 |
使用示例说明
首先使用tmux ls确认会话状态,结果显示no server running说明此时没有会话
liumiao@liumiaocn ~ % tmux ls
no server running on /private/tmp/tmux-501/default
liumiao@liumiaocn ~ %
使用tmux new创建一个会话,然后使用tmux detach命令或者快捷键d退出,可以看到如下类似的日志信息,从detach的信息中可以看到创建的会话的号为0,这是缺省方式下的第一个会话的编号。
liumiao@liumiaocn ~ % tmux new
[detached (from session 0)]
liumiao@liumiaocn ~ %
使用tmux ls命令可以确认此会话的详细信息
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
liumiao@liumiaocn ~ %
创建一个指定名称的会话并进行detach操作
liumiao@liumiaocn ~ % tmux new -s s1
[detached (from session s1)]
liumiao@liumiaocn ~ %
liumiao@liumiaocn ~ % tmux list-sessions
0: 1 windows (created Tue Jan 28 14:39:41 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
liumiao@liumiaocn ~ %
使用tmux new创建一个新的会话,确认此时的会话编号,会发现已经到2了(之前的指定名称的new操作对于编号是也是有影响的)。然后进行detach操作
liumiao@liumiaocn ~ % tmux new
[detached (from session 2)]
liumiao@liumiaocn ~ %
此时已经有三个会话了,详细信息如下所示
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
2: 1 windows (created Tue Jan 28 14:41:36 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
liumiao@liumiaocn ~ %
如果使用attach操作而不指定编号,则会连接到当前的会话(刚刚创建的编号为2的会话)
如果不进行detach操作,而使用exit退出的话,此会话会提示exited,并且此会话也会终止。
liumiao@liumiaocn ~ % tmux attach
[exited]
liumiao@liumiaocn ~ %
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
liumiao@liumiaocn ~ %
此时如果继续进行创建的话,会话编号将会继续从3开始
liumiao@liumiaocn ~ % tmux new
[detached (from session 3)]
liumiao@liumiaocn ~ %
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
3: 1 windows (created Tue Jan 28 14:42:51 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
liumiao@liumiaocn ~ %
可以使用rename命令进行会话名称修改,比如这里将编号3的会话改为名称为t3,日志如下所示
liumiao@liumiaocn ~ % tmux rename -t 3 t3
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
t3: 1 windows (created Tue Jan 28 14:42:51 2020)
liumiao@liumiaocn ~ %
当然也可以连接之后使用快捷键进行修改
可以看到已经修改为t3newname了
liumiao@liumiaocn ~ % tmux a -t 0
[detached (from session t3newname)]
liumiao@liumiaocn ~ % tmux ls
0: 1 windows (created Tue Jan 28 14:39:41 2020)
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
t3newname: 1 windows (created Tue Jan 28 14:42:51 2020)
liumiao@liumiaocn ~ %
可以指定编号进行会话删除
liumiao@liumiaocn ~ % tmux kill-session -t 0
liumiao@liumiaocn ~ % tmux ls
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
t3newname: 1 windows (created Tue Jan 28 14:42:51 2020)
liumiao@liumiaocn ~ %
也可以指定不删除的将其余全部删除
liumiao@liumiaocn ~ % tmux kill-session -a -t s1
liumiao@liumiaocn ~ % tmux ls
s1: 1 windows (created Tue Jan 28 14:40:19 2020)
liumiao@liumiaocn ~ %
也可以使用kill-server删除全部会话
liumiao@liumiaocn ~ % tmux kill-server
liumiao@liumiaocn ~ % tmux ls
no server running on /private/tmp/tmux-501/default
liumiao@liumiaocn ~ %