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 里的一个分屏。
你可以:
- 开多个 session
- 每个 session 里有多个 window
- 每个 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常见且实用的技巧:
- 远程服务器跑模型/任务
tmux new -s train
python train.py
Ctrl+b d # 退出后台
- 多任务并行
用 Ctrl+b " 和 Ctrl+b % 分割屏幕,一边看日志,一边调试程序。 - 多窗口管理
Ctrl+b c 创建多个窗口
Ctrl+b n 和 Ctrl+b p 切换任务
像浏览器标签页一样高效。 - 进阶配置
# 改前缀键为 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