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

📅 2026/7/8 2:10:08 👁️ 阅读次数 📝 编程学习
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获取