Emojis en la Shell de Linux 🐧

Trucos y Utilidades 5 de ene. de 2023

La shell de Linux, soporta perfectamente la inclusión de cualquier caracter en formato Unicode, entre ellos por supuesto se encuentran los conocidos emojis.

Los emojis, son una evolución de los emoticonos que se usaban antiguamente, ya sabeis, esos que se formaban unicamente con caracteres ascii y ahora se usan en la mensajería instantánea...

:-)       :-D       :-o     => emoticonos
 😀        😁         😮     => emojis

Lo complicado no es usarlos, sino como generar estos emojis para incluirlos en el prompt de nuestro usuario, en la shell, y como no en algunos scripts bash para mostrar de una forma más facilmente identificable como se ejecutan los procesos.

Ejemplo de ejecución de un script en bash con emojis:

Emojis en la shell

Podemos descargarnos el proyecto de cmstricland de su github, es una pequeña aplicación desarrollada en go, que nos va a permitir de una manera muy sencilla listar y usar los emojis en la shell de Linux.

# Instalamos el compilador de go
sudo apt-get -y install golang-go

# Descargamos el git de 'emo' (emojis)
git clone https://github.com/cmstrickland/emo.git

Nos cambiamos al nuevo directorio creado y compilamos:

cd emo
go build

Ya tenemos el programa compilado y con permisos de ejecución, listo para usarlo.


Obtener ayuda del programa emo

./emo --help
Usage of ./emo:
	-O	Print octal escapes suitable for $PS1
	-U	Print code point
	-e	work like echo, but interpolate \e as escapes for emoji
	-list
    	List all known emoji
	-n	Supress newline
	-o	Print octal escapes suitable for echo -e
	-x	Print hex escapes suitable for echo -e

Obtener todos los emojis disponibles

./emo --list
🚡 - aerial-tramway
👾 - alien-monster
🚑 - ambulance
🏈 - american-football
💢 - anger-symbol
😠 - angry-face
😧 - anguished-face
🐜 - ant
📶 - antenna-with-bars
... etc ...
# Localizar un icono por nombre
./emo --list|grep -i penguin
🐧 - penguin

# Imprimir el emoji -indicando el nombre-
./emo penguin
🐧

Códigos y Uso de los emojis

Podemos usar directamente el emoji del pinguino (🐧 - penguin) que hemos encontrado antes para cortarlo y pegarlo directamente en un script.
En algunos lenguajes necesitaremos usar su código octal, o hexadecimal para usarlo, para ello el programa emo genera el código del emoji desado.

# Octal para uso en el prompt de usuario ($PS1)
./emo -O penguin 
\360\237\220\247

# Promp actual:
luisgulo@Debian·SysAdmin:~/emo$ 
# Cambiamos prompt:
export PS1="\360\237\220\247 (luisgulo):\w\$ "
# Nuevo prompt ($PS1)
🐧 (luisgulo):~/emo$ 
OCTAL para $PS1
# Unicode 
./emo -U penguin 
U+1F427
Emoji del pinguino en formato Unicode
# Octal para usar con echo/print
./emo -o penguin
\0360\0237\0220\0247

# Hexadecimal para usar con echo/print
emo -x penguin
\xf0\x9f\x90\xa7
Octal y Hexadecimal para uso con echo/print

Tambien puedes incluirlo en un script bash como valor de una variable para mostrarlo cuando lo necesites, por ejemplo si el usuario pulsa CTRL+C para detener el script:

#!/bin/bash
# Calavera(skull) sin salto de linea
HORROR=$(emo -n skull)
# Captura de CTRL+C de teclado
trap 'echo -ne "\n\n$HORROR Abortado por el usuario\n"; exit' SIGINT
...
...
calavera y mensaje de error si se interrumpe el programa

Instalación definitiva en nuestro sistema

Si te resulta interesante y no deseas usarlo indicando siempre la ruta en donde compilaste el binario, puedes "instalarlo" para que esté en la ruta de ejecución y puedas usarlo directamente:

sudo cp emo /usr/local/bin/

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux