Ausführen eines Befehls in einer neuen Terminalinstanz in einem Bash-Skript

Ausführen eines Befehls in einer neuen Terminalinstanz in einem Bash-Skript

Ich habe ein Bash-Skript, mit dem ich meine Proxy-Einstellungen automatisch konfiguriere. Ich habe in der .bash_aliasesDatei einige Aliase erstellt. Jetzt gibt es einen Befehl, mit dem ich mich per SSH mit meinem Remote-Server verbinde, eine dynamische Portweiterleitung durchführe und im Wesentlichen einen Socks-Proxy erstelle. Also muss ich meine Proxy-Einstellungen entsprechend konfigurieren.

Der Befehl sieht folgendermaßen aus:

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

Ich habe dem obigen Befehl einen Alias ​​zugewiesen und wenn ich den Alias ​​in das Terminal eingebe, bin ich erfolgreich mit meinem Remote-Server verbunden. Nachdem dies jedoch erledigt ist, muss ich einen weiteren Befehl in einem neuen Terminalfenster ausführen, um meinen neu erstellten Socks-Proxy zu konfigurieren. Im Grunde muss ich nur Folgendes ausführen:

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

Ich kann es nicht im selben Terminalfenster und nur &&nach dem SSH-Befehl tun, da das bedeuten würde, dass ich versuche, den Befehl auf dem Remote-Server auszuführen. Ich möchte diesen Befehl auf meinem Laptop ausführen.

Gibt es eine Möglichkeit, den zweiten Befehl in einem neuen Terminalfenster in einer einzigen Zeile auszuführen, so wie wir es mit Pipes oder verschiedenen Befehlen tun? Es ist wirklich ineffizient, jedes Mal, wenn ich mich per SSH mit meinem Remote-Server in Verbindung setze, eine neue Registerkarte im Terminal zu öffnen, nur damit ich einen einzigen Befehl zum Konfigurieren meines Proxys eingeben und diese Registerkarte dann schließen kann, weil ich sie nicht mehr brauche.

Antwort1

Versuchen Sie stattdessen Folgendes:

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

Das -fFlag weist an ssh, in den Hintergrund zu wechseln, und das Flag -Nweist an, keine Befehle auszuführen, sondern nur Ports weiterzuleiten. Auf diese Weise können Sie in Ihrem aktuellen Terminal weiterarbeiten.

verwandte Informationen