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
可以实现上下翻页