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