tmux简单使用

tmux简单使用

Tmux (“Terminal Multiplexer”的简称), 是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机, 还有一个好处就是当终端关闭后该shell里面运行的任务进程也会随之中断,通过使用tmux就能很容易的解决这个问题。

1 安装

Ubuntu

sudo apt install tmux

CentOS 或 Fedora

sudo yum install tmux

Mac

brew install tmux

2 使用流程

先不讲有什么功能,有什么命令,而是讲它的一般使用流程
上一张我画的流程图:
tmux使用流程

3 命令

我会根据使用流程说明一些常用命令和其对应的快捷键

3.1 快捷键怎么使用?

前缀键+其他的键
默认的前缀键是Ctrl+b
所以使用时:
1 先按下Ctrl+b再松开
2 按其他的键

3.2 创建会话

tmux new -s <session-name>

-s指定会话名字,没有指定名字时,以0、1、2…等数字命名

3.3 接入会话

tmux attach -t <session-name>

3.4 分屏操作

左右分[前缀键+%]

tmux split-window -h

上下分[前缀键+"]

tmux split-window

光标移动

命令方式:

# 光标切换到上方窗格
tmux select-pane -U

# 光标切换到下方窗格
tmux select-pane -D

# 光标切换到左边窗格
tmux select-pane -L

# 光标切换到右边窗格
tmux select-pane -R

快捷键方式:

操作 快捷键
光标切换到上方窗格 前缀键+方向键“↑”
光标切换到下方窗格 前缀键+方向键“↓”
光标切换到左边窗格 前缀键+方向键“←”
光标切换到右边窗格 前缀键+方向键“→”

3.5 分离会话[前缀键+d]

tmux detach

3.6 删除会话

tmux kill-session -t <session-name>

3.7 其他命令

3.7.1 与会话相关

1) 重命名会话[前缀键+$]

tmux rename-session -t <old-name> <new-name>

2) 列出所有会话[前缀键+s]

tmux ls

使用快捷方式的方法,还可以用上下方向键选择会话

3) 切换会话

tmux switch -t <session-name>

3.7.2 窗格相关

交换窗格位置

当前窗格上移[前缀键+Ctrl+o]

tmux swap-pane -U

当前窗格下移[前缀键+Alt+o]

tmux swap-pane -D

当前窗格左移[前缀键+{]

tmux swap-pane -U

当前窗格右移[前缀键+}]

tmux swap-pane -D

4 补充

窗口使用

其实我们上面使用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的项目他的配置

我的github
我的博客
我的笔记