当前位置: 首页 > news >正文

Tmux 入门 + 常用命令 (解决 ssh 远程终端断连 - 实现 Linux终端多任务 + 多窗口)

Tmux (Terminal Multiplexer) 是一款功能强大的终端复用器,它早已成为许多开发者工具箱中的必备利器(作者是在ssh连接服务器过程中遇到断连终端丢失问题后,才开始接触到 Tmux)
在这里插入图片描述
tmux:终端多任务管理 - B站Tmux播放最高的视频 - TheCW

一、Tmux 是什么?

1.1 理解会话 (Session) 与进程

我们日常使用命令行的模式通常是:打开一个终端窗口 (terminal window),在其中输入命令并与计算机交互。这个过程,我们称之为一次“会话 (session)”。

会话有一个关键特性:窗口与其中运行的进程是绑定的。一旦我们关闭窗口,会话便会终结,而会话内启动的所有进程,无论是否执行完毕,都会被强制终止。

一个经典的场景是:当我们通过 SSH 登录远程服务器,在一个终端窗口中执行耗时任务时,如果网络连接意外断开,重新登录后会发现之前的任务已经消失了。这是因为上一次的 SSH 会话已经随着连接断开而终止,其内部的进程也随之退出了。

为了解决这个问题,我们需要一种机制,让会话与窗口“解绑” (detach)。这样,即使窗口关闭,会话及其内部的进程也能在后台持续运行,等待我们下一次按需“接入” (attach) 回来。

1.2 Tmux 的核心作用

Tmux 正是实现会话与窗口“解绑”的专业工具,它能将二者彻底分离,并带来诸多好处:

  1. 多任务并行:允许在单个终端窗口中创建并访问多个独立的会话,非常适合同时处理多个命令行任务。
  2. 会话持久化:可以让新的窗口接入到已存在的会话中,即使断开连接,后台任务依然运行,随时可以恢复工作现场。
  3. 协同共享:支持多个客户端连接到同一个会话,实现多人实时共享屏幕和操作,便于远程协作和教学。
  4. 灵活布局:支持将一个窗口任意拆分为多个窗格 (pane),可以垂直或水平排列,自由组织工作区。

尽管市面上还有 GNU Screen 等类似的终端复用工具,但 Tmux 凭借其更现代的设计、更强大的功能和更友好的用户体验,成为了目前更受欢迎的选择。

二、基础用法

2.1 安装

Tmux 通常需要手动安装。您可以根据自己的操作系统,使用对应的包管理器进行安装。

# Ubuntu 或 Debian
$ sudo apt-get install tmux# CentOS 或 Fedora
$ sudo yum install tmux# macOS
$ brew install tmux
2.2 启动与退出

安装完成后,在终端中输入 tmux 命令即可进入 Tmux 环境。

$ tmux

启动后,您会看到一个全新的界面,其底部有一条状态栏。状态栏左侧显示当前窗口信息(编号和名称),右侧则显示系统信息。

要终止(退出) Tmux,可以按下 Ctrl+d 快捷键,或者直接输入 exit 命令

操作命令效果适用场景
分离会话Ctrl+b 然后按 d会话在后台继续运行,可以随时恢复。最常用。暂时离开,让任务在后台继续执行(如编译代码、下载文件、运行服务器)。
退出/终止Ctrl+dexit关闭当前窗格/窗口,如果是最后一个则整个会话被删除。彻底完成了所有工作,想完全关闭这个会话。
2.3 前缀键 (Prefix Key)

Tmux 的所有快捷键都需要通过一个“前缀键”来激活。默认的前缀键是 Ctrl+b。这意味着,您需要先按下 Ctrl+b松开后再按下一个指定键,才能触发相应的功能。

例如,查看帮助文档的快捷键是 ?。在 Tmux 窗口中,您需要先按下 Ctrl+b,然后再按下 ?,帮助信息就会显示出来。阅览完毕后,按 Escq 键即可退出帮助页面。

2.4 状态行 (Status Line)

连接 tmux 客户端后,屏幕底部会显示一条状态行
在这里插入图片描述

默认状态行显示为绿色

状态行内容如下:

在这里插入图片描述
在这里插入图片描述

三、会话管理 (Session)

3.1 新建会话

直接启动 Tmux 时,会话会以数字 0, 1, 2… 自动编号。为了便于管理,我们推荐在创建时为会话命名。

# 新建一个名为 <session-name> 的会话
$ tmux new -s <session-name>
3.2 分离会话

在 Tmux 窗口中,按下 Ctrl+b 后再按 d,或者直接输入 tmux detach 命令,即可将当前会话与窗口分离(会话将在后台继续运行)。

$ tmux detach

分离后,您会返回到常规的终端界面。此时,可以使用 tmux ls 命令查看所有正在后台运行的 Tmux 会话。

$ tmux ls
# 或者使用别名
$ tmux list-sessions
3.3 接入会话

当需要恢复工作时,使用 tmux attach 命令重新接入指定的会话。

# 按编号接入
$ tmux attach -t 0# 按名称接入
$ tmux attach -t <session-name>
3.4 终止会话

使用 tmux kill-session 命令可以彻底关闭并删除一个会话。

