Tmux : 5分钟掌握使用,运维效率蹭蹭涨

简介: Tmux : 5分钟掌握使用,运维效率蹭蹭涨

什么是 Tmux

tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理。应付绝大多数窗口管理的需求。


Tmux 安装

首先进行安装:

brew install tmux       # OSX
pacman -S tmux          # archlinux
apt-get install tmux    # Ubuntu
yum install tmux        # Centos


安装好后就可以启用一个Tmux Session了:(通过 tmux new -s myname 可以指定Session名)

tmux


在Tmux Session中,通过<prefix>$可以重命名当前Session。其中<prefix>指的是tmux的前缀键,所有tmux快捷键都需要先按前缀键。它的默认值是Ctrl+b

<prefix>c可以创建新的窗口(Window),<prefix>%水平分割窗口(形成两个Pane),<prefix>"垂直分割窗口。退出当前Session的快捷键是<prefix>d。然后在

Bash中可以查看当前的tmux服务中有哪些Session:

tmux ls


然后根据Session的名字可以再回去:

tmux a -t myname  (or at, or attach)


Tmux 使用

快捷键

一般情况下 tmux 中所有的快捷键都需要和前缀快捷键 Ctrl+b 来组合使用,以下是常用的窗格(pane)快捷键列表,大家可以依次尝试下:

窗格操作

  • % 左右平分出两个窗格
  • " 上下平分出两个窗格
  • x 关闭当前窗格
  • { 当前窗格前移
  • } 当前窗格后移
  • ; 选择上次使用的窗格
  • o 选择下一个窗格,也可以使用上下左右方向键来选择
  • space 切换窗格布局,tmux 内置了五种窗格布局,也可以通过 ⌥1⌥5来切换
  • z 最大化当前窗格,再次执行可恢复原来大小
  • q 显示所有窗格的序号,在序号出现期间按下对应的数字,即可跳转至对应的窗格


窗口操作

tmux 除了窗格以外,还有窗口(window) 的概念。依次使用以下快捷键来熟悉 tmux 的窗口操作:

  • c 新建窗口,此时当前窗口会切换至新窗口,不影响原有窗口的状态
  • p 切换至上一窗口
  • n 切换至下一窗口
  • w 窗口列表选择
  • & 关闭当前窗口
  • , 重命名窗口,可以使用中文,重命名后能在 tmux 状态栏更快速的识别窗口 id
  • 0 切换至 0 号窗口,使用其他数字 id 切换至对应窗口
  • f 根据窗口名搜索选择窗口,可模糊匹配

 


会话操作

如果运行了多次 tmux 命令则会开启多个 tmux 会话(session)。在 tmux 会话中,使用前缀快捷键 ⌃b 配合以下快捷键可操作会话:

  • $ 重命名当前会话
  • s 选择会话列表
  • d detach 当前会话,运行后将会退出 tmux 进程,返回至 shell 主进程

在 shell 主进程下运行以下命令可以操作 tmux 会话:

tmux new -s foo # 新建名称为 foo 的会话

tmux ls # 列出所有 tmux 会话

tmux a # 恢复至上一次的会话

tmux a -t foo # 恢复名称为 foo 的会话,会话默认名称为数字

tmux kill-session -t foo # 删除名称为 foo 的会话

tmux kill-server # 删除所有的会话

除以上提到的快捷键以外,tmux 还有许多其他的快捷键和命令,使用前缀快捷键 Ctrl+b? 可以查看所有的快捷键列表,该列表视图为 tmux copy 模式,该模式下可使用以下快捷键(无需加Ctrl+b 前缀):

  • q 退出 copy 模式


Tmux 配置

基本配置

默认的<prefix>Ctrl+b,如果你觉得不好按可以调整为Ctrl+a,只需要在配置文件~/.tmux.conf中加入:

unbind ^b
set -g prefix 'C-a'


鼠标滚屏

tmux 默认配置中最糟糕的体验就是滚屏查看和文本复制(大家可以先试试看)。你需要先使用 ⌃b[ 快捷键进入 copy 模式,然后使用翻页、字符定位来选择需要的字符,效率远没有鼠标选择来的快。

因此 tmux 提供了一些个性化配置项来优化这些配置,首先在 shell 中运行 touch ~/.tmux.conf 新建用户配置文件。在文件中增加以下内容:

# 开启鼠标模式

set -g mode-mouse on


# 允许鼠标选择窗格

set -g mouse-select-pane on


# 如果喜欢给窗口自定义命名,那么需要关闭窗口的自动命名

set-option -g allow-rename off


# 如果对 vim 比较熟悉,可以将 copy mode 的快捷键换成 vi 模式

set-window-option -g mode-keys vi


载入配置

为了能让Tmux动态载入配置而不是重启,我们设一个快捷键<prefix>r来重新载入配置:

bind r source-file ~/.tmux.conf \; display-message "Config reloaded"

注意,通过<prefix>r重新载入配置并不等同于重启,只是增量地执行了配置文件中的所有命令而已。如果配置未生效,可以通过tmux kill-server来强行关闭Tmux。


导出配置

如果你想知道当前tmux的设置,可通过tmux show -g来查看(该命令需要tmux正在运行)。 你可能会需要把这些设置导出为文件:

tmux show -g >> current.tmux.conf

参考链接

 



相关文章
|
6月前
|
存储 自然语言处理 数据库
【数据结构进阶】AVL树深度剖析 + 实现(附源码)
在深入探讨了AVL树的原理和实现后,我们不难发现,这种数据结构不仅优雅地解决了传统二叉搜索树可能面临的性能退化问题,还通过其独特的平衡机制,确保了在任何情况下都能提供稳定且高效的查找、插入和删除操作。
509 19
|
JSON Go 数据格式
Golang语言结构体链式编程与JSON序列化
这篇文章是关于Go语言中结构体链式编程与JSON序列化的教程,详细介绍了JSON格式的基本概念、结构体的序列化与反序列化、结构体标签的使用以及如何实现链式编程。
172 4
|
SQL 存储 自然语言处理
为什么数据库字符编码不一致会导致索引失效
为什么数据库字符编码不一致会导致索引失效
195 2
|
安全 Shell Linux
|
测试技术 API Python
Python3 新一代Http请求库Httpx使用(详情版)(下)
Python3 新一代Http请求库Httpx使用(详情版)
1534 0
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
441 0
|
Java
【Java从入门到精通】Java switch case 语句
【Java从入门到精通】Java switch case 语句
268 0
|
SQL 安全 数据库
如何防止删库跑路?使用NineData进行SQL变更审核!
在日常开发任务中,对核心库进行变更可能带来一系列风险,如删库跑路和数据泄露等。因此,在变更SQL之前,需要进行审核以确保变更合理、安全、规范。
898 1
|
边缘计算 弹性计算 运维
一文解读阿里云短信网关的云原生技术
基于云原生技术打造全球融合通信网关
1210 1
一文解读阿里云短信网关的云原生技术
|
机器学习/深度学习 Ubuntu Unix
配置工具篇(tmux+ranger+lazygit)
配置工具篇(tmux+ranger+lazygit)
276 0
配置工具篇(tmux+ranger+lazygit)