Ejecutar un comando en una nueva instancia de terminal en un script bash

Ejecutar un comando en una nueva instancia de terminal en un script bash

Tengo un script bash donde configuro mis ajustes de proxy automáticamente. He creado algunos alias en el .bash_aliasesarchivo. Ahora hay un comando en el que entro a mi servidor remoto y hago un reenvío dinámico de puertos y esencialmente creo un proxy de calcetines. Entonces necesito configurar mis ajustes de proxy en consecuencia.

El comando se parece a:

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

Le puse un alias al comando anterior y cuando escribo el alias en la terminal, me conecto exitosamente a mi servidor remoto. Sin embargo, una vez hecho esto, necesito ejecutar otro comando en una nueva ventana de terminal para configurar mi proxy de calcetines recién creado. Básicamente sólo necesito ejecutar:

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

No puedo hacerlo en la misma ventana de terminal y solo &&después del comando ssh porque eso significaría que estoy intentando ejecutar el comando en el servidor remoto. Quiero ejecutar este comando en mi computadora portátil.

¿Hay alguna manera de ejecutar el segundo comando en una nueva ventana de terminal en una sola línea como si canalizáramos o y comandos diferentes? Es realmente ineficiente abrir una nueva pestaña en la terminal cada vez que ingreso a mi servidor remoto, solo para poder escribir un solo comando para configurar mi proxy y luego cerrar esa pestaña porque ya no la necesito.

Respuesta1

Pruebe así en su lugar:

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

La -fbandera le indica sshque pase a segundo plano y le -Nindica que no ejecute comandos, solo reenvíe los puertos. De esta forma podrás seguir trabajando en tu terminal actual.

información relacionada