Copia texto de um terminal para outro

5

Estou conectado ao ssh em uma conta universitária no meu computador de casa. Então eu encontro um arquivo que eu quero copiar no meu sistema local. Então eu abro um novo terminal de shell e estou prestes a usar scp para copiar esse arquivo para o meu sistema. Mas o caminho para o arquivo no sistema em que eu sou ssh 'é longo, então eu o seleciono com o mouse e colo com o mouse no outro terminal conectado localmente.

O que eu gostaria de fazer é algo como alimentar a saída de pwd em uma variável temporária e visível para todos os terminais, mesmo que eu tenha feito isso sob o terminal ssh 'ed, ou algum de outra forma que eu não consigo pensar.

    
por Vass 05.12.2010 / 21:37

4 respostas

3

A maneira de fazer isso é usar um arquivo comum ou um pipe nomeado.

Por que não fazer o scp no terminal original em primeiro lugar (mesmo em segundo plano)?

Se o sistema host usar proc , no segundo terminal faça cd -P /proc/PID/cwd , em seguida, faça o seu scp de . (onde PID é aquele do shell que está no cwd / pwd no qual você está interessado ).

    
por 05.12.2010 / 22:30
3

Se o seu terminal suporta o protocolo zmodem (o Konsole do KDE faz isso) e o sistema remoto tem o pacote lrzsz instalado, você pode disparar uma transferência direta via terminal usando:

sz foo.txt

O Konsole solicita que você salve o arquivo e pronto. A tela do GNU aparentemente também tem suporte ao zmodem.

    
por 05.12.2010 / 23:10
1

Se você tiver o servidor ssh em execução na sua máquina doméstica, poderá fazer o contrário scp :

[student@university ~/rather/long/path/to/interesting/file]$ scp ./secrect.txt [email protected]:~

    
por 05.12.2010 / 22:18
1

Se você tiver o encaminhamento X ativo ( ssh -X , ForwardX11 in ~/.ssh/config ou qualquer outro método), poderá manipular a seleção X do shell:

printf %s "$PWD" | xsel -i

Dependendo do seu emulador de terminal, você pode querer definir o CLIPBOARD ( xsel -bi ) em vez da seleção PRIMARY ( xsel -p ). Você também pode usar a seleção SECONDARY ( xsel -si ).

Você pode usar o botão do meio do mouse para colar a seleção PRIMARY, ou (em alguns terminais) o CLIPBOARD com Ctrl + V , ou você pode usar xsel (ou xsel -s ou xsel -b ) no shell do outro lado.

Existem outros fluxos de trabalho possíveis, envolvendo, por exemplo, uma conexão ssh reversa, ~ escapes ou zssh . Veja SSH copie facilmente o arquivo para o sistema local , Faça o download de um arquivo em uma sessão SSH ativa . Você também pode montar o sistema de arquivos remoto por sshfs .

    
por 05.12.2010 / 22:31