Como você pode espelhar o stdout de um terminal para outro?

Como você pode espelhar o stdout de um terminal para outro?

Não tenho certeza se estou formulando a pergunta corretamente, mas digamos que tenho dois terminais virtuais abertos e, se eu digitar lsum deles, obterei o conteúdo do diretório emambosdeles (o segundo não precisa ser gravável, só precisa exibir o stdout do primeiro). Como eu faria para conseguir isso?

Responder1

Como o geekosaur mencionou, screenfará o que você precisa (e muito, muito mais).

Primeiro, crie uma sessão de tela nomeada por conveniência em seu primeiro terminal:

$ screen -S foo

Segundo, anexe à sessão de tela em seu segundo terminal:

$ screen -x foo

Responder2

Você pode usar scriptpara fazer isso.

Por exemplo, se você quiser copiar toda a sua saída, /dev/tty1você executaria

script -f /dev/tty1

A partir de então, qualquer coisa que você digitar, e toda a saída do comando será duplicada em /dev/tty1.
scriptinicia outro shell, então quando terminar, você pode simplesmente digitar exitend script.

O -fobjetivo é torná-lo em tempo real. Caso contrário, /dev/tty1só verá a saída quando uma linha completa for exibida (quando um caractere de nova linha for gravado no tty).

Responder3

Depende exatamente do que você está procurando. Uma solução fácil é script(1); GNU screenno modo multiattach é uma solução mais sofisticada.

informação relacionada