分割窗口的快捷方式 + ssh + cd 到目录

分割窗口的快捷方式 + ssh + cd 到目录

在使用时tmux,我经常做以下事情:

  • 创建新窗口
  • ssh 到远程盒子
  • cd 到特定目录
  • 发射过程

现在我想跟踪刚刚在拆分中启动的进程的日志文件。因此我执行以下操作:

  • 拆分窗口
  • ssh到远程盒子(烦人)
  • cd到特定目录(烦人)
  • tail -f logs/run.log

我希望可以有一个快捷方式来拆分窗口并自动ssh进入同一个框并将 cd 到与父窗口相同的目录。

我遇到了以下命令,这让我相信这是可能的:

bind-key S command-prompt -p ssh: "new-window -n %1 'ssh %1'"

知道如何实现吗?

答案1

我将所有内容都放在一行代码中遇到了很大麻烦,窗口焦点和发送键的退出键会让人感到困惑。如果你稍微试验一下,你可能会在一行代码中完成所有操作。

创建一个 tmux 文件

# splitssh.tmux
split-window -h   
send-keys 'ssh server' 'c-m' 'cd folder' 'c-m'
'tail -f logs/run.log' 'c-m'

bind-key S 源 splitssh.tmux

这是该主题的另一个链接 将 tmux 键绑定到多个命令

答案2

几个月前我偶然发现了你的问题,并且一直在寻找同样的问题。我终于弄清楚了如何完成你答案的一部分,也就是最难的部分(拆分现有的 SSH)。首先安装并配置西门子高压(SSH 助手)将当前 SSH 会话拆分到新窗格中。然后,我们可以通过ssh将以下内容添加到我们的 SSH 配置中来重复使用相同的连接,从而使其变得非常快:

ControlMaster                  auto
ControlPath                    /tmp/ssh_mux_%h_%p_%r
ControlPersist                 4h # change to whatever you like, but 4h is a good start. 

请记住,如果我们的连接被终止,有时我们必须这样做rm --force /tmp/ssh_mux_*。超快的 SSH 拆分的权衡是值得的!

另外,sshh不能与开箱即用的 Fish shell 配合使用,但我知道如何让它工作,请参阅https://github.com/yudai/sshh/issues/4

相关内容