Tmux (“Terminal Multiplexer”的简称), 是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,
通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机, 还有一个好处就是当终端关闭后该shell里面运行的任务进程也会随之中断,通过使用tmux就能很容易的解决这个问题。
安装
Ubuntu:
$sudo apt install tmux
CentOS 或 Fedora:
$sudo yum install tmux
Mac:
$brew install tmux
使用流程
先不讲有什么功能,有什么命令,而是讲它的一般使用流程 上一张我画的流程图:
命令
我会根据使用流程说明一些常用命令和其对应的快捷键
快捷键怎么使用?
前缀键+其他的键
默认的前缀键是Ctrl+b
所以使用时: 1 先按下Ctrl+b再松开 2 按其他的键
创建会话
$tmux new -s <session-name>
-s指定会话名字,没有指定名字时,以0、1、2…等数字命名
接入会话
$tmux attach -t <session-name>
分屏操作
左右分 前缀键+%
$tmux split-window -h
上下分 前缀键+"
$tmux split-window
光标移动
命令方式:
# 光标切换到上方窗格
tmux select-pane -U
# 光标切换到下方窗格
tmux select-pane -D
# 光标切换到左边窗格
tmux select-pane -L
# 光标切换到右边窗格
tmux select-pane -R
快捷键方式: | 操作 | 快捷键| | – | – | 光标切换到上方窗格 | 前缀键+方向键“↑” 光标切换到下方窗格 | 前缀键+方向键“↓” 光标切换到左边窗格| 前缀键+方向键“←” 光标切换到右边窗格 |
前缀键+方向键“→”
分离会话 前缀键+d
$tmux detach
删除
窗格 直接退出tty或使用
前缀键+x然后输入’y’确定窗口
前缀键+&关闭当前窗口会话
$tmux kill-session -t <session-name>
其他命令
与会话相关
重命名会话 前缀键+$
$tmux rename-session -t <old-name> <new-name>
列出所有会话 前缀键+s
$tmux ls
使用快捷方式的方法,还可以用上下方向键选择会话
切换会话
$tmux switch -t <session-name>
窗格相关
交换窗格位置
当前窗格上移 前缀键+Ctrl+o
$tmux swap-pane -U
当前窗格下移 前缀键+Alt+o
$tmux swap-pane -D
当前窗格左移前缀键+{
$tmux swap-pane -U
当前窗格右移 前缀键+}
$tmux swap-pane -D
补充
窗口使用
其实我们上面使用tmux split-window命令就是把一个窗口划分成多个窗格,而tmux可以有多个窗口
创建窗口 前缀键+c
$tmux new-window -n <window-name>
-n指定窗口的名字,不写则为数字
切换窗口
$tmux select-window -t <window-name>
有关的快捷键:
| 快捷键 | 说明 |
|---|---|
| 前缀键 + p | 切换到上一个窗口(按照状态栏上的顺序) |
| 前缀键 + n | 切换到下一个窗口 |
前缀键+ <number> |
切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号 |
| 前缀键+w | 从列表中选择窗口 |
重命名窗口 前缀键+,
$tmux rename-window <new-name>
其他命令补充
# 列出所有快捷键,及其对应的 Tmux 命令
$tmux list-keys
# 列出所有 Tmux 命令及其参数
$tmux list-commands
# 列出当前所有 Tmux 会话的信息
$tmux info
# 重新加载当前的 Tmux 配置
$tmux source-file ~/.tmux.conf
其他快捷键
| 快捷键 | 说明 |
|---|---|
| 前缀键 + ; | 光标切换到上一个窗格 |
| 前缀键 + o | 光标切换到下一个窗格 |
| 前缀键 + x | 关闭当前窗格 |
| 前缀键 + ! | 将当前窗格拆分为一个独立窗口 |
| 前缀键 + p | 当前窗格全屏显示,再使用一次会变回原来大小 |
| 前缀键 + Ctrl + 方向键 | 按箭头方向调整窗格大小 |
| 前缀键 + q | 显示窗格编号 |
关于配置
看一个github的项目他的配置