tmux使用简介

以前用过screen,最近两年主要转移到tmux了,觉得更强大、更易用,也偶尔将tmux安利给需要的同事。这里把收集整理的tmux使用资料发布一下。

tmux 简介

tmux是一个终端复用、窗口分配的神器,其在github上地址为: https://github.com/tmux/tmux

tmux采用C/S模型构建,输入tmux命令就相当于开启了一个服务,此时将新建一个会话,然后会话中默认新建一个窗口,窗口中默认新建一个面板。一个tmux session(会话)可以包含多个window(窗口),窗口默认充满整个会话界面,允许在单个窗口中同时访问多个会话,允许每个会话有多个连接窗口,因此可以多人实时共享会话。一个window又可以包含多个pane(面板/窗格),窗口下的面板,都处于同一界面下。
如下图所示:

关键设置

1. 指令前缀 设置

由于tmux默认的 指令前缀 是 ctrl + b ,但这个组合键单手操作起来不太顺手,我一般就将其改为 ctrl + a 键。
在 ~/.tmux.conf 配置文件中设置:

tmux设置Ctrl+a为前缀后,会与终端的“将光标移动到行首”的快捷键(ctrl+a)冲突,那么实现移动到行首的快捷键是:按两下 ctrl + a
另外,将光标移动到行尾 是 ctrl + e (这个键与平时终端上操作的移动到行尾的并没有冲突)

2. 鼠标滚屏

tmux 默认配置中 滚屏查看和文本复制,用起来非常麻烦,效率远没有鼠标选择来的快。
好在 tmux 提供了一些个性化配置项来优化这些配置,在 ~/.tmux.conf 配置文件中做如下设置:

配置文件修改完成后,可以 tmux kill-server 重启所有 tmux 进程,或者在 tmux 会话中使用 ⌃a : 进入控制台模式,输入 source-file ~/.tmux.conf 命令重新加载配置。

3. 鼠标复制

tmux 下开启鼠标滚屏后,复制文本有两种方式:(由于我一般是用Mac上的iTerm2,所以用方法2较为方便)
方法 1:使用 ⌃a z 进入窗格全屏模式,鼠标选择文本的同时按住 option 键 ⌥,然后使用 ⌘c 进行复制;
方法 2:开启 iTerm2 「在选择时复制」选项,即可实现自动选择复制。如下图:

常用操作

1. 分屏、窗格 pane:

上下分屏:ctrl + a 再按 "
左右分屏:ctrl + a 再按 %
(布局水平显示:ctrl + a 再按 + ; 布局垂直显示:ctrl + a 再按 = ;这个可能和自身配置相关)
切换屏幕:ctrl + a 再按o (还有 h,j,k,l 和 上下左右方向箭头可用)
关闭一个面板:ctrl + a 再按x

2. 窗口 window:

c 创建新窗口
& 关闭当前窗口
[0-9] 数字键切换到指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 前后窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口,便于识别
. 修改当前窗口编号,相当于重新排序
f 在所有窗口中查找关键词,便于窗口多了切换

3. 会话 session:

? 列出所有快捷键;按q返回
d 脱离当前会话,可暂时返回Shell界面
$ 重命名当前会话
s 选择并切换会话;在同时开启了多个会话时使用
进入命令行模式;此时可输入支持的命令,例如 kill-server 关闭所有tmux会话

4. 最基本的Tmux使用流程:

5. 其他一些命令:

参考文档:
https://www.cnblogs.com/kaiye/p/6275207.html
https://programtip.com/zh/art-14901
http://www.ruanyifeng.com/blog/2019/10/tmux.html
https://gist.github.com/Jiezhi/076543ff6141568c59bf tmux configure file from 《tmux:Productive Mouse-Free Development》

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*