Más de 11 años en Internet
->No hagas click en esta frase.

28 julio, 2009

Usando la terminal como chat

Existe un comando Unix para mandar mensajes de texto entre terminales: wall. Su uso está muy poco extendido (la gente normal nunca usa ssh), pero si queréis echar unas risas en Linux y que tus familiares te tomen por hacker... te interesará mucho usarlo.

Lo primero es revisar si nuestras terminales pueden recibir texto:
user@machine~$ mesg
Si la respuesta es "y" todo está perfecto. No obstante si la respuesta es una "n", nuestra shell no puede recibir mensajes, por lo que si usas la orden wall lo más seguro es que nadie te lea. En ese caso realizaremos la orden who para ver quién está conectado y seguidamente daremos permisos "de escritura" a las shells que veamos abiertas:
//Vemos quién está conectado en nuestro ordenador
user@machine~$ who
user pts/0 2009-07-28 18:07 (192.168.1.56)
user pts/1 2009-07-28 18:12

//Activamos la recepción de mensajes en ambas sesiones
user@machine~$ mesg y < /dev/pts/0
user@machine~$ mesg y < /dev/pts/1
Si el mesg falla con la sesión de tu amigo, puede ser por que tu usuario no tiene permisos para escribir en el dispositivo /dev/pts/ correspondiente. Si tienes permisos de escritura para su directorio, añade el comando "mesg y" al final del .bashrc de su carpeta home, así la próximas veces que él inicie sesión se activará la lectura de mensajes por defecto. Si has escrito en el .bashrc y necesitas forzar que se reconecte para aplicar los cambios... mata su shell:
//localizamos el PID del proceso de su shell
user@machine~$ ps -ef | grep bash
user 25765 25763 0 18:07 pts/0 00:00:00 -bash
user 25827 25763 0 18:12 pts/1 00:00:00 -bash
user 25853 25827 0 18:37 pts/1 00:00:00 grep bash

user@machine~$ kill -9 25765
//El -9 como primer parámetro es muy importante:
// envía una señal de exit que no puede ser bloqueado por el sistema
//No obstante, si quieres cerrar un gran número de shells:
//$ pkill bash
//Donde pkill mata todos los procesos con literal bash de nombre.
//pkill bash también matará tu shell
Wall se ha ideado para trabajar con ficheros de texto, pero utlizando tuberias podemos hacer una trampa para teclear de forma simple y rápida sin ensuciar nuestro disco duro con chorradas:
user@machine~$ echo "Oye tu! sal de mi PC!!" | wall
Mensaje de difusión general (broadcast) de user@machine
(/dev/pts/1) at 18:19 ...
Oye tu! sal de mi PC!!

Mensaje de difusión general (broadcast) de user@machine
(/dev/pts/0) at 18:23 ...
No me seas cabrón :P

No hay comentarios:

Publicar un comentario