跳过正文
  1. 技术博客/

Tmux使用教程

·1054 字·3 分钟·
Somnus
作者
Somnus
记录学习、项目、实验和一些被密码保护起来的日常。

为什么用tmux:首先,因为我最近换了一个终端模拟器alacritty,这个模拟器不支持原生的分屏,需要通过tmux辅助。别问为什么非要用alacritty而不是自带分屏的ghostty,因为一个是rust一个是zig。 另外,我在使用服务器训练raft视觉模型的时候,偶尔因为网络断开连接,导致远程ssh关闭,自动的结束了训练,虽然我知道了可以使用nohup 在>输出到log文件中,但是还是觉得如果可以用tmux这种会更方便。

tmux简介
#

为了解决上面提到的很常见的问题(关闭终端窗口&断开连接会导致任务(会话)终止),tmux的任务就是把session和窗口解除了绑定。 因此,tmux有三层结构,这样既解决了上面的问题,也推出了方便的分屏功能。

1session(会话)
2  └── window(窗口)
3        └── pane(面板/分屏)

上面这个例子中就是在seesion:s1中的window:0。

tmux安装
#

安装本体
#

1#Ubuntu & Debian
2sudo apt install tmux
3#CentOS & Fedora
4sudo yum install tmux
5# Mac
6brew install tmux

安装tpm(tmux插件管理工具)
#

1git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

配置conf文件
#

1nano ~/.tmux.conf

写入配置
#

 1# =========================
 2# 基础配置
 3# =========================
 4set -g prefix C-a
 5unbind C-b
 6bind C-a send-prefix
 7
 8set -g mouse on
 9
10# =========================
11# 插件管理
12# =========================
13set -g @plugin 'tmux-plugins/tpm'
14
15# Catppuccin主题
16set -g @plugin 'catppuccin/tmux'
17
18# 可选:增强体验插件
19set -g @plugin 'tmux-plugins/tmux-sensible'
20
21# =========================
22# Catppuccin配置(可选优化)
23# =========================
24set -g @catppuccin_flavour 'mocha'   # latte / frappe / macchiato / mocha
25
26# 状态栏位置
27set -g status-position bottom
28
29# =========================
30# 初始化 TPM(必须放最后)
31# =========================
32run '~/.tmux/plugins/tpm/tpm'

安装插件
#

进入tmuxtmux,然后Ctrl + a ->Shift + I

  • 等待自动安装
  • 大写I

加载配置
#

1tmux source-file ~/.tmux.conf

tmux使用
#

🟢 会话(session)
#

1tmux new -s name          # 创建会话
2tmux ls                   # 列出会话
3tmux attach -t name       # 进入会话
4tmux kill-session -t name # 删除会话
5tmux rename-session -t old new

🔵 基本快捷键(前缀 Ctrl + a)
#

1Ctrl + a d        # detach(后台运行)
2Ctrl + a r        # 重载配置(需绑定)
3Ctrl + a :        # 命令模式

🟡 窗口(window)
#

1Ctrl + a c        # 新建窗口
2Ctrl + a n        # 下一个窗口
3Ctrl + a p        # 上一个窗口
4Ctrl + a 数字     # 切换窗口
5Ctrl + a ,        # 重命名窗口
6Ctrl + a w        # 列出窗口
7Ctrl + a &        # 关闭窗口

🟣 分屏(pane)
#

1Ctrl + a %        # 垂直分屏
2Ctrl + a "        # 水平分屏
3Ctrl + a 方向键   # 切换 pane
4Ctrl + a x        # 关闭 pane
5Ctrl + a z        # 最大化/还原 pane

🟠 调整大小
#

1Ctrl + a Ctrl + ←/→/↑/↓   # 调整 pane 大小

🟤 布局
#

1Ctrl + a 空格      # 切换布局
2Ctrl + a Alt + 1   # even-horizontal
3Ctrl + a Alt + 2   # even-vertical
4Ctrl + a Alt + 3   # main-horizontal
5Ctrl + a Alt + 4   # main-vertical

⚫ 复制模式(vi)
#

1Ctrl + a [        # 进入 copy-mode
2v                # 开始选择
3y                # 复制
4q                # 退出

🎯 一句话速记
#

1session:tmux new -s
2退出不关:Ctrl+a d
3分屏:% 和 "
4切换:方向键