Выполнение команды в новом экземпляре терминала в скрипте bash

Выполнение команды в новом экземпляре терминала в скрипте bash

У меня есть скрипт bash, в котором я автоматически настраиваю параметры прокси. Я создал несколько псевдонимов в файле .bash_aliases. Теперь есть одна команда, с помощью которой я подключаюсь по ssh к своему удаленному серверу и делаю динамическую переадресацию портов и по сути создаю прокси-сервер socks. Поэтому мне нужно настроить параметры прокси соответствующим образом.

Команда выглядит так:

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

Я создал псевдоним для указанной выше команды, и когда я ввожу псевдоним в терминале, я успешно подключаюсь к своему удаленному серверу. Однако после этого мне нужно запустить еще одну команду в новом окне терминала, чтобы настроить мой недавно созданный прокси-сервер socks. По сути, мне просто нужно запустить:

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

Я не могу сделать это в том же окне терминала и просто &&после команды ssh, потому что это будет означать, что я пытаюсь выполнить команду на удаленном сервере. Я хочу запустить эту команду на своем ноутбуке.

Есть ли способ запустить вторую команду в новом окне терминала в одной строке, как мы передаем по конвейеру или и разные команды? Действительно неэффективно открывать новую вкладку в терминале каждый раз, когда я подключаюсь по ssh к своему удаленному серверу, просто чтобы я мог ввести одну команду для настройки прокси-сервера, а затем закрыть эту вкладку, потому что она мне больше не нужна.

решение1

Попробуйте сделать так:

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

Флаг -fговорит sshперейти в фоновый режим, а -Nговорит не выполнять команды, а просто перенаправлять порты. Таким образом, вы можете продолжать работать в текущем терминале.

Связанный контент