Los comandos write, wall y talk permiten mandar mensajes entre usuarios con sesion activa dentro de un sistema, cada uno tiene una funcionalidad específica que pasamos a detallar a continuación.
Write
El comando write permite mandar un mensaje a otro usuario del sistema especificando como parámetros el usuario al que enviar el mensaje y la TTY asociada:
$ write usuario tty
Para finalizar la escritura del mensaje y enviarlo presionamos CTRL + D. La TTY se especificará cuando el usuario al que enviemos el mensaje tenga más de una sesión abierta. En el caso de que no la especificáramos, se enviaría automáticamente a la tty del usuario con actividad más reciente:
# write foo write: foo is logged in more than once; writing to pts/2 Esto es una prueba ^D
Y en la terminal del usuario foo:
Message from roo@test on pts/3 at 19:34 ... Esto es una prueba EOF
Wall
El comando wall (write all) es similar a write con la diferencia de que en este caso el mensaje que mandamos es recibido por todos los usuarios con sesión activa en el sistema y a través de todas las TTYs (broadcast):
$ wall Esto es una prueba ^D
Y en todas las TTYs:
Broadcast Message from foo@test (/dev/pts/2) at 19:41 ... Esto es una prueba
Talk
Al contrario que mesg, write y wall, el comando talk no suele estar instalado por defecto así que deberemos instalarlo con el gestor de paquetes correspondiente, por ejemplo apt:
# apt-get install talk talkd
A diferencia de write y wall, talk permite establecer comunicación con otro usuario a través de la terminal como si fuera un chat. Además, permite establecer sesiones tanto con usuarios del mismo sistema como de equipos remotos (usuario@máquina). También permite utilizar el nombre de usuario o la TTY.
$ talk foo
$ talk foo pts/1
Al igual que con wall y write, es necesario tener el mesg activado.
Evitar que otros usuarios tengan control para escribir en nuestra terminal
Para ello se utiliza el comando mesg (y=permitido, n=denegado) a nivel de usuario:
$ mesg is y $ mesg n $ mesg is n $ mesg y $ mesg is y
Con esto ya sabéis como avisar al resto de usuarios antes de reiniciar un servicio o máquina ;)