在 Android 上使用 tmux
手机经常断线。服务器上用了 tmux,断线时程序照样运行,Termexa 会把你带回同一个会话。本页介绍设置方法和应用内置的 tmux 工具。
为什么在手机上 tmux 很重要
- 在 Wi-Fi 和移动数据之间切换或关闭屏幕都可能断开 SSH 连接,普通 shell 中正在运行的程序也可能随之停止。
- tmux 组合键(先按前缀再按一个键)在手机键盘上要点好几下。
- 在小屏幕上很难看出自己在哪个窗口或窗格。
在 Termexa 中设置 tmux
- 保存附加命令。 在主机的要运行的命令中输入
tmux new -A -s main。它会附加到名为main的会话,没有则创建。Termexa 每次重连都会运行同一命令,让你回到原处。 - 添加 tmux 按键。 在设置 → 快捷键面板中点一个位置,打开插件标签。tmux 一行包含上一个/下一个窗口、新建窗口、下一个/上一个窗格、放大、左右和上下分割、复制模式和分离;还有按方向切换窗格、关闭窗格以及窗口和会话列表。前缀由 Termexa 代为发送。
- 使用导航。 添加导航键。它通过 SSH 读取 tmux 的会话、窗口和窗格并以列表显示;点其中一项,终端就会跳过去。
- 复制到手机。 在 tmux 中开启剪贴板支持后,在 tmux 里复制的文字可以进入手机剪贴板。Termexa 对每个主机只询问一次,服务器永远无法读取你的剪贴板。
示例:~/.tmux.conf
# 在 tmux 中复制的文字发送到手机剪贴板(OSC 52)
set -g set-clipboard on
# 让 Termexa 的“命令完成”提醒在 tmux 中也能生效
set -g allow-passthrough on
完成提醒还需要为 bash 或 zsh 添加几行 shell 集成(fish 4 已内置)。快速上手指南中有这些内容。
阅读较长的输出
用复制模式键向上翻看 tmux 历史,按 q 退出。放大让当前窗格占满屏幕,在窄小的手机上很有用。
同样支持 Herdr
Termexa 以同样的方式支持 Herdr——一个在同一屏幕上运行多个终端和编程代理的多路复用器:把 herdr --session main 保存为要运行的命令。在 Herdr 中,导航还会标出代理正在等待输入的窗格。
常见问题
使用 Termexa 必须有 tmux 吗?
不必。Termexa 可以作为普通的 SSH shell 使用。有了 tmux 或 Herdr,还能使用导航、多路复用器按键,以及断线后依然存在的会话。
手机断线后程序还会继续运行吗?
在 tmux 中会:程序在服务器上继续运行,Termexa 用保存的命令重新附加。在没有多路复用器的普通 shell 中,连接关闭时程序可能会停止。
Termexa 发送哪个 tmux 前缀?
默认是 Ctrl+B,与 tmux 相同。工具栏中的 tmux 键会把前缀和命令键一起发送。
能在手机上看到所有 tmux 会话吗?
可以。导航会列出会话、窗口和窗格,并把终端切换到你点的那一项。
在 tmux 中复制的内容能进入手机剪贴板吗?
可以,只要在 tmux 中开启 set-clipboard。Termexa 在接受该服务器的剪贴板写入前,会对每个主机询问一次。