有没有办法将命令从远程 ssh 会话发送到本地计算机?

有没有办法将命令从远程 ssh 会话发送到本地计算机?

我正在远程计算机上执行所有代码。我在笔记本电脑上使用 sshfs 安装了远程文件系统,因此我可以使用自己喜欢的文本编辑器等。即在我的终端窗口中,我运行一个 ssh 会话,在其中输入命令,并在本地编辑器中打开一个已安装的文件。

唯一乏味的是,每次我想打开文件或目录时,我都必须在新的终端窗口中一路导航到本地安装的目录。

有没有一种巧妙的方法可以定义命令/键盘快捷键,以便我可以立即从 ssh 会话打开本地文件/目录?

我想到:

  • 一个通过 ssh 从远程向我自己的笔记本电脑发送命令的脚本
  • 以某种方式使用粘贴板(在远程执行 pwd,将其复制到粘贴板,将其转换为本地安装文件系统的路径)
  • 使用 applescript (因为我在 Mac 上工作)并为 Terminal.app 提供新服务

但到目前为止我还没有能够解决这个问题。

答案1

如果遥控器上有 X11 并且您使用 来连接它,ssh -X那么您已经有一个返回本地计算机的反向通道。在遥控器上给自己写一个小脚本,例如fff

#!/bin/bash
mountpoint=/mnt/remote
case $1 in
/*)  file="$1" ;;
*)   file="$PWD/$1" ;;
esac
echo "$mountpoint/$file" | xsel -p

然后,当您想要传回文件名时,在远程类型fff和要使用制表符补全等进行编辑的文件名上。脚本将在文件名前面添加挂载点,并将 X11 主选择设置为结果。

在本地计算机上,您现在只需键入vi并按鼠标粘贴按钮即可将正确的本地等效文件名添加到命令中。

相关内容