Como executo um comando em um tty diferente? [duplicado]

3

Suponha que haja dois terminais, pts/0 e pts/1 .

Em pts/0 , ativei um comando:

ls>/dev/pts/1

Em seguida, só obtemos a saída do comando ls em pts/1 , mas quero executar um comando e sua saída em pts/1 .

Eu tentei "echo ls">/dev/pts/1 , mas a saída do comando ls , "ls", está impressa em pts/1 .

Como posso fazer isso?

    
por Tiger 07.02.2016 / 07:55

3 respostas

2

Copie e cole este código em ttyecho.c

Compile usando gcc -O3 -o ttyecho ttyecho.c

Use ./ttyecho -n /dev/pts/1 ls

    
por 07.02.2016 / 08:06
1

Depende do seu ambiente de terminal:

  • No Linux com o console: openvt _command_
  • Dentro de um terminal na tela: screen _command_
  • No X Windows (Mac também): xterm -e "_command_"
por 07.02.2016 / 08:39
1

Não está claro para mim por que você quer fazer isso; dependendo do motivo exato, o pacote clusterssh pode fazer o que você quiser.

A ideia de clusterssh é que você inicie vários comandos ssh para várias máquinas (ou possivelmente a mesma máquina várias vezes). Você então obtém uma janela de terminal para cada sessão ssh, além de uma janela de entrada de clusterssh. Se você digitar algo em uma das janelas do terminal, ele será enviado apenas para a sessão ssh; se você digitá-lo na janela de entrada principal, ele será enviado para todas sessões.

Se não é isso que você precisa, pode ser útil se você puder explicar por que deseja fazer isso.

    
por 07.02.2016 / 08:47