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

Linux 神器 tmux 超详细入门教程:会话持久化 + 多窗口管理一网打尽

1. 命令简介

tmux 是一个优秀的终端复用器(Terminal Multiplexer)。它允许用户在一个终端窗口中创建、访问和控制多个独立的终端会话(会话)、窗口和窗格。其核心价值在于,即使网络连接中断或关闭本地终端,运行在 tmux 会话中的进程也会继续在后台执行,用户可以随时重新连接(attach)到这些会话,恢复工作现场。

主要特点:

  • 会话持久化:服务器端运行,不受客户端连接断开的影响。
  • 多窗口与窗格:支持水平、垂直分割屏幕,高效管理多个终端任务。
  • 灵活的配置:可通过配置文件(~/.tmux.conf)高度自定义快捷键、状态栏等。
  • 协作功能:支持多个用户同时连接到同一个会话,进行结对编程或演示。

2. 语法格式

基本语法:

plaintext

tmux [command] [flags] tmux [flags] [command [args]]

常用形式:

plaintext

tmux tmux new -s session_name tmux attach -t session_name tmux ls

参数说明:

  • command:指定要执行的子命令,如 new(新建会话)、attach(连接会话)、ls(列出会话)等。如果不提供任何命令,tmux 默认行为是 new-session。
  • flags:全局选项或命令选项,用于修改命令行为。
  • args:传递给特定命令的参数。

3. 常用选项及说明

全局选项(启动 tmux 时使用)

表格

选项简写说明
-L socket-name指定使用的 tmux 服务器套接字名称。允许多个独立的 tmux 服务器实例。
-f file指定替代的配置文件(默认为~/.tmux.conf)。
-2强制 tmux 假设终端支持 256 色。
-u告诉 tmux 终端支持 UTF-8。
-V显示 tmux 版本信息。

常用子命令

表格

命令简写说明
new-sessionnew创建一个新的 tmux 会话。
attach-sessionattach, a连接到一个已存在的、处于脱离(detached)状态的会话。
list-sessionsls列出所有 tmux 会话。
kill-session杀死指定的会话。
kill-server杀死 tmux 服务器及其所有会话。
rename-session重命名当前或指定的会话。
switch-clientswitchc切换已连接的客户端到另一个会话。

new-session 常用选项

表格

选项简写说明
-s session-name为新会话指定一个名称。
-n window-name为初始窗口指定一个名称。
-d不自动连接(attach)到新会话,在后台创建。
-c start-directory设置会话中窗口的起始工作目录。

attach-session 常用选项

表格

选项简写说明
-t target-session指定要连接的目标会话名称或编号。

4. 示例用法

4.1 基础会话管理

启动一个新的匿名会话:

plaintext

tmux

启动一个命名会话:

plaintext

tmux new -s mywork

在后台启动一个会话(不自动连接):

plaintext

tmux new -s daemon_session -d

列出所有会话:

plaintext

tmux ls # 或 tmux list-sessions

输出示例:

plaintext

0: 1 windows (created Tue May 14 10:00:00 2024) mywork: 2 windows (created Tue May 14 09:30:00 2024)

连接到指定会话:

plaintext

tmux attach -t mywork # 简写 tmux a -t mywork

从会话中脱离(返回原 Shell):

在 tmux 会话中,按下默认前缀键 Ctrl+b,然后按 d。

重命名当前会话:

在 tmux 会话中,按下 Ctrl+b,然后按 $,输入新名称后回车。 或在命令行执行:tmux rename-session -t old_name new_name

结束一个会话:

plaintext

tmux kill-session -t session_name

4.2 在脚本中使用

创建一个后台会话并运行命令:

plaintext

# 创建一个名为‘monitor’的后台会话,并在其中运行 top 命令 tmux new-session -d -s monitor 'top' # 稍后可以连接查看 tmux attach -t monitor

在指定目录启动会话:

plaintext

tmux new-session -s project -c ~/projects/myapp

