通过本地 tmux 会话在 ssh 上使用 tmux 命令

Using tmux commands on ssh through a local tmux session

我有一个本地 tmux 会话,我可以正常进行所有操作。现在我通过 ssh 连接到一台远程机器并在那里生成一个 tmux 会话。在远程会话中,我想使用所有工具,如打开一个新的 window、重命名一个 window、浏览会话-window 树等。问题是每当我使用任何这样的命令,它应用于本地会话而不是远程会话!例如,ctrl + b + , 更改远程上的 window 名称,尝试重命名当前本地 tmux window 我通过它进行 ssh-编辑。即使我在远程 bash 中有一个闪烁的光标也是如此。我如何告诉 tmux 该命令将在远程机器上执行,而不是在本地机器上执行?

您必须在 .tmux.conf 中设置以下部分:

bind-key b send-prefix

现在您可以按 ctrl-b + b + , 更改内部会话 window 名称。由于默认情况下所有命令都进入最外层会话,因此您必须使用绑定密钥来访问您的内部会话。

ctrl-b + b + ,  # changes name of inner session (remote)
ctrl-b + ,      # changes name of outer session (local)

我假设 ctrl-b 是您的默认前缀键。 ctrl-b,我的意思是 ctrl + b
ctrl-b + b + ,表示你必须按ctrl,按两次b然后再按,

您可以进一步使用 bind-key <key> send-keys <key1 key2> 绑定一个密钥,将多个密钥一起发送并访问远程实例中的 windows。您可以参考此answer or this answer了解更多信息。