Tmux 教程
1. Tmux 是什么?
Tmux 是一个终端复用器(terminal multiplexer),属于常用的开发工具,学会了之后可以大大的提高工作效率。
1.1 基本概念
在使用 tmux 之前我们先了解关于 tmux 的几个名词:
session,会话(任务)windows,窗口pane,窗格
关于 session,很多人把 session 成为会话,但我觉得 叫任务 更适合一些。
在普通的终端中,窗口和其中由于 session(任务)而启动的进程是连在一起的,关闭窗口,session 就结束了,session 内部的进程也会终止,不管是否运行完。但是在具体使用中,我们希望当前的 session 隐藏起来,在终端中做其他事情,但是又不希望 session 及其进程被关闭。这样就需要用到 tmux,对 session 进行解绑。之后再想继续出来这个 session 的时候,再次绑定就可以回到之前的工作状态。
对于window 可以理解为一个工作区,一个窗口。
对于一个 session,可以创建好几个 window,对于每一个窗口,都可以将其分解为几个 pane 小窗格。
所以,关于 session、window、pane 的关系是:
[p a n e ∈ w i n d o w] ∈ s e s s i o n [pane \in window] \in session [pane∈window]∈session
1.2 安装
1 | # Ubuntu or Debian |
2. session 操作
2.1 启动
新建 session,可以在 terminal 上输入 tmux 命令,会自动生成一个 id 为 0 的 session
1 | tmux |
也可以在建立时显式地说明 session 的名字,这个名字可以用于解绑后快速的重新进入该 session:
1 | tmux new -s your-session-name |
2.2 分离
在 tmux 窗口中,按下 ctrl+b d 或者输入以下命令,就会将当前 session 与窗口分离,session 转到后台执行:
1 | tmux detach |
2.3 退出
如果你想退出该 session,可以杀死 session:
1 | tmux kill-session -t your-session-name |
当然,也可以使用 ctrl+d 关闭该 session 的所有窗口来退出该 session。
2.4 绑定、解绑、切换 session
假设现在正处于 session1,使用分离操作就是将 session1 进行解绑:
1 | tmux detach |
而如果你想再次绑定 session1,可以使用命令:
1 | tmux attach -t your-session-name |
切换到指定 session:
1 | tmux switch -t your-session-name |
2.5 重命名 session
1 | tmux rename-session -t old-session new-session |
3. window 操作
一个 session 可以有好几个 window 窗口。
3.1 新建窗口 tmux new-window
1 | # 新建一个指定名称的窗口 |
3.2 切换窗口
命令就不记了,使用快捷键更方便:
- ctrl+b c: 创建一个新窗口(状态栏会显示多个窗口的信息)
- ctrl+b p: 切换到上一个窗口(按照状态栏的顺序)
- ctrl+b n: 切换到下一个窗口
- ctrl+b w: 从列表中选择窗口(这个最好用)
3.3 重命名窗口
执行:
1 | tmux rename-window -t old_name new_name |
4. pane 操作
tmux 可以将一个窗口分为几个窗格(pane),每个窗格运行不同的命令。
4.1 划分窗格
1 | # 划分为上下两个窗格 |
其实 划分窗格pane 使用快捷键更方便,如果你当前 pane 正在运行程序不就没法使用命令了嘛。
左右划分:ctrl+b %
上下划分:ctrl+b "
4.2 光标位置
使用语句太麻烦了,使用快捷键最好:ctrl+b arrow-key(方向键):光标切换到其他窗格 4.3 交换窗格位置
1 | # 当前窗格往上移 |
4.4 关闭窗格
ctrl+d,记住如果只有一个窗格就是关闭 window 哦
5. 其他操作
1 | # 列出所有快捷键,及其对应的 Tmux 命令 |
5.1 tmux 上下翻屏
使用快捷键 ctrl+b [ ,就可以通过方向键上下移动使用PageUp 和PageDown可以实现上下翻页