#4sysadmins

Inicio » Comandos para la mensajería desde línea de comandos

Comandos para la mensajería desde línea de comandos

write : Comando que nos permite enviar mensajes a la consola de un determinado usuario, conectado al mismo sistema.

$write usuario < texto

$write usuario
Escribo aquí lo que
quiera que le llegue y luego cierro.
Control-D

mesg : Digamos que es el botón que ‘mutea‘ o activa los mensajes del comando write en una terminal (pts). Suponiendo que 2 usuarios conversan por terminal, el usuario A tiene abierta 2 terminales (pts2 y pts4) y quiere dejar de recibir mensajes por pts4:

$mesg n < /dev/pts/4
  • Si queremos volver a recibir mensajes por esa terminal utilizamos la opción: -y

talk : Conversación bidireccional mediante consola entre 2 usuarios conectados a la misma o diferente máquina.

$talk usuario [ttyn | pts/n]

$talk usuario@maquina

wall : Útil para enviar un mensaje a todos los usuarios conectados a un sistema Linux.

$wall < archivo_texto

$echo “Hola a todos” | wall

[Opciones]:

  • Si queremos quitar el banner del mensaje (solo root puede hacerlo): -n
  • Si queremos usar una cuenta a tras, por ejemplo para apagar el sistema: -t tiempo

echo : Muestra por pantalla o envía a un archivo aquello que se escribe/manda por la entrada estándar.

$echo -e “Esto se muestra por pantalla con salto de líneas\n”
$echo -n “Añado una línea a un archivo” >> archivo.txt

[Opciones]:

  • Permitir la interpretación de caracteres con barra invertida, por ejemplo, un salto de página, una tabulación o un salto de línea : -e
  • No inserta el carácter de nueva línea. Útil por ejemplo a la hora de codificar un texto desde consola: -n
$echo -n “contraseña” | openssl sha1

[Caracteres de escape]:

  • \n : representa un salto de línea
  • \\ : Representa una barra invertida
  • \r : Representa un retorno de carro
  • \t : Representa una tabulación horizontal

Otras cosas que podemos hacer con echo:

  • Listar el contenido de un directorio (siempre y cuando estemos dentro):
$echo /*
/bin /boot /cdrom /dev /etc /home /initrd.img /lib /lib64 /lost+found /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var /vmlinuz
  • Enviar un mensaje a una determinada terminal utilizando como salida, la entrada de esa terminal (pts). El comando w o who nos serán de ayuda. Suponiendo que es a pts2 a quien queremos enviar el mensaje:
$echo “Esto es un msg para pts2” > /dev/pts/2

Nota: El mensaje aparecerá en la línea de comandos de pts2, como si hubiese sido tecleado por él.


Deja un comentario, Gracias!