Os programas X sabem em qual sessão X eles deveriam conversar olhando a DISPLAYvariável de ambiente.
Primeiro, você precisará descobrir o que DISPLAYestá definido na sessão X em que deseja que seu programa seja executado. Faça isso emitindo o comando echo $DISPLAYdentro de um terminal X nessa sessão X. Normalmente, obter algo como :0.0é emitido.
Digamos que você queira iniciar o excelente programa xclockem sua sessão X onde DISPLAYestá :0.0, mas deseja fazer isso no console. Você pressiona Alt-Ctrl-F1 para alternar para esse console e, em seguida, digita:
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
Então você volta ao X pressionando Alt-Ctrl-F7 ou Alt-Ctrl-F8 (ou talvez alguma outra tecla F, dependendo do seu sabor do Linux) e assiste ao novo belo relógio de parede que você tem lá.
Na verdade, você poderia ter executado o comando acima em qualquer shell da mesma máquina (via SSH, em qualquer sessão X, em qualquer console etc.) - o fato de que você especificou DISPLAY=:0.0antes do comando significa que a xclockjanela sempre aparecerá a mesma sessão X.
De fato - além do fato de os programas X analisarem - não há nada de especial nessa DISPLAYvariável. Normalmente, quando você inicia programas a partir de um terminal X, eles começam no lugar certo, porque DISPLAYjá foi definido para você.
Em vez de usar o comando acima, você também pode dividi-lo em dois pela primeira configuração DISPLAYe depois executando xclock. Nesse caso, a DISPLAYconfiguração persistirá até você fechar esse shell e todos os programas X subseqüentes iniciados a partir daí serão abertos na mesma sessão X que xclock.
# variables set w/o a command are local to the shell,
export DISPLAY=:0.0 # unless exported
xclock