web-dev-qa-db-fra.com

Exécution d'une commande dans une nouvelle instance de terminal dans un script bash

J'ai un script bash où je configure automatiquement mes paramètres de proxy. J'ai créé des alias dans le .bash_aliases fichier. Maintenant, il y a une commande où je ssh dans mon serveur distant et fais une redirection de port dynamique et crée essentiellement un proxy de chaussettes. J'ai donc besoin de configurer mes paramètres de proxy en conséquence.

La commande ressemble à:

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

J'ai alias la commande ci-dessus et lorsque je tape l'alias dans le terminal, je suis correctement connecté à mon serveur distant. Cependant, après cela, j'ai besoin d'exécuter une autre commande dans une nouvelle fenêtre de terminal pour configurer mon proxy de chaussettes nouvellement créé. Fondamentalement, je dois juste exécuter:

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

Je ne peux pas le faire dans la même fenêtre de terminal et juste && après la commande ssh car cela signifierait que j'essaie d'exécuter la commande sur le serveur distant. Je veux exécuter cette commande sur mon ordinateur portable.

Existe-t-il un moyen de lancer la deuxième commande dans une nouvelle fenêtre de terminal sur une seule ligne comme nous canalisons ou et différentes commandes? Il est vraiment inefficace d'ouvrir un nouvel onglet dans le terminal chaque fois que je ssh sur mon serveur distant, juste pour que je puisse taper une seule commande pour configurer mon proxy puis fermer cet onglet car je n'en ai plus besoin.

2
Vivek Pradhan

Essayez comme ceci à la place:

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

Le -f l'indicateur indique à ssh d'aller en arrière-plan et le -N indique de ne pas exécuter les commandes, juste de rediriger les ports. De cette façon, vous pouvez continuer à travailler dans votre terminal actuel.

1
janos