# [console]transferer sortie console

## thejack

Bonjour, 

Cela fait deja un petit moment que je me pose la question, j'ai essayé de trouver une reponse mais jusqu'a maintenant sans succes. Est-il possible de rediriger la sortie standard d'un programme entre console ouverte par un même utilisateur avec un même shell ?

Imaginons que la même personne soit loggué sur tty0 et sur pts0 (ssh), si on lance un programme sur la console ssh est-il possible via une commande de rediriger la sortie du processus sur tty0 ?

Si ce n'est pas possible, j'aimerais bien comprendre pourquoi ... enfin a moins que je me fourvoie completement  :Very Happy: 

Merci d'avance.

----------

## Tanki

en utilisant screen ?

http://en.gentoo-wiki.com/wiki/Screen

----------

## thejack

Si j'ai bien compri il faut l'exécuter avant cette commande ? N'y a t'il pas un moyen de le faire pour une commande déjà en cours  ?

----------

## RaX

Salut,

Par exemple:

```
# who

david    tty1         2009-03-25 02:23

david    pts/0        2009-03-25 02:23 (192.168.0.2)
```

Si depuis le pts/0 je fait un:

```
 $ echo "Salut" > /dev/tty1

```

Alors la sortie standard est redirigé vers le tty1 on peu aussi faire l'inverse:

```
$ echo "Salut toi" > /dev/pts/0
```

Voila voila.

Bonne nuit.

----------

## loopx

Intéressant tout ca, mais à quoi cela pourrait-il bien servir ?

Question : comment savoir à quelle device notre console est attachée (que ce soit en local ou en remote?) ???

Lol, c'est fun, avec "pts/0", c'est KDE4 qui chope le message et qui l'affiche très proprement  :Smile:     Avec tty1, c'est la console ou j'ai lancé le startx .. et les pts/1 et 2, ce sont des consoles ouverte avec Konsole sur kde  :Wink: .

En fait, cette bête technique est rudement plus efficace que "write", non ?

EDIT: ah que c'est même mieux que "wall"  :Very Happy:   car ici, KDE4 affiche le message, pas avec "write" et "wall" ... alors que ce dernier est un broadcast quand meme ...

EDIT2:   :Laughing: 

```
loop ~ # ssh loopx@loop-nb echo "On mange quoi ???" > /dev/pts/0

loopx@loop-nb's password:
```

sur le pc distant, il ne se passe rien, sur mon pc ou j'ai lancé la commande, KDE m'affiche ceci :

"On mange quoi Air kkk mac"

J'avoue ne pas comprendre la fin de la phrase  :Very Happy: 

----------

## geekounet

 *loopx wrote:*   

> Question : comment savoir à quelle device notre console est attachée (que ce soit en local ou en remote?) ???

 

Avec tty, et ya aussi w pour tous les lister.

 *loopx wrote:*   

> En fait, cette bête technique est rudement plus efficace que "write", non ?

 

write fait exactement la même chose, et tu peux lui préciser le tty precis  :Wink: 

 *loopx wrote:*   

> 
> 
> ```
> loop ~ # ssh loopx@loop-nb echo "On mange quoi ???" > /dev/pts/0
> 
> ...

 

Normal, t'as faitl la redirection en local, pas distant (pour celà il faudrait que tu escape le >)

----------

## loopx

Oui, j'ai bien compris pour la syntaxe, mais ce que je trouve comique, c'est le "Air kkk mac" que je n'ai jamais entré moi même  :Very Happy: 

----------

## scherz0

 *loopx wrote:*   

> Oui, j'ai bien compris pour la syntaxe, mais ce que je trouve comique, c'est le "Air kkk mac" que je n'ai jamais entré moi même 

 

Ce sont les 3 fichiers et/ou répertoires de ton $HOME dont le nom a 3 caractères...

----------

## scherz0

 *thejack wrote:*   

> Si j'ai bien compri il faut l'exécuter avant cette commande ? N'y a t'il pas un moyen de le faire pour une commande déjà en cours  ?

 

Je ne sais pas si il existe un outil pour le faire simplement.  Sinon il doit être possible de modifier les descripteurs de fichiers en se connectant au processus par gdb.  Pour les détails, cf google gdb+dup2

----------

## loopx

 *scherz0 wrote:*   

>  *loopx wrote:*   Oui, j'ai bien compris pour la syntaxe, mais ce que je trouve comique, c'est le "Air kkk mac" que je n'ai jamais entré moi même  
> 
> Ce sont les 3 fichiers et/ou répertoires de ton $HOME dont le nom a 3 caractères...

 

ahhhhhh ok  :Smile: 

suis con ... merci pour l'info  :Very Happy:   j'étais loin d'y penser :p

----------

## thejack

merci scherz0 pour la piste je vais la suivre  :Very Happy: 

Pour le > /dev/tty1 oui ça marche je le sais ... mais faut faire ça des le lancement du processus ...

----------

## scherz0

 *thejack wrote:*   

> merci scherz0 pour la piste je vais la suivre 

 

Précision : ça tient un peu du bricolage et ça ne fonctionne que dans certain cas.  Ça pourrait éventuellement bloquer ou entrainer la fin du processus en question, donc à tester avant de l'utiliser pour faire des choses sérieuses.

Dans tous les cas, quand on peut anticiper ce genre de besoin : utiliser screen, comme déja suggéré par Tanki. screen est très précieux pour beaucoup de situations, notamment l'administration de systèmes distants.

----------

