简单介绍tmux的使用

tmux的主要功能

  • 支持切屏,使用更加灵活、方便。
  • 开启的会话能够在后台持续工作,当需要进行比较耗时的任务(例如神经网络的训练)时,可以用终端连接服务器主机,然后配合tmux进行工作。

session, window和pane

  • 一个tmux即相当于一个server,一个tmux可以有多个session,一个session可以有多个window,一个window可以有多个pane。
  • 在使用tmux时,下方底部会显示一行与session, window有关的创建信息。

tmux的基本命令——shell界面使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 使用tmux,对应着开启一个server并同时开启一个session
tmux

# 显示所有的session
tmux ls

# 新建session,若不指定-s参数则不指定session的名称
tmux new [-s <session-name>]

# 回到某个session,若不指定-t参数则回到上一个session
tmux a/attach [-t/target-session <session-name>]

# 关闭指定的session
tmux kill-session -t session-name

# 关闭除指定session外所有的session
tmux kill-session -a -t session-name

# 关闭所有session,注意当所有session均关闭时意味着接触tmux形态
tmux kill-server

# 重命名session
tmux rename -t old_session_name new_session_name

相关快捷键命令——在tmux内部使用

  • 可通过修改~/.tmux.conf配置文件来修改bind-key

  • 使用Ctrl + b在tmux内部进入快捷键模式

  • 基本快捷键

    | 快捷键(这里指先使用Ctrl+b后再使用的快捷键) | 功能 |
    | —————————————————————— | —————————————————————————————— |
    | ? | 相当于-help参数,列出所有的快捷键信息 |
    | : | 在底部出现特殊的命令行(有颜色强调),该命令行可不使用tmux前缀而使用上述基本命令 |
    | [ | 进入复制模式,空格键确定开始复制,类似vim进行区域选择,最后使用回车键确定选择完毕并退出(这里可能需要在配置文件中进行配置才可使用,具体见其他说明)。与vim相区别使用:起到goto line的作用 |
    | ] | 使用最近一次”[“快捷键复制的内容进行粘贴 |

  • 与session有关的快捷键

    | 快捷键 | 功能 |
    | ——— | ————————————————————————— |
    | d | 脱离当前会话 |
    | Ctrl+z | 挂起当前会话 |
    | r | 强制重绘未脱离的会话(测试使用时发现没有达到效果) |
    | s | 显示所有会话,通过上下选择以及回车键切换 |

  • 与window有关的快捷键

    | 快捷键 | 功能 |
    | —————————————————————————————— | —————————————————————————————— |
    | c | 创建新的窗口 |
    | & | 关闭当前窗口 |
    | 数字键(无需考虑2位数的冲突问题,因为单个session对应的窗口有个数限制) | 切换至制定的窗口 |
    | p | 切换至上一个窗口 |
    | n | 切换至下一个窗口 |
    | w | 展示窗口列表,通过上下键选择并通过回车键选定(这里的窗口列表包括所有会话的所有窗口) |
    | , | 重命名当前窗口 |
    | . | 修改当前窗口编号 |
    | f | 在所有窗口中进行制定文本的查找 |

  • 与pane有关的操作

    | 快捷键 | 功能 |
    | ——— | ————————————————————————— |
    | “ | 将当前面板划分为上下两部分 |
    | % | 将当前面板划分为左右两部分 |
    | x | 关闭当前面板 |
    | ! | 将当前面板抽出单独作为一个新的窗口 |
    | Ctrl+方向键 | 以1个单元格为单位移动来调整当前pane的size |
    | Alt+方向键 | 以5个单元格为单位移动来调整当前pane的size |
    | q | 显示面板编号 |
    | o | 在当前窗口中选择该面板的下一个面板 |
    | 方向键 | 移动选择面板 |
    | { | 向前置换当前面板 |
    | } | 向后置换当前面板 |
    | z | 最大化当前面板,再使用一次会恢复正常 |

其他说明

  • 使用”Ctrl+b [“进入复制模式后如果要使用vim的快捷键,如果发现无法使用的话需要在~/.tmux.conf配置文件中添加如下设置

    1
    2
    # Use vim keybindings in copy mode
    setw -g mode-keys vi

AK