Вы можете сделать это с помощью tmux. Когда вы начинаете сеанс в терминале A, в левом нижнем углу окна будет целое число, заключенное в фигурные скобки. Это идентификатор сеанса.
Если вы затем запустите терминал B, вы можете ввести команду
tmux прикрепить [id]
куда я бы
это номер из терминала A, вы сможете управлять этой оболочкой терминала с любого терминала.
Однако, если вы сделаете только предыдущие шаги, вы потеряете терминал A. Здесь есть несколько удобных обходных путей. Во-первых, если вы обернете прикреплять
команда, за которой следует && целевая команда
в скобках, вы можете запустить их в подоболочке. Теоретически результат этих команд не должен влиять на окружение shellB. Тем не менее, когда результатом этой команды обычно является уничтожение shellB, я мог видеть, что она попала или промахнулась.
Другой вариант — запустить команду в отдельном процессе с &
оператор так:
команда some-terminalB и tmux attach [id] && команда терминалаA
В этом методе у меня немного больше уверенности. Тем не менее, мы можем добиться большего:
некоторая команда терминала B & (tmux прикрепить [id] && команда терминала A)
При этом используются оба метода, поэтому прикреплять
дважды удаляется из оболочки B.