Рейтинг:1

Выполнить команду на другом существующем терминале

флаг ru

Предположим, есть два терминала 0 и 1. Какую команду я должен ввести для терминала 0

чтобы терминал 1 выполнил команду.

Известно: {команда} > /dev/pts/1 не работает. команда выполняется на терминале 0

и перенаправить результат на терминал на терминал 1.

Cas avatar
флаг in
Cas
Зачем тебе это? Неважно, в каком терминале вы выполняете команду. Вы получите тот же результат, так зачем вам это в двух терминалах? И зачем запускать команду из терминала 0 и выполнять ее в терминале 1, если можно было бы просто выполнить команду в терминале 0.
王柏翔 avatar
флаг ru
Потому что я хочу получить информацию о терминале 1, например pwd, history,...
Nate T avatar
флаг it
Существует только одна история для всех экземпляров bash, расположенная в `~/.bash-history`, и даже это обидно. Ему нравится выбирать, при каких командах он сохраняет
Nate T avatar
флаг it
Да, вам нужен tmux. Ваша проблема является причиной создания tmux. Сеансы появились первыми, до разделения и т. д., просто чтобы решить проблему нескольких пользователей, которым необходимо получить доступ к одной и той же среде оболочки в одно и то же время, но из разных мест.
Рейтинг:0
флаг it

Вы можете сделать это с помощью tmux. Когда вы начинаете сеанс в терминале A, в левом нижнем углу окна будет целое число, заключенное в фигурные скобки. Это идентификатор сеанса.

Если вы затем запустите терминал B, вы можете ввести команду

tmux прикрепить [id]

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

Однако, если вы сделаете только предыдущие шаги, вы потеряете терминал A. Здесь есть несколько удобных обходных путей. Во-первых, если вы обернете прикреплять команда, за которой следует && целевая команда в скобках, вы можете запустить их в подоболочке. Теоретически результат этих команд не должен влиять на окружение shellB. Тем не менее, когда результатом этой команды обычно является уничтожение shellB, я мог видеть, что она попала или промахнулась.

Другой вариант — запустить команду в отдельном процессе с & оператор так:

команда some-terminalB и tmux attach [id] && команда терминалаA

В этом методе у меня немного больше уверенности. Тем не менее, мы можем добиться большего:

некоторая команда терминала B & (tmux прикрепить [id] && команда терминала A)

При этом используются оба метода, поэтому прикреплять дважды удаляется из оболочки B.

王柏翔 avatar
флаг ru
Спасибо за ваше предложение. Я пытаюсь узнать о tmux, я думаю, что tmux может получать информацию между сеансами tmux. Однако я хочу получать информацию о терминале при каждом его запуске, а не только об этих терминалах с помощью команды tmux.
Nate T avatar
флаг it
Извините, именно поэтому мы всегда настаиваем на большем контексте в вопросе. Чем больше контекста вы добавляете (например, почему вы пытаетесь сделать x, какие-либо сопутствующие детали), тем меньше вероятность увидеть бесполезные ответы и тем больше вероятность того, что вы получите полезные «стандартные» ответы. которые смотрят на всю ситуацию под другим углом и решают проблему, не отвечая прямо на вопрос. Иногда нет прямого ответа, но всегда есть решение. :) Посмотрим, не смогу ли я придумать что-нибудь еще для вас.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.