Tmux 快速入门:提高终端管理效率的必备技能

简介: **Tmux** 是一款终端复用工具,提升多任务处理效率。通过快捷键管理会话、窗格和窗口……

在日常的软件开发过程当中,程序员经常需要同时操作多个终端窗口。不论是编写代码、运行测试、监控日志,还是远程登录服务器,多个窗口的切换不仅繁琐,而且降低了工作效率。

此时,一个叫作 Tmux(terminal multiplexer)的工具就能大显身手了。Tmux 允许你在一个终端窗口中,通过多个窗格(pane)和窗口(window)同时进行多项操作,极大地提高了使用终端的效率。

接下来,我们用简单易懂的语言介绍一下 Tmux 的基础使用方法,让你迅速上手这个强大的工具。


快捷键

快捷键是 Tmux 操作的核心,通过它们,你可以快速实现会话管理、窗格和窗口的操作。以下是一些基础且常用的快捷键列表。

会话管理

会话(Session)是 Tmux 的顶层组织单位,每个会话可以包含多个窗口。

  • 分离当前会话: Ctrl+b d
  • 列出所有会话: Ctrl+b s
  • 重命名当前会话: Ctrl+b $

窗格操作

窗格是分屏的基本单位,一个窗口可以包含一个或多个窗格。

  • 划分左右两个窗格: Ctrl+b %
  • 划分上下两个窗格: Ctrl+b " (左双引号)
  • 上下-左右窗格互切: Ctrl+b (空格)
  • 光标切换到其他窗格: Ctrl+b (方向键)
  • 当前窗格与上一个窗格互换位置: Ctrl+b {
  • 当前窗格与下一个窗格互换位置: Ctrl+b }
  • 关闭当前窗格: Ctrl+b x
  • 将当前窗格拆分为一个独立窗口: Ctrl+b !
  • 当前窗格全屏显示: Ctrl+b z (再次使用恢复原来大小)
  • 调整窗格大小: Ctrl+b Ctrl+ (以 1 个单元格为单位调整)
  • 调整窗格大小: Ctrl+b Alt+ (以 5 个单元格为单位调整)
  • 显示窗格编号: Ctrl+b q
  • 顺时针旋转当前窗口的窗格: Ctrl+b Ctrl+o (字母 o)
  • 逆时针旋转当前窗口的窗格: Ctrl+b Alt+o
  • 显示时钟:Ctrl+b t

窗口操作

窗口可以视为多个工作空间,每个窗口可以包含多个窗格。

  • 创建新窗口: Ctrl+b c
  • 切换到上一个窗口: Ctrl+b p
  • 切换到下一个窗口: Ctrl+b n
  • 切换到指定编号的窗口: Ctrl+b
  • 从列表中选择窗口: Ctrl+b w
  • 窗口重命名: Ctrl+b ,

安装

在不同的操作系统上安装 Tmux 的命令如下:

# Ubuntu 或 Debian
sudo apt-get install tmux

# CentOS 或 Fedora
sudo yum install tmux

# Mac
brew install tmux

启动与退出

要开始使用 Tmux,只需打开终端并输入 tmux 来启动。

  • 启动:直接在终端中输入 tmux
  • 退出:可以使用 Ctrl + d 或者输入 exit 命令。

会话管理

会话让你能在单一窗口中管理多个项目或任务,非常适合多任务操作。

  1. 新建会话

新建一个默认名称的会话:

tmux

或新建一个指定名称的会话:

tmux new -s <session-name>  # 新建一个名称叫做 alex 的会话
  1. 分离会话

让当前会话在后台运行,你可以安全地关闭终端连接,之后再重新接入:

Ctrl + b d  # 或者 tmux detach
  1. 查看当前所有的 tmux 会话

查看有哪些会话正在运行:

tmux ls  # 或者 tmux list-session

配置相关

  • 系统配置文件 /etc/tmux.conf
  • 用户级配置文件 ~/.tmux.conf

