Featured image of post 笔记 Linux-tmux

笔记 Linux-tmux

Linux命令 tmux

Linux-tmux

TL;DR:高频命令速查

在执行任何快捷键之前,必须先按下 前缀键(默认是 <C-b> Ctrl+b键)
在使用过程中如果不知道现在要怎么操做,直接敲<C-b> ?查看快捷键

会话层 - 项目级隔离

创建会话

1
tmux new -s <name>

进入会话(不指定t默认使用序号创建)

1
tmux a -t <name>

列出会话

1
tmux ls

删除会话 (不指定 -t 则删除当前会话)

1
tmux kill-session -t <name>

会话层快捷键:

操作 快捷键
脱离会话 (挂起至后台) <C-b> d

窗口层 - 任务标签页

CLI 创建窗口

1
tmux new-window -n <name>

窗口层快捷键:

操作 快捷键
新建窗口 <C-b> c
下 / 上一个窗口 <C-b> n / p
跳转窗口 <C-b> 0-9
重命名窗口 <C-b> ,
关闭窗口 <C-b> &

窗格层 - 一 屏 多 用

窗格层快捷键:

操作 快捷键
垂直分割 (左右分屏) <C-b> %
水平分割 (上下分屏) <C-b> "
切换窗格 <C-b> 方向键
全屏切换 (放大 / 缩小当前窗格) <C-b> z
调整大小 <C-b> <C-方向键>
关闭窗格 <C-b> x

守护进程 (Server)

启动守护进程

1
tmux start-server

停止所有会话

1
tmux kill-server

指定 socket

1
tmux -L <socket>

指定 socket 路径

1
tmux -S /path/to/socket

强制终止进程

1
pkill -f tmux

Welcome to tmux!

tmux 是终端多路复用器。它可以让您轻松地在一个终端中的多个程序之间切换、分离它们(它们在后台继续运行)并将它们重新连接到不同的终端。

幕后:tmux 守护进程

不要把 tmux 当成普通的命令,它的本质是一个常驻后台的服务

  • 悄悄打工: 当你敲下第一句 tmux 时,它就会在后台默默启动,接管你的终端。
  • 断线保命: 突然断网了?别慌。它的后台仍在运行,随时等你回来“认领”工作现场。(前提是服务器没重启、tmux 进程没被杀掉)。
  • 功成身退: 当你手动关闭了它里面所有的会话和窗口后,它就会自动销毁,绝不偷偷占用内存。
评价一下 纯牛马
自己来,自己走,中间还无条件给你后台保底

会话、窗口和窗格

  • 窗格:tmux里,每个窗格都是一个终端
  • 窗口:当前的显示界面,可以由多个窗格组成,同时可以给窗口一个名字
  • 会话:由多个窗口组成,一般一个会话用于一个项目


滚动与复制

由于默认配置下的tmux接管了终端,无法使用<S-PgUp>进行屏幕滚动,那么我们需要进入tmux自己的滚动与复制逻辑邻域了……(虽然我感觉这有点难用)

tmux正常的复制流程如下:

阶段 步骤说明 快捷键
1. 进入 冻结屏幕,开启翻页模式 <C-b> [
2. 浏览 上下翻找历史日志/报错信息 方向键 或 PgUp/Dn
3. 选中 在目标起点开启选择 <C-Space>
4. 复制 覆盖目标文本后确认并退出 <Enter>
5. 粘贴 在命令行甩出内容 <C-b> ]
取消 随时放弃操作并返回实时终端 q

同时这里有一个大坑,C-Space 会出现快捷键冲突,导致无法进入复制模式!!!!

我这里准备了几个方法:

  1. 添加配置,添加set -g mouse on~/.tmux.conf里,让鼠标可以在tmux使用,但是可能会遇到一些异常情况
  2. 添加配置,添加set -w -g mode-keys vi~/.tmux.conf,使用vi的键盘操作方式进行复制。只需要学会hjklvyq就学会vi了(bushi 还有其他比较复杂的方式就不例举出来了

会话之外 - 一些杂项操作

~/.tmux.conf 配置

可以将以下配置加入到~/.tmux.conf 配置最下面,优化使用体验

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# --- 交互基础:开启鼠标支持(支持滚轮翻页、点击换窗口、拖拽改分屏) ---
set -g mouse on

# --- 复制模式:使用 vi 按键绑定(进入 <C-b> [ 后可用 h/j/k/l 移动) ---
set -w -g mode-keys vi

# --- 命令行模式:在 tmux 的命令提示符下(<C-b> :)使用 vi 按键 ---
set -g status-keys vi

# --- 编号习惯:窗口编号从 1 开始(键盘上 1 在左边,0 太远了) ---
set -g base-index 1

# --- 编号习惯:窗格编号也从 1 开始 ---
set -g pane-base-index 1

# --- 进阶补充 1:环境对齐(让终端颜色和 Vim 保持一致,告别灰蒙蒙) ---
set -g default-terminal "screen-256color"

# --- 进阶补充 2:自动重编号(关闭中间的窗口后,后面的窗口自动顶上来) ---
set -g renumber-windows on

# --- 进阶补充 3:焦点监控(让 Vim 知道你切走了,触发自动保存/插件刷新) ---
set -g focus-events on

复杂内容以后再来探索吧(

参考

使用 Hugo 构建
主题 StackJimmy 设计