Tmux是终端复用器(terminal multiplexer),功能类似 GNU Screen,采用 client/server 模型,支持多会话、多窗口、多窗格,是Linux下必备的终端工具。
软件档案:
名称:Tmux
官网:https://github.com/tmux/tmux
支持系统:Linux、OpenBSD、MAC OS X
软件授权:开源软件 ISC
源码地址:https://github.com/tmux/tmux
软件更新活跃度:高
软件官方使用指导:https://github.com/tmux/tmux/wiki
适用用户:所有Linux用户,尤其是需要SSH网络远程管理Linux的用户。
主要功能介绍:
- 一个终端支持管理多个会话、多个窗口,窗口可任意垂直或水平拆分
- 内部丰富且可自定义的快捷键,快速进行会话、窗口、窗格的创建、切换等管理
- 不受断网影响,避免操作中断
- 支持多终端共享会话,实现结对编程等功能
基本操作:
1、安装:
Linux主流发行版已收录该软件,Debian和Ubuntu可通过“sudo apt-get install tmux”安装,从源码安装最新版可参考:https://github.com/tmux/tmux/wiki/Installing。
2、中文配置:
不支持。
3、配置文件:
~/.tmux.conf,如果不存在可先创建: touch ~/.tmux.conf,通过”tmux list-commands“可以查看所有 Tmux 命令及其参数。
基础使用:
安装后通过”tmux“命令即可进入Tmux窗口,exit命令或者Ctrd + d 即可退出,Tmux典型界面:
1、 窗格(pane) ∈ 窗口(window) ∈ 会话(session)
先打开会话,再打开窗口,最后打开窗格。
2、前缀键
Tmux所有的快捷建都需要前缀键唤醒才可使用,默认为 Ctrl + b,按下Ctrl + b后,输入“?”可以查看帮助信息,输入Esc或者“q”退出帮助。
会话(session)管理:
1、新建会话
- tmux,不输入任何参数,Tmux自动从“0”开始分配会话编号
- tmux new -s <session-name>,指定session名称
2、分离会话,退出当前 Tmux 窗口,但会话和里面的进程仍然在后台运行
- Ctrl + b -> d
- tmux detach
3、接入会话,用于重新接入某个已存在的会话
- tmux attach,可简写为tmux a,不如任何参数会自动接入当前编号最早且有效的会话
- tmux attach -t <num / session-name>,接入指定的 会话编号 / 会话名称
- tmux list-session,可简写为tmux ls,查看当前所有的 Tmux 会话
4、切换会话
- Ctrl + b -> s,选择对应的会话按回车切换
- tmux switch -t <num / session-name>,切换到指定的 会话编号 / 会话名称
5、杀死会话
- tmux kill-session -t <num / session-name>,杀死指定的 会话编号 /会话名称
6、重命名会话
- tmux rename-session -t <num> <new-name>,重命指定编号的会话
- Ctrl + b -> $,重命名当前会话
窗口(window)管理:
1、新建窗口
- Ctrl + b -> c 或 tmux new-window [-n <window-name>],会自动为窗口从0开始编号
2、切换窗口
- Ctrl+b -> <number>:切换到指定编号的窗口
- Ctrl+b -> w:从列表中选择窗口切换
- Ctrl + b -> p / n,切换到 上一个 / 下一个 窗口(按照状态栏上的顺序)
- tmux select-window -t <window-number / <window-name>> 切换到指定编号或名称的窗口
3、重命名窗口
- Ctrl + b -> , 或 tmux rename-window <new-name>
窗格(pane)管理:
1、拆分窗格
- Ctrl + b -> ” 或者 tmux split-window,划分上下两个窗格
- Ctrl + b -> % 或者 tmux split-window -h, 划分左右两个窗格
2、移动光标到对应窗格
- Ctrl + b -> <方向键>,光标切换到其他窗格。比如切换到上方窗格,就按方向键”↑“
- Ctrl + b -> q -> <num>,num为在q显示的窗格号,光标切换到对应的num窗格
- Ctrl + b -> ; / o,光标切换到 上一个 /下一个 窗格
- tmux select-pane -U/-D/-L/-R,切换光标到上/下/左/右窗格
3、调整窗格布局
- Ctrl + b -> <Space空格键>,内置窗格布局循环切换
- Ctrl+b -> Ctrl+<方向键>,按箭头方向调整窗格大小
- Ctrl+b { / }, 当前窗格与 上一个 / 下一个 窗格交换位置
- Ctrl+b -> Ctrl+o / Alt+o,所有窗格 向前 / 向后 移动一个位置
4、杀死窗格
- Ctrl + b -> x
5、其他
- Ctrl + b -> z,当前窗格全屏显示,再按一次还原
- Ctrl + b -> !,将当前窗格拆分为一个独立窗口
- Ctrl + b -> t,显示当前系统时间
快捷键配置:
在配置文件”~/.tmux.conf“中定义,可通过”tmux list-keys“列出所有快捷键、及其对应的 Tmux 命令
配置SSH登录后自动启用Tmux:
为所有用户添加,在”/etc/profile”后面添加;为指定用户添加,可以在对应用的Shell初始化脚本添加,如”.bashrc“:
if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then tmux has 2> /dev/null || tmux new-session -s new_ssh_tmux && tmux attach fi
其他:
1、开启鼠标支持,在配置文件中添加:set -g mouse on 。
2、重新加载当前的 Tmux 配置:tmux source-file ~/.tmux.conf
参考链接:
1、Tmux 使用教程:https://www.ruanyifeng.com/blog/2019/10/tmux.html
2、SSH连接自动启动tmux:https://blog.csdn.net/T18736075818/article/details/85265697