配置文件实际上就是 tmux 的命令集合,也就是说每行配置均可在进入命令行模式后输入生效

  • Ctrl + r 设置为加载配置文件,并显示 Refresh configure!

bind C-r source-file ~/.tmux.conf \; display "Refresh configure!"
  • prefix 快捷键前缀由 Ctrl+b 更改为 Ctrl+a

# Send prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix
  • 不用按快捷键前缀,直接使用 alt + 方向键 在 pane 之间 switch

# Use Alt-arrow keys to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
  • 不用按快捷键前缀,直接使用 shift + 方向键 在 window 之间 switch

# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
  • 开启鼠标模式,用鼠标就能切换 window 、 pane、还能调整 pane 的大小

# Mouse mode
set -g mouse on
  • Ctrl+b v 竖着分屏, Ctrl+b h 横着分屏

# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v

总结

tmux 是一个功能强大的终端复用器,它通过丰富的快捷键和灵活的配置选项,极大地提升了我们使用终端的效率。无论你是开发者、系统管理员还是普通用户,掌握 tmux 都能帮助你更好地管理终端会话。

操作 Tmux 的精髓在于灵活地管理和切换会话、窗口和窗格。掌握以上基本命令,就可以让你的终端操作效率大大提高。继续探索 Tmux,你会发现更多强大功能,比如自定义快捷键、脚本自动化等,让你的工作更加得心应手。

相关文章
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 追踪数据包在网络中的路径 traceroute命令 使用指南
【Shell 命令集合 网络通讯 】Linux 追踪数据包在网络中的路径 traceroute命令 使用指南
696 0
|
5月前
|
设计模式 人工智能 开发者
收藏夹里的干货不是知识,大脑里的才是:用这条指令构建你的第二大脑
针对开发者"只收藏不学习"的痛点,提供一套基于费曼学习法的AI指令。通过核心概念提炼、通俗类比讲解和记忆技巧生成,帮助技术人将碎片化信息转化为系统性知识,适用于攻克编程难点、架构选型学习及云厂商认证备考等多种场景。
332 13
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
4661 1
|
5月前
|
运维 Kubernetes Docker
K8s集群异常Pod高效排查命令(kube-system核心场景)
本文介绍一条专为K8s容器化集群设计的“一站式”异常Pod排查命令。它通过`docker exec`进入K8s核心容器,执行`kubectl get pod -A`并反向过滤正常状态(如1/1、2/2),快速定位`kube-system`等关键命名空间中就绪异常的Pod,解决步骤繁琐、筛选低效、覆盖不全三大运维痛点,支持巡检、应急、变更验证等场景。(239字)
369 0
K8s集群异常Pod高效排查命令(kube-system核心场景)
|
监控 Go 数据处理
iLogtail 进化论:重塑可观测采集的技术边界
iLogtail 作为一款开创性的轻量级日志采集器,历经 13 载风雨,始终致力于高效地从多元化的数据源中萃取、处理可观测信息,并无缝传输至阿里云日志服务或各类日志分析平台。今年,适逢 iLogtail 开源两周年的里程碑时刻,我们将回顾 iLogtail 的技术演进之路,领略其不断突破边界、引领可观测采集未来的创新力量。
843 119
|
关系型数据库 MySQL Unix
Linux 目录结构简介
Linux 目录结构简介
263 0
|
传感器 缓存 Prometheus
在Linux中,如何进行硬件性能监控?
在Linux中,如何进行硬件性能监控?
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
安全 Linux 编译器
来学点eBPF and XDP装一下
来学点eBPF and XDP装一下
352 0
|
缓存 JavaScript 前端开发
三种手段:通过Apollo和nacos的能力进行国际化动态配置实现热更新
本文主要介绍了 通过Apollo和nacos的能力进行国际化热更新的实战,有三个方案,代码实现过程中遇到的一些问题,做了一些解决和说明。
1456 0
三种手段:通过Apollo和nacos的能力进行国际化动态配置实现热更新