用tmux提升你的命令行体验
今天介绍一款 Linux 工具,它的名字叫 tmux
,可以帮助我们有效地管理终端端口和命令会话。到底它有什么作用呢,大家一定遇到这样的情况
- 当我们在 Linux 命令行下执行长时间的任务时,如果遇到断网的情况,任务可能会终止无法继续运行,需要重新连接从头执行;
- 当我们需要同时编辑一个文件和执行操作命令时,正常情况下需要开启两个窗口;
如果你在使用 tmux
工具,那么以上的问题就可以完美地解决。
安装工具
(一) 编译安装
1 | $ git clone https://github.com/tmux/tmux.git |
(二) 直接安装
1 | # Ubuntu 或 Debian |
基本使用
tmux
使用过程中,为了让操作更加高效,我们优先推荐使用快捷键的方式,而不是通过 tmux
子命令来操作。
tmux
提供了大量的快捷键,所有快捷键的使用都需要通过 前缀键 唤起,默认 前缀键 是 Ctrl+b
,也就是需要先按 Ctrl+b
,快捷键才会生效。
1. 启动与停止
使用 tmux
其实很简单,启动时只需要在命令行中输入 tmux
即可
1 | # 直接tmux命令,即可进入tmux会话 |
2. 窗口左右分屏
在 Linux 终端操作时,经常需要将窗口分成多个,来同时执行多个不同的任务。
1 | Ctrl + B, % |
先按下 Ctrl + B
, 然后再按下 %
键即可。
3. 窗口上下分屏
上下分屏,只需要将 %
换成 "
即可
1 | # 注意这里是英文的引号 |
先按下 Ctrl + B
,然后再按下 "
键即可
4. 光标位置移动
默认情况下,光标的位置的移动通过鼠标是操作不了的,比如希望将光标移动到左侧的窗口上,需要使用如下方式
1 | Ctrl + B, ←(这是左方向的箭头) |
先按下 Ctrl + B
,然后再按下 ←
左方向键。同理按 ↑
、↓
、←
、→
键可以将光标移动到对应方向的窗口上。
5. 全屏显示窗口
当我们划分了多个窗口后,在当前只需要操作其中某个窗口,或窗口小导致内容显示不全,可以临时将其中某个窗口全屏放大。
1 | Ctrl + B, z |
先按下 Ctrl + B
,再按下 z
。如果需要恢复多窗口模式,则只需再次 Ctrl + B, z
即可
6. 调整窗口大小
调整窗口大小,是很常见的操作,同样可以通过快捷键来进行操作。
1 | # Windows系统下操作 |
先按下 Ctrl + B
,再按下 Option + →
将窗口向右扩大。同理 ↑
、↓
、←
、→
键可以将窗口对应方向扩大窗口。
7. 关闭窗口
某些窗口不再使用时,可以通过快捷键关闭掉
1 | Ctrl + B, x |
先按下 Ctrl + B
,再按下 x
就可以关闭当前窗口。通过按下 Ctrl + D
也可以直接关闭当前窗口。
会话管理
1. 新建会话
通过 tmux
直接创建的会话,编号是从 0
、1
依次类推,不过通常情况下使用 编号 区分会话不太直观,更好的方式是为会话命名
1 | $ tmux new -s foo |
上述命令创建了一个名为 foo 的会话
2. 分离会话
当我们的终端命令操作要暂停,而又不希望关系该会话时,可以临时分离会话,释放终端,以便下次还可以继续使用该会话和窗口。
1 | $ tmux detach |
通过上述命令即可分离当前的会话,当然通过 Ctrl + B, d
快捷键同样可以分离会话。
通过 tmux ls
命令可以查看当前的 tmux 会话仍然存在。
3. 接入会话
会话分离后,可以通过 tmux attach
命令重新接入已存在的会话
1 | # 使用会话编号 |
4. 切换会话
通过 tmux switch
命令可以切换会话
1 | $ tmux switch -t 0 |
5. 重命名会话
通过 tmux rename-session
命令可以重命名会话
1 | $ tmux rename-session -t foo foopro |
上述命令,将命名为 foo 的会话修改为 foopro
6. 删除会话
通过 tmux kill-session
命令可以删除会话
1 | $ tmux kill-session -t foo |
如果要删除所有会话,通过 kill-server
命令