tmux 滚轮

(内容由 AI 生成,仅作参考)

在 tmux 中,滚轮无法直接使用、无法直接复制,因为 tmux 默认是一个纯键盘操作的环境。

要解决这个问题,有两种方案:方案一(推荐,启用鼠标模式) 和 方案二(纯键盘操作)。

方案一:启用鼠标模式(最简单,像普通终端一样)

开启后,可以直接用鼠标滚轮翻页,也可以用鼠标选中文本。

1. 临时开启(当前会话生效)

在 tmux 中按下快捷键进入命令行模式:

  1. 按下前缀键 Ctrl + b。
  2. 松开,按 : (冒号),底部会出现黄色输入条。
  3. 输入 set -g mouse on 然后回车。

效果: 可以直接用鼠标滚轮向上翻看历史输出了。

2. 永久开启(推荐)

为了避免每次重启服务器都要输一遍,建议写入配置文件:

  1. 打开配置文件:vim ~/.tmux.conf (如果没有这个文件就新建一个)。
  2. 在里面写入一行:
set -g mouse on

  1. 保存退出。(输入 :wq)
  2. 让配置生效:在 tmux 里按下 Ctrl + b,然后按 :,输入 source ~/.tmux.conf。

3. 如何在鼠标模式下“复制到系统剪贴板”

开启鼠标模式后,用鼠标选中文字,文字会变黄,但不会自动进入电脑剪贴板(即无法 Ctrl+V 粘贴到外面)。

解决方法(按住 Shift 键):

  • Linux/Windows: 按住 Shift 键不放,然后用鼠标左键拖拽选中文本。这时是系统的终端在接管选择,选好后再按 Ctrl+Shift+C (或右键复制)。
  • Mac (iTerm2): 按住 Option (Alt) 键不放,然后拖拽选择。

方案二:纯键盘“复制模式” (Copy Mode)

如果不想开鼠标模式,或者想精准复制几千行超长的日志(鼠标拖拽不方便),可以使用这个原生的方法。

1. 进入“复制/回滚”模式

  • 按下 Ctrl + b,松开后按 [ (左方括号)。
  • 现在的状态: 进入了回滚模式。右上角通常会显示行数。

2. 如何移动(翻页)

  • 箭头键:上下移动一行。
  • PageUp / PageDown:翻页。
  • Ctrl + u / Ctrl + d:向上/向下半页。
  • g / G:跳到最顶端 / 跳到最底端。

3. 如何开始复制(选择文本)

默认情况下 tmux 并不是像 Windows 那样按 Shift 选择,而是类似 Emacs 或 Vim 的逻辑:

  1. 移动光标到你想复制的起点。
  2. 按下 Space (空格键) —— 开始选择(此时移动光标,选中的文字会变色)。
  3. 移动光标到终点。
  4. 按下 Enter (回车键) —— 确认复制,并自动退出复制模式。
  • 注:这一步是将文本复制到了 tmux 自己的剪贴板中,不是系统的。

4. 如何粘贴(在 tmux 内部)

  • 按下 Ctrl + b,松开后按 ] (右方括号)。

总结

需求 推荐操作
只是想回头看一眼上面的报错 开启 set -g mouse on,直接滚轮滑。
想复制几行报错去 Google 按住 Shift 键,用鼠标选中,右键复制。
想复制几百行/几千行完整的 Log 使用 方案二 (键盘模式):Ctrl+b -> [ -> 移动 -> Space选择 -> Enter复制 -> 粘贴到文件里。

tips:
如果在 方案二 (Copy Mode) 下,想搜索某个报错关键词:
进入模式后,按下 / 键,然后输入关键词(像 Vim 一样搜索),按 n 查找下一个。这在查 Log 时非常有用。


tmux 相关介绍

tmux 的结构可以看作是一个浏览器(比如 Chrome):

  • Session (jailbreak-0):就像是一个浏览器窗口。
  • Window (窗口):就像是浏览器里的“标签页”。
  • Pane (窗格):就像是把一个标签页分屏(左边一个,右边一个)。

tmux ls 显示 1 windows,意思是目前的这个会话里只有 1 个标签页。你完全可以在这个 jailbreak-0 会话里开 10 个、20 个“终端”,它们都属于这同一个会话,互不干扰,但同时存在。


1. 怎么在当前会话里“新建标签页”

假设你已经进入了 jailbreak-0:

  • 新建窗口 (New Window):

  • 按下 Ctrl + b,松开,然后按 c (Create)。

  • 效果: 你的屏幕会变成一个新的、空白的终端。底部的绿色状态栏会多出一个编号(比如 1:bash)。

  • 应用场景:

  • 窗口 0:跑你的 run_sidechannel_experiments.sh 实验代码。

  • 窗口 1:跑 htop 或者 watch -n 1 nvidia-smi 监控 GPU。

  • 窗口 2:用 vim 修改另一个代码文件。

  • 窗口 3:查看日志文件。


2. 怎么在这些窗口之间“切换”

既然开了多个,怎么回得去?

  • 切换到下一个窗口:Ctrl + b,松开,按 n (Next)。
  • 切换到上一个窗口:Ctrl + b,松开,按 p (Previous)。
  • 直接跳到指定窗口:Ctrl + b,松开,按 数字键 (比如 0, 1, 2)。
  • 可视化选择列表:Ctrl + b,松开,按 w (Window)。
  • 你会看到一个列表,可以用上下键选择你想去的窗口,按回车进入。

3. 分屏 (Panes)

有时候不想切换标签页,而是想同时看到两个终端(比如左边跑代码,右边看 GPU),这就叫 Pane。

  • 左右分屏:Ctrl + b,松开,按 % (百分号,通常是 Shift + 5)。
  • 上下分屏:Ctrl + b,松开,按 " (双引号,通常是 Shift + ')。
  • 在分屏间光标移动:Ctrl + b,松开,按 上下左右方向键。

总结

tmux 创建的 jailbreak-0 不仅仅是一个终端,还是一个工作台。

可以把所有和 Jailbreak 实验相关的终端都开在这个 jailbreak-0 里:

  • Window 0: 跑实验
  • Window 1: 监控资源
  • Window 2: 修改脚本

这些内容始终在服务器上存在,与本地连接无关,下次断开 vpn 连接再回来 (tmux attach -t jailbreak-0),这 3 个窗口、所有的分屏、跑着的代码,全部都会保持原样。

posted @ 2026-02-09 13:28  rdcamelot  阅读(1868)  评论(0)    收藏  举报