Você pode enviar fugas de cor / cursor para um terminal simplesmente escrevendo para /dev/pts/N
ou /dev/ttyN
; Por exemplo, se /dev/pts/5
for um xterm, você poderá definir o plano de fundo para vermelho em qualquer lugar com printf %b '\e]11;#ff0000\a' > /dev/pts/5
(claro, você precisa escrever permissões para /dev/pts/5
).
Existe uma pequena chance de que a execução de tal comando possa interrugar mal com outros escapes enviados pelo (s) programa (s) em execução no terminal, mas no pior dos casos isso apenas resultará em um terminal embaralhado.
Para o problema mais geral de executar um programa em outro terminal / sessão, a única maneira que posso pensar que é possível é seqüestrar um processo em execução nesse terminal e bifurcar + exec o programa de dentro dele. Exemplo:
gdb -p PID -batch -ex 'p system("ls")'
Isso fica muito mais envolvido se o programa tiver que ser lido no terminal; antes do exec, o processo terá que ser adicionado ao grupo de processos em primeiro plano. E, claro, o processo seqüestrado pode não gostar de ter filhos inesperados;)