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

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

相关文章:

  • 39、.NET GC是什么? 为什么需要GC?
  • 深泽多层电路在PCB行业中属于什么水平
  • 初识Linux · 传输层协议TCP · 上
  • Python爬虫中time.sleep()与动态加载的配合使用
  • C语言自定义类型:联合与枚举详解
  • 手撕基于AMQP协议的简易消息队列-2(所用第三方库的介绍与简单使用)
  • 【MCP】为什么使用Streamable HTTP: 相比SSE的优势与实践指南
  • 【SpringMVC】详解cookie,session及实战
  • ping_test_parallel.sh 并行网络扫描脚本
  • (leetcode) 力扣100 7.接雨水(两种非官解,三种官解,对官解进一步解释)
  • QT实现曲线图缩放、拖拽以及框选放大
  • 【特别版】Kubernetes集群安装(1master,2node)
  • docker 安装 sqlserver2022 和注意点
  • 长事务:数据库中的“隐形炸弹“——金仓数据库运维避坑指南
  • P2415 集合求和 详解
  • 需求分析阶段测试工程师主要做哪些事情
  • Kubernetes探针生产环境实战指南
  • Linux下部署Keepalived
  • 代理服务器
  • DBeaver查询PostgreSQL的只读模式
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 大风暴雨致湖南岳阳县6户房屋倒塌、100多户受损
  • 上交现场配乐4K修复版《神女》:默片巅峰有了新的打开方式
  • 华为招聘:未与任何第三方开展过任何形式的实习合作
  • 甘怀真:天下是神域,不是全世界
  • 习近平致电祝贺默茨当选德国联邦总理