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

tmux 入门与实用指南

tmux 入门与实用指南

  • 前言
  • 简介
  • 安装与使用
    • 安装 tmux
    • 基础使用方法
    • 快捷键
    • 实用场景

前言

如果想简单的在后台运行,可以使用Linux/Unix 系统自带的命令行工具nohup,例如:

nohup python train.py > mylog.log 2>&1 &
# nohup:不挂断运行
# python train.py:要执行的命令
# >:重定向标准输出
# mylog.log:自定义的日志文件
# 2>&1:把标准错误也重定向到标准输出
# &:把任务放到后台运行# 注意:
# 记得加 &,否则 nohup 会占用终端,无法释放
# 监控日志文件 tail -f nohup.out 或 tail -f mylog.log

但是它具有非交互式、不可分屏、不可多窗口、只负责“任务退出终端后继续跑”的特点。

在 Linux 和 macOS 用户中,有一个工具被称为“终端中的神器”,那就是 tmux。不论你是远程管理服务器、调试程序,还是跑长时间任务,tmux 都能大大提升你的效率。这篇博客主要介绍了tmux入门与实用指南。

简介

**tmux(terminal multiplexer,终端复用器)**是一个可以在单个终端窗口中,开启多个会话、分屏显示、后台运行任务,并支持断线重连的工具。
在这里插入图片描述

通俗来说,tmux 就像:

  • 一个可以分屏的终端管理器。
  • 一个可以随时保存、恢复的工作环境。
  • 一个服务器必备的任务管理工具。

它的用途包括:

  • 远程服务器跑任务时,防止 SSH 断线导致任务中断。
  • 在单个终端里开多个窗口,提升多任务处理效率。
  • 自定义快捷键和布局,让终端像 IDE 一样强大。

(可跳过)理解 tmux 的 3 层结构:Session(会话)>> Window(窗口)>> Pane(窗格),其中:

  • Session:可以理解为一个独立的工作环境。
  • Window:session 里的一个标签页。
  • Pane:window 里的一个分屏。

你可以:

  1. 开多个 session
  2. 每个 session 里有多个 window
  3. 每个 window 里分成多个 pane

安装与使用

安装 tmux

在不同系统上,安装 tmux 分别使用以下不同的命令:

  • Linux系统:
sudo apt install tmux
  • macOS系统:
brew install tmux

基础使用方法

启动 tmux 会话(mysession 是会话名称,可自定义修改):

# 输入命令回车,就在 tmux 环境里了,可以自由操作。
tmux new -s mysession

退出到后台:

Ctrl + b,然后松开,再按 d

查看所有会话:

tmux ls

重新连接到会话:

tmux attach -t mysession

杀掉会话:

tmux kill-session -t mysession

快捷键

在此列举了tmux常用快捷键及其功能,如下表所示:

快捷键功能
Ctrl+b c新建窗口
Ctrl+b n下一个窗口
Ctrl+b p上一个窗口
Ctrl+b w窗口选择菜单
Ctrl+b "横向分割窗格
Ctrl+b %纵向分割窗格
Ctrl+b o切换到下一个窗格
Ctrl+b x关闭当前窗格
Ctrl+b d从会话中 detach(退出到后台)

实用场景

在此,列举了几个tmux常见且实用的技巧:

  1. 远程服务器跑模型/任务
tmux new -s train
python train.py
Ctrl+b d  # 退出后台
  1. 多任务并行
    用 Ctrl+b " 和 Ctrl+b % 分割屏幕,一边看日志,一边调试程序。
  2. 多窗口管理
    Ctrl+b c 创建多个窗口
    Ctrl+b n 和 Ctrl+b p 切换任务
    像浏览器标签页一样高效。
  3. 进阶配置
# 改前缀键为 Ctrl+a(在键盘上更方便按)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix# 启用鼠标选择和滚动
set -g mouse on# 分屏美化
setw -g pane-border-status top
setw -g pane-border-format "#{pane_index} #{pane_title}"# 增强历史记录行数
set -g history-limit 10000

保存后运行:

tmux source-file ~/.tmux.conf
http://www.xdnf.cn/news/4607.html

相关文章:

  • 从零开始用 AI 编写一个复杂项目的实践方法论
  • R语言数据挖掘:从“挖井”到“淘金”
  • C31-形参与实参的区别
  • Google 发布 Gemini 2.5 Pro Preview (I/O Edition),具有增强的编程能力
  • 多模态文档检索开源方案-三大竞赛获奖方案技术链路
  • Flink SQL DataStream 融合开发模式与动态配置热加载机制实战
  • C++ STL 入门:map 键值对容器
  • Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案
  • 全面解析 iTextSharp:在 .NET 中高效处理 PDF
  • 贵州安全员考试内容有哪些?
  • Python学习笔记--Django的安装和简单使用(一)
  • 【Linux网络】Socket 编程预备
  • 图像管理与人脸识别工具深度解析
  • 查看单元测试覆盖率
  • 辰鳗科技朱越洋:紧扣时代契机,全力投身能源转型战略赛道
  • maven 安装 本地 jar
  • 算法的时间复杂度
  • 手写 vue 源码 ===:自定义调度器、递归调用规避与深度代理
  • 基于大模型预测的产钳助产分娩全方位研究报告
  • 【工具教程】批量提取PDF指定内容并重命名,PDF文档根据指定识别文字改名,基于java的实现方案
  • (7)Nokov 室内光学跟踪系统
  • 玄机 第一章 应急响应-Linux日志分析
  • C#学习7_面向对象:类、方法、修饰符
  • MySQL 8.0 OCP(1Z0-908)英文题库(11-20)
  • 编写大模型Prompt提示词方法
  • 奥威BI:AI+BI深度融合,重塑智能AI数据分析新标杆
  • 382_C++_在用户会话结束时,检查是否有其他会话仍然来自同一个客户端 IP 地址,没有连接状态设置为断开,否则为连接
  • M0芯片的基础篇Timer
  • Android RecyclerView自带的OnFlingListener,Kotlin
  • 58.[前端开发-前端工程化]Day05-webpack-Git安装-配置-Git命令