Как можно отразить стандартный вывод одного терминала на другом?

Как можно отразить стандартный вывод одного терминала на другом?

Я не уверен, правильно ли я формулирую вопрос, но предположим, что у меня открыто два виртуальных терминала, и если я наберу текст lsв одном из них, то получу содержимое каталога вобаиз них (второй не обязательно должен быть доступным для записи, он должен только отображать stdout первого). Как бы мне этого добиться?

решение1

Как уже упоминал geekosaur, screenон сделает то, что вам нужно (и даже больше).

Сначала для удобства создайте именованный сеанс экрана в своем первом терминале:

$ screen -S foo

Во-вторых, подключитесь к сеансу экрана во втором терминале:

$ screen -x foo

решение2

scriptДля этого можно использовать .

Например, если вы хотите скопировать все ваши выходные данные, /dev/tty1вы должны выполнить:

script -f /dev/tty1

С этого момента все, что вы вводите, и весь вывод команд будут дублироваться в /dev/tty1.
scriptзапускает другую оболочку, поэтому, когда вы закончите, вы можете просто ввести exitдля завершения script.

Это -fделается для того, чтобы сделать его в реальном времени. В противном случае /dev/tty1вывод будет виден только тогда, когда отображается полная строка (когда символ новой строки записывается в tty).

решение3

Зависит от того, что именно вы ищете. Простое решение script(1): GNU screenв режиме multiattach — более затейливое решение.

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