在前面的文章中我们介绍过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 ~ %