Vous cherchez à envoyer un message instantané à tous les utilisateurs connectés à votre système ? La commande `wall` sous Linux est un outil puissant qui surpasse l’email en termes d’immédiateté et cible directement les utilisateurs actifs. Elle diffuse un message à toute personne utilisant un terminal sur un système donné.
La fonction de la commande wall
Si vous avez besoin de transmettre une information urgente aux utilisateurs connectés de votre ordinateur, comment faire ? L’email n’est pas la solution idéale car on ne sait jamais quand le destinataire lira le message. Si l’information doit être connue immédiatement, l’email est insuffisant. De plus, vous ne voulez pas encombrer les boîtes de réception des utilisateurs déconnectés qui n’ont pas besoin de ce message.
Sans efforts supplémentaires et perte de temps, il est difficile de savoir qui est connecté et d’où. Votre serveur peut être à Paris, mais des utilisateurs distants peuvent être connectés de Lyon. Comment alors cibler un message spécifiquement vers les utilisateurs actifs ?
Linux et d’autres systèmes d’exploitation de type Unix offrent une solution simple. La commande `wall` est un peu comme un télégramme instantané : elle délivre un message à tous les utilisateurs de terminaux en le faisant apparaître directement devant eux. Il est impossible pour eux de le manquer, et vous êtes assuré de sa réception. Vous n’avez pas besoin qu’ils ouvrent une application spécifique pour vérifier la présence d’un nouveau message.
La délivrance du message est aussi discrète qu’une tarte à la crème lancée en plein visage.
Comment envoyer un message ?
Pour illustrer, nous avons utilisé une machine de test sous Fedora Linux, mais la commande `wall` fonctionne de manière identique sur toutes les distributions. La seule variation possible est que certaines distributions exigent l’utilisation de `sudo` pour envoyer un message depuis un fichier texte, tandis que d’autres demandent `sudo` pour toute utilisation de `wall`. Il s’agit d’une différence de configuration des distributions, et non de la commande elle-même.
Pour envoyer un message à tous les utilisateurs, tapez `wall`, un espace, puis le message. Sous Fedora Linux, l’utilisation de `sudo` est nécessaire :
sudo wall Maintenance du réseau prévue ce soir à 20h.
Votre message sera diffusé à tous les utilisateurs ayant une fenêtre de terminal ouverte.
Les utilisateurs locaux, Marc et Sophie, reçoivent instantanément le message, tout comme l’utilisateur distant, Paul, qui travaille depuis un ordinateur sous Ubuntu.
Ils reçoivent tous le message simultanément, sans qu’il y ait de doutes sur sa réception.
Envoyer un message depuis un fichier texte
Vous pouvez aussi préparer votre message à l’avance dans un fichier texte. Ceci est particulièrement utile pour les messages récurrents. Vous pouvez ainsi créer une bibliothèque de messages pré-écrits pour ne pas avoir à les retaper à chaque fois.
Le message contenu dans le fichier `message.txt` a été affiché via la commande `cat` pour s’assurer qu’il s’agit bien du message souhaité.
Le message est ensuite diffusé en passant le nom du fichier à la commande `wall` :
cat message.txt
sudo wall message.txt
Comme précédemment, les utilisateurs locaux Marc et Sophie, et tous les autres utilisateurs connectés avec un terminal ouvert, ainsi que l’utilisateur distant Paul reçoivent le message.
L’importance de l’étiquette lors de l’utilisation de `wall`
Comme la commande `wall` envoie un message à tous les utilisateurs de terminal, sans distinction, cela peut être une expérience surprenante pour le destinataire. L’utilisation de la commande `wall` doit être limitée aux situations d’urgence. Autrement, cela peut devenir très désagréable pour les utilisateurs.
Un message `wall` s’affiche par dessus tout ce qui se trouve dans le terminal de l’utilisateur. Il ne l’efface pas, mais il le masque temporairement. Cela peut être déroutant pour un utilisateur qui ne s’y attend pas.
Imaginez qu’un de vos utilisateurs soit en train de modifier un fichier important dans l’éditeur `vi` au moment où le message `wall` est diffusé.
Le message apparaît en plein milieu du fichier.
L’utilisateur peut facilement retrouver l’affichage correct du fichier en faisant défiler le texte de haut en bas.
Il est aisé de restaurer l’affichage et de reprendre le travail, mais trop d’interruptions de ce type risquent d’agacer les utilisateurs. L’utilisation de `wall`, bien que pratique, doit donc être modérée.
Qu’en est-il des utilisateurs d’environnements graphiques ?
La commande `wall` atteint toutes les personnes connectées avec un terminal ouvert. Par contre, elle n’atteindra pas ceux qui utilisent un environnement graphique sans fenêtre de terminal active. Si un utilisateur sous environnement graphique a une fenêtre de terminal ouverte, il verra le message, mais ce sera tout. Il ne faut donc pas compter sur `wall` pour diffuser un message aux utilisateurs n’ayant pas un terminal ouvert.
L’affichage du message n’est pas subtile, mais il est indéniable qu’il atteint son but, du moins, dans un environnement de terminal traditionnel.