Niveau :
Résumé : write ; mesg ; wall ; talk
Une petite explication sur une commande du passé. A l'époque où la messagerie instantanée n'était pas encore née, où l'irc n'était qu'une vague idée, beaucoup de gens utilisaient déjà des unix. Généralement sur de gros système d'université où on trouvaient de très nombreux comptes et donc beaucoup de personnes connectées simultanément.
Write
On a alors trouvé une grande utilité à un petit utilitaire nommé write. Le concept est très simple, il permet d'écrire un message à une autre personne personne connectée à la même machine.
$ write peck Coucou peck ! <ctrl-d>
Le système de communication est très basique, le message est directement écrit sur le terminal de la personne connectée. Comme cela peut devenir très gênant de se retrouver avec un message en plein millieu de son écran, il est possible d'interdire à un autre utilisateur de vous écrire :
# y pour réactiver $ mesg n
Bien sur la personne peut être connectée sur plusieurs terminaux. Il est alors possible de choisir un terminal en particulier, la commande who peut vous aider à savoir qui est connecté à quel terminal :
$ who $ write peck pts/3
La messagerie instantanée et l'irc, et la raréfaction de la ligne de commande on rendu cette communication un peu rare, voire inutile. Mais il reste une version de cette commande encore régulièrement utilisée. Wall permet d'écrire à tous les utilisateurs en même temps. Mieux, et tout comme pour write, vous pouvez même écrire aux utilisateurs qui ont désactivé la fonctionnalité si vous êtes root. Ceci sert principalement à avertir les utilisateur d'un évènement imminent sur le système :
$ wall Attention chérie ça va couper ! <ctrl-d>
C'est même intégré à la commande shutdown.
Talk
Basé sur ce principe, et sur le fait que les utilisateurs pouvaient être sur des machines différentes, le système de conversation talk a été développé. Il nécessite cette fois un démon (talkd) qui se lance à travers inetd. Une fois installé, votre configuration inetd doit contenir ceci :
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd
Je vous laisse deviner l'équivalent xinetd.
Une fois le démon lancé, il est possible de s'y connecter à distance avec le client talk pour parler avec un utilisateur local.
# talkd doit être en écoute sur localhost $ talk peck@localhost
A ce moment l'utilisateur distant reçoit un message lui expliquant la commande à taper (quasiment la même) pour établir la conversation avec l'utilisateur qui le demande. On se retrouve alors avec un écran découpé en 2, chaque utilisateur ayant la moitié de l'écran pour son propre texte.
Histoire
On peut dire que ces outils appartiennent maintenant à l'histoire, mais il se peut que vous ayez encore occasionnellement besoin de write ou de wall pour un message urgent à une personne que vous savez être connecté à une machine à laquelle vous avez accès.
Comments