Выполнение команды в новом экземпляре терминала в 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 подключаюсь к своему удаленному серверу, просто чтобы я мог набрать одну команду для настройки моего прокси и затем закрыть эту вкладку, потому что она мне больше не нужна.

2
задан 15 February 2014 в 11:34

1 ответ

Попробуйте сделать это вместо этого:

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

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

0
ответ дан 15 February 2014 в 11:34

Другие вопросы по тегам:

Похожие вопросы: