HOWTO comunicarse entre terminales Linux

A veces es interesante el hecho de poder comunicarte con los usuarios logeados en una máquina. En el mundo Unix existen varios modos de poder hacer esto:

Método 1

Primero, tenemos que averiguar qué usuarios hay conectados en el sistema. Para ello podemos utilizar el comando who.

[00:27:51] yvoictra@goloso:~$ who
yvoictra pts/0        2008-12-31 00:17 (154.pool85-53-191.dynamic.orange.es)
yvoictra pts/1        2008-12-31 00:20 (154.pool85-53-191.dynamic.orange.es)
yvoictra pts/2        2008-12-31 00:20 (154.pool85-53-191.dynamic.orange.es)
yvoictra pts/3        2008-12-31 00:27 (154.pool85-53-191.dynamic.orange.es)

Una vez que hemos localizada la terminal a la que queremos enviar un mensaje, ejecutamos el siguiente comando:

echo "Hola!! Esto es una prueba xD" >> /dev/pts/1

de este modo, la terminal definida por /dev/pts/1 habrá recibido el mensaje en cuestión.

Método 2

Consiste en utilizar el comando write. Con el comando who podemos ver qué usuarios están conectados, y enviar un mensaje.

Por ejemplo:

echo "Hola!! Esto es una prueba xD" | write yvoictra

ó

write yvoictra
Hola
Control+C

Así, el usuario yvoictra habrá recibido el mensaje correspondiente.

Método 3

Envío Masivo de mensajes. Esta vez utilizaremos el comando wall. Con él, conseguiremos enviar a todas las sesiones abiertas un mensaje (Broadcast).

Ejemplo:

echo "Hola!! Esto es una prueba xD" | wall

También podemos combinar estos comandos para conseguir enviar palabras en ASCII:

figlet "Prueba" | wall

Que generaría la siguiente salida en todas las terminales:

Broadcast message from yvoictra (Wed Dec 31 00:44:20 2008):
 _ __  _ __ _   _  ___| |__   __ _ 
| '_ \| '__| | | |/ _ \ '_ \ / _` |
| |_) | |  | |_| |  __/ |_) | (_| |
| .__/|_|   \__,_|\___|_.__/ \__,_|
|_|                                

También podéis probar el siguiente comando:

banner "Prueba" | wall

Y para los que se arriesgan, pueden probar este comando divertido:

yes | write yvoictra

You may also like

3 comments

Leave a comment