Executando um comando em uma nova instância de terminal em um script bash

2

Eu tenho um script bash onde eu configuro minhas configurações de proxy automaticamente. Eu criei alguns aliases no arquivo .bash_aliases . Agora há um comando em que eu ssh no meu servidor remoto e faço um encaminhamento de porta dinâmico e, essencialmente, criar um proxy de meias. Então, preciso configurar minhas configurações de proxy de acordo.

O comando parece:

proxy off && ssh -D <port> <username>@<hostaddress>

Eu aliasse o comando acima e quando eu digito o alias no terminal, estou conectado ao meu servidor remoto com sucesso. No entanto, depois que isso é feito, eu preciso executar outro comando em uma nova janela de terminal para configurar o meu proxy de meias recém-criado. Basicamente eu só preciso correr:

proxy socks #It configures my laptop to use the socks proxy

Eu não posso fazer isso na mesma janela de terminal e apenas && após o comando ssh porque isso significaria que estou tentando executar o comando no servidor remoto. Eu quero executar este comando no meu laptop.

Existe alguma maneira de executar o segundo comando em uma nova janela de terminal em uma única linha, como pipe ou e comandos diferentes? É realmente ineficiente abrir uma nova aba no terminal toda vez que eu ssh no meu servidor remoto, apenas para que eu possa digitar um único comando para configurar meu proxy e então fechar essa aba porque eu não preciso mais dele.

    
por Vivek Pradhan 15.02.2014 / 08:34

1 resposta

1

Tente assim:

port=1234
remote=username@host
proxy off && ssh -fND $port $remote && proxy socks

O -f sinalizador diz ssh para entrar em segundo plano e -N diz para não executar comandos, apenas encaminhar portas. Desta forma, você pode continuar trabalhando no seu terminal atual.

    
por janos 15.02.2014 / 09:28