# 按编号终止
$ tmux kill-session -t 0# 按名称终止
$ tmux kill-session -t <session-name>
3.5 切换会话

当您已经在一个 Tmux 会话中时,可以使用 tmux switch 命令直接跳转到另一个会话。

# 按编号切换
$ tmux switch -t 0# 按名称切换
$ tmux switch -t <session-name>
3.6 重命名会话

使用 tmux rename-session 命令可以为已存在的会话重命名。

# 将 0 号会话重命名为 <new-name>
$ tmux rename-session -t 0 <new-name>
3.7 会话常用快捷键
  • Ctrl+b d:分离当前会话。
  • Ctrl+b s:以列表形式显示所有会话,可通过方向键选择并切换。
  • Ctrl+b $:重命名当前会话。

四、极简操作流程

总结一下,Tmux 最核心的工作流如下:

  1. 新建会话tmux new -s my_project
  2. 执行任务:在 Tmux 窗口中运行所需程序。
  3. 分离会话:按下 Ctrl+b d,安全下线。
  4. 恢复工作:下次登录后,执行 tmux attach -t my_project 重新连接。

五、窗格操作 (Pane)

Tmux 允许将一个窗口分割成多个独立的窗格 (pane),每个窗格都可以运行不同的命令,这是其强大之处。

5.1 划分窗格
  • Ctrl+b %:将当前窗格左右均分为两个。
  • Ctrl+b ":将当前窗格上下均分为两个。
5.2 移动光标
  • Ctrl+b 方向键:根据箭头方向( )在窗格间切换光标。
  • Ctrl+b o:按顺序循环切换到下一个窗格。
  • Ctrl+b ;:切换到上一个激活的窗格。
5.3 调整窗格
  • Ctrl+b {:将当前窗格与上一个窗格交换位置。
  • Ctrl+b }:将当前窗格与下一个窗格交换位置。
  • Ctrl+b z:将当前窗格最大化/恢复原状 (zoom)。
  • Ctrl+b x:关闭当前窗格(会提示确认)。
  • Ctrl+b !:将当前窗格独立为一个新窗口。
  • Ctrl+b q:短暂显示所有窗格的编号。

六、窗口管理 (Window)

除了窗格,Tmux 还支持在单个会话中创建多个窗口 (window),类似于浏览器中的标签页。

6.1 新建窗口
  • Ctrl+b c:在当前会话中创建一个新窗口。
6.2 切换窗口
  • Ctrl+b p:切换到上一个窗口。
  • Ctrl+b n:切换到下一个窗口。
  • Ctrl+b w:以列表形式显示所有窗口,可通过方向键选择并切换。
  • Ctrl+b [数字]:直接跳转到指定编号的窗口。
6.3 重命名窗口
  • Ctrl+b ,:重命名当前窗口。

七、其他实用命令

以下命令可以在 Tmux 环境外或内部执行,用于获取信息和管理配置。

# 列出所有快捷键及其绑定的 Tmux 命令
$ tmux list-keys# 列出所有 Tmux 命令及其参数
$ tmux list-commands# 显示当前 Tmux 服务器的综合信息
$ tmux info# 重新加载配置文件(默认为 ~/.tmux.conf)
$ tmux source-file ~/.tmux.conf

八、参考链接

Tmux 使用教程 - 阮一峰的网络日志
tmux常用命令及快捷方式 - 知乎

http://www.dtcms.com/a/450344.html

相关文章:

  • 网站建站好处中企动力网站
  • 浙江2025年高考录取政策变化
  • 【C++实战(76)】从0到1:C++在MQTT物联网开发中的实战之旅
  • VGG改进(13):基于FFT的Frequency Attention模块应用
  • 商业网站教程阿里云有主体新增网站
  • 《数据密集型应用系统设计2》--数据系统对比:OLAP/OLTP,数仓/数据湖/数据湖屋
  • Oracle OCP认证考试题目详解082系列第55题
  • 学做宝宝衣服网站好h5和小程序有什么区别
  • day5
  • 2025-10-06 Python不基础13——mro
  • 那片海dede织梦源码企业网络公司工作室网站模板源码模板php网页游戏维京传奇
  • 【深度学习03】神经网络基本骨架、卷积、池化、非线性激活、线性层、搭建网络
  • 新媒体营销seo个人优化方案案例
  • Redis项目应用总结(苍穹外卖/黑马头条/乐尚代驾)
  • 做网站js还是jq2021年世界500强榜单
  • 建设旅游网站的费用预算杭州抖音代运营
  • 【LaTeX】 13 LaTeX 长文档结构管理
  • Python入门:Python3基础练习题详解
  • 高端网站建设加盟帮人做彩票网站
  • 哪个网站做的ppt模板好查查企业网
  • 为什么做的网站别的浏览器打不开怎么回事做网站规划
  • 做影视后期应该关注哪些网站做神马网站优化快速
  • 测试题——1
  • 力扣3634. 使数组平衡的最少移除数目
  • 网站服务器不稳定樟木头网站建设
  • 建设网站都需投入哪些资源wordpress没有图片
  • 网站主栏目投资网站排行
  • 国内永久crmseo刷关键词排名免费
  • 爬虫的道德与法律边界:Robots 协议、版权与个人信息保护
  • @[TOC](文件操作和IO)