5. 注意事项

  • 前缀键(Prefix Key):tmux 的所有快捷键都需要先按一个前缀键(默认为 Ctrl+b),松开后再按功能键。这是为了避免与终端或应用程序本身的快捷键冲突。
  • 配置生效:修改~/.tmux.conf 配置文件后,需要重启 tmux 服务器(tmux kill-server)或在会话中按 Ctrl+b 然后输入 :source-file ~/.tmux.conf 来重新加载配置。
  • 嵌套使用:尽量避免在 tmux 会话中再启动另一个 tmux(嵌套)。虽然技术上可行,但会导致快捷键冲突和管理混乱。通常使用创建新窗口或窗格来替代。
  • 会话恢复:即使关闭了终端或 SSH 连接,tmux 服务器及其会话仍在远程主机上运行。重新登录后,使用 tmux attach 即可恢复工作。
  • 滚动和复制:
    • 要滚动查看历史输出,进入复制 / 滚动模式:按下前缀键(默认为 Ctrl+b),然后按 [ 键。在此模式下,可以使用箭头键、Page Up/Page Down 滚动,按 q 退出。
    • 复制文本:进入复制模式后,使用方向键或鼠标(如果启用)选择文本,然后按 Enter 复制到缓冲区。粘贴时,按下前缀键后按 ] 键。

获取更多Linux学习资料请关注“阿成学长工具包”,对话框中输入2647获取

http://www.jsqmd.com/news/1144851/

相关文章:

  • Kani:Rust开源模型检查器,为安全属性提供正确性保证并发现未知漏洞!
  • PyTorch 2.0 静态量化实战:ResNet-18 模型大小压缩 75%,推理速度提升 3 倍
  • LLM大模型 - 大模型及其训练方式
  • React Loadable:给 React 应用做代码分割的老牌方案
  • ResNet-50 PyTorch 迁移学习实战:CIFAR-10 数据集 5 分钟达到 92% 准确率
  • 为知笔记导出到本地 Markdown,老笔记也能重新用起来
  • C语言操作符和输入输出函数
  • HTML打包EXE多实例共享进程:多开更快还能共享登录
  • 从一条用户评论到Browser Bridge的新功能-Tab隔离
  • 基于Java的助老助残服务平台
  • C++之获取内存地址std::addressof
  • AI能改变秋冬服装行业吗?很多企业已经给出了答案
  • 三分钟安装Claude Code 最新版安装教程----简单易懂版本
  • CentOS 企业网络管理入门实战:打通网络理论与服务器实操壁垒
  • 光储充微电网系统降本增效实战指南
  • CV、语言感知(ASR/TTS)、多模态,就能理解AI是如何“看到”与“听到”世界的
  • 2026年TMS系统选型攻略:避开这5个坑,选对系统让运输成本直降20%
  • 微信读书官方 Skill:装完能干什么?
  • Linux的i2c驱动是怎么识别到设备并且匹配设备的
  • 免费解锁Wand专业版完整功能:开源增强工具完全指南
  • TC78H651AFNG与MK64FN1M0VDC12的直流有刷电机驱动方案解析
  • 已知链中心距用节数算中间电机摆放位置 常量弧长 三链轮弦长模型算法
  • 网盘直链下载助手完整教程:8大网盘一键获取真实下载链接终极指南
  • BUUCTF rsa
  • 【1985-2025年】城市/农村/乡村/城镇边界矢量数据|全球高分辨率|逐年更新|SHP格式
  • 你的数据正在“裸奔”吗?一文看懂2026年网络安全新威胁与自救指南
  • TensorFlow 2.x 自定义训练循环实战:对比 fit 方法,Loss 下降速度提升 15%
  • R 4.3.1 + RStudio 2024.09 双平台安装:Windows 11 与 macOS Sonoma 全流程对比
  • 让 Git 提交自动带「Verified」徽章:GitHub SSH 签名免 ssh-agent 实战
  • 2026年7月探寻四川信誉优良的GEO优化运营商