Existe uma maneira de enviar um comando de uma sessão ssh remota para sua máquina local?

1

Estou executando todo o meu código em uma máquina remota. Eu montei o sistema de arquivos remoto usando sshfs no meu laptop, para que eu possa usar meus próprios editores de texto preferidos e tal. Ou seja na minha janela de terminal eu corro uma sessão ssh onde eu insiro meus comandos, e no meu editor local eu tenho um arquivo montado aberto.

A única coisa tediosa é que toda vez que eu quero abrir um arquivo ou diretório, eu tenho que navegar todo o caminho até o diretório local montado em uma nova janela de terminal.

Existe uma maneira simples de definir um atalho de comando / teclado para que eu possa abrir imediatamente um arquivo / diretório local da minha sessão ssh?

Eu pensei em:

  • Um script que envia um comando via ssh para meu próprio laptop do controle remoto
  • De alguma forma, usando o pasteboard (fazendo pwd no controle remoto, copiando para o pasteboard, traduza-o para um caminho para o sistema de arquivos montado localmente)
  • Usando o applescript (já que estou trabalhando em um Mac) e fazendo um novo serviço para o Terminal.app

mas até agora não consegui resolver o problema.

    
por ComboCosmo 04.08.2016 / 07:54

1 resposta

1

Se você tiver o X11 no controle remoto e se conectar a ele com ssh -X , então você já tem um canal reverso de volta à sua máquina local. Escreva um pequeno script no controle remoto, por exemplo, fff :

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

Depois, quando quiser passar um nome de arquivo de volta, no tipo remoto fff e o nome do arquivo a ser editado usando a tabulação completa, etc. O script prefixará o nome do arquivo com o ponto de montagem e definirá a seleção primária X11 como o resultado.

Na sua máquina local, você pode simplesmente digitar vi e pressionar o botão de colar do mouse para adicionar o nome do arquivo local equivalente ao comando.

    
por 04.08.2016 / 15:21

Tags