Herramientas curiosas en la línea de comandos

Loros, vacas, star wars y citas, algunos comandos curiosos en la terminal

Captura de pantalla de fortune y cowsay

Lo que más me ha costado de este artículo es el titular. En todos los artículos en inglés que he leído para ver detalles que me podía olvidar de estos comandos y para descubrir otros comandos la palabra más repetida era “funny”. Mi intención inicial era mostrar cómo desde la línea de comandos y con texto, con caracteres, se pueden hacer cosas que son útiles para nuestro día a día. Por ejemplo, uso mucho figlet para crear imágenes que acompañen a un artículo; o bien, cuando me dicen que la terminal es “árida”, enseño el telnet de Star Wars; o calendar, curl, cal, bc… Entonces empecé un listado y el resultado ha ido hacia lo gráfico y no tanto hacia la utilidad. Por tanto el título ha recogido esa acepción de “funny” que es curioso y si encuentro alguna más que encaje aquí lo iré añadiendo y probablemente haya otro artículo con algunas de las mencionadas que no aparecen (calendar, cal, bc o curl).

De momento han salido figlet, cowsay, neofetch, toilet, sl, telnet, nmap, party parrot, fortune, cmatrix, emacs butterfly, rickroll y rev.

figlet

¿Quieres hacer titulares con letras chulas en ASCII? Aquí tienes la respuesta, figlet. Tienes dos configuraciones que lo hacen tremendamente simple y poderoso: alineación y tipo de fuente. Para la alineación:

-c
centrado
-l
alineado a la izquierda.
-r
alineado a la derecha

Para la fuente, la opción -f.

-w
ancho (widthoutput) en caracteres.

Por ejemplo:

figlet -c -w 100 -f block INFOTICS IN DA HOUSE
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14

	 _|_|_|  _|      _|  _|_|_|_|    _|_|    _|_|_|_|_|  _|_|_|    _|_|_|    _|_|_|
	   _|    _|_|    _|  _|        _|    _|      _|        _|    _|        _|
	   _|    _|  _|  _|  _|_|_|    _|    _|      _|        _|    _|          _|_|
	   _|    _|    _|_|  _|        _|    _|      _|        _|    _|              _|
	 _|_|_|  _|      _|  _|          _|_|        _|      _|_|_|    _|_|_|  _|_|_|



_|_|_|  _|      _|      _|_|_|      _|_|        _|    _|    _|_|    _|    _|    _|_|_|  _|_|_|_|
  _|    _|_|    _|      _|    _|  _|    _|      _|    _|  _|    _|  _|    _|  _|        _|
  _|    _|  _|  _|      _|    _|  _|_|_|_|      _|_|_|_|  _|    _|  _|    _|    _|_|    _|_|_|
  _|    _|    _|_|      _|    _|  _|    _|      _|    _|  _|    _|  _|    _|        _|  _|
_|_|_|  _|      _|      _|_|_|    _|    _|      _|    _|    _|_|      _|_|    _|_|_|    _|_|_|_|

Al ser un comando de bash se puede incluir en su API:

1
echo "Hola, mundo!" | figlet
1
2
3
4
5
6
 _   _       _                                     _       _
| | | | ___ | | __ _     _ __ ___  _   _ _ __   __| | ___ | |
| |_| |/ _ \| |/ _` |   | '_ ` _ \| | | | '_ \ / _` |/ _ \| |
|  _  | (_) | | (_| |_  | | | | | | |_| | | | | (_| | (_) |_|
|_| |_|\___/|_|\__,_( ) |_| |_| |_|\__,_|_| |_|\__,_|\___/(_)
		    |/

cowsay

Lo que dice la vaca está bien dicho:

cowsay "Leyendo infotics.es aprendo mucho"
1
2
3
4
5
6
7
8
 ___________________________________
< Leyendo infotics.es aprendo mucho >
 -----------------------------------
	\   ^__^
	 \  (oo)\_______
	    (__)\       )\/\
		||----w |
		||     ||

También en la API de bash:

1
echo "Conocer bash cambió mi vida (a peor :-D)" | cowsay
1
2
3
4
5
6
7
8
9
 _____________________________________
/ Conocer bash cambió mi vida (a peor \
\ :-D)                                /
 -------------------------------------
	\   ^__^
	 \  (oo)\_______
	    (__)\       )\/\
		||----w |
		||     ||

neofetch

neofetch da información del sistema en una bonita imagen ASCII.

neofetch

toilet

Parecido a figlet, habrá que explorar las fuentes que venían con el paquete toilet-fonts.

1
toilet  -w 130 In BASH I trust
1
2
3
4
5
6

mmmmm                mmmmm    mm    mmmm  m    m        mmmmm           m                           m
  #    m mm          #    #   ##   #"   " #    #          #           mm#mm   m mm  m   m   mmm   mm#mm
  #    #"  #         #mmmm"  #  #  "#mmm  #mmmm#          #             #     #"  " #   #  #   "    #
  #    #   #         #    #  #mm#      "# #    #          #             #     #     #   #   """m    #
mm#mm  #   #         #mmmm" #    # "mmm#" #    #        mm#mm           "mm   #     "mm"#  "mmm"    "mm

sl

Uno de los comandos que antes aprendes de bash es ls que sirve para listar los contenidos de un directorio. Sobre todo al principio o cuando vas con prisa puedes equivocarte y teclear sl, y entonces se produce una pequeña sonrisa cuando una locomotora a vapor atraviesa la terminal.

sl
Captura de pantalla de sl
Figure 1: Captura de pantalla de sl

Star Wars

¿Quién no ha visto todavía Star Wars en ASCII? Solo tienes que preparar las palomitas, conectarte por telnet a towel.blinkenlights.nl y disfrutar.

Captura de pantalla de Star Wars
Figure 2: Captura de pantalla de Star Wars

nmap

La popular “herramienta de exploración de redes y de sondeo de seguridad / puertos” nmap tiene una opción para mostrar los resultados denominada s|<rIpt kIddi3 que muestra los caracteres como si unx de ellxs lo hubiera escrito:

1
nmap -oS - scanme.nmap.org
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Start|ng NMap 7.80 ( https://NmaP.org ) at 2020-04-14 00:14 C3St
NMap $can rep0rt f0r sCAnM3.Nmap.org (45.33.32.156)
H0$t is UP (0.17z lat3ncy).
other addre$$3S fOr ScanmE.nmap.0rG (noT scAnN3d): 2600:3c01::f03c:91ff:f318:bb2f
NOt $h0wn: 996 cl0$ED p0rtS
P0RT      ST4TE seRV1C3
22/tcp    0PEn  $$h
80/Tcp    0pen  httP
9929/tCp  open  nPIng-Echo
31337/tcp Op3n  3l1t3

Nmap DONe: 1 1P addr3$z (1 h0$t up) scanned 1n 42.49 sEC0nDz

Party parrot

El party parrot o loro de fiesta que aparece en emoticonos, gifs y sitios varios también tiene su versión en la terminal:

Podemos instalarnos terminal parrot o bien, gracias a parrot live, llamarlo con curl:

1
curl parrot.live

Incluso hay un loro al estilo de la vaca, lo que dice el loro en parrot say, que está en librería nodejs. El ejemplo que pone me recuerda a fortune.

fortune

fortune es un comando bash que recopila citas, dichos, refranes, frases célebres y las ofrece de forma aleatoria. Se suele combinar con cowsay para darle un aspecto más gráfico:

1
fortune | cowsay
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 _______________________________________
/ El pobre puede morir, lo que no puede \
| es estar enfermo.                     |
|                                       |
\ -- Proverbio finlandés.               /
 ---------------------------------------
	\   ^__^
	 \  (oo)\_______
	    (__)\       )\/\
		||----w |
		||     ||

cmatrix

Con cmatrix se imita el efecto de la película Matrix cuando se “ve” el código de Matrix.

Emacs: butterfly

Comando en Emacs para hacer esto:

real programmers use butterflies, by xkcd
Figure 3: real programmers use butterflies, by xkcd
1
M-x butterfly

Rickroll terminal

Quien no conozca a Rick Astley, ¡este es su momento! rickrollrc es un script en bash que pone el vídeo (con música) de “Never Gonna Give You Up” con colores ANSI 256 y codificación UTF-8. Impresionante.

1
curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash

Para que no se lo huelan, mejor el enlace corto:

1
curl -s -L http://bit.ly/10hA8iC | bash
Captura de pantalla de rickrollrc
Figure 4: Captura de pantalla de rickrollrc

rev

El comando rev invierte las líneas de un fichero si se ofrece un fichero o los caracteres si viene una cadena.

echo "¡Hola, mundo!" | rev
1
!odnum ,aloH¡

Por explorar:

Parrot

Imagen y vídeo

rig

Este comando genera identidades aleatorias.

Derivados de cow

Adolfo Antón Bravo
Adolfo Antón Bravo
Coordinador del Máster de Periodismo y Visualización de Datos de la Universidad de Alcalá

Periodismo y visualización de datos, web semántica, bash, emacs, orgmode

Relacionado