Chuck Norris te dice que hackees en #Linux desde la línea de comandos

¿Le vas a llevar la contraria a Chuck Norris? Yo desde luego que no, así que pongámonos a ello.

En este artículo hackearemos con la línea de comandos de GNU/Linux, con algunas utilidades para la línea de comandos, y también “for the lulz” lo haremos con chistes sobre Chuck Norris.

En internet son famosos (o por lo menos lo eran, no sé si lo siguen siendo) los chistes sobre Chuck Norris del tipo:

“No existe la teoría de la evolución, simplemente una lista de criaturas a las que Chuck Norris permite vivir”.

Y otras similares… Hace poco conocí una web donde guardaban una base de datos de un montón de chistes (en inglés) sobre Chuck Norris, y a la que se podía acceder por diferentes métodos.

Como mis conocimientos sobre programación son muy escasos, estuve intentándolo mediante algunos comandos para la línea de comandos de GNU/Linux y finalmente lo conseguí. ¿Quieres ver cómo lo hice?

En la web en cuestión mencionan varios tipos para acceder a la base de datos sobre Chuck Norris, yo me decanté a probar con curl en bash. Para ello accedemos a la API de la base de datos con una petición GET mediante este comando:

curl -G0 --http2 http://api.icndb.com/jokes/random?escape=javascript

Lo que nos devuelve (por ejemplo) lo siguiente:

{ "type": "success", "value": { "id": 497, "joke": "If Chuck Norris writes code with bugs, the bugs fix themselves.", "categories": ["nerdy"] } }

Los chistes en la base de datos tienen un índice, una categoría a la que pertenecen, etc… pero eso a nosotros nos da igual. De esa cadena queremos extraer el chiste en cuestión, así que vayamos acortando utilizando la utilidad cut.

Como todas las cadenas que nos devuelva la API tendrán la misma disposición cortaremos desde la columna 5 con el delimitador “:”

cut -d ":" -f5

Lo que nos devolverá (en el ejemplo anterior):

"If Chuck Norris writes code with bugs, the bugs fix themselves.", "categories"

Pero también nos sobra la parte final que no es parte del chiste, por lo que habrá que eliminarla. Esta vez echando mano del comando sed y eliminando lo que no queremos:

sed 's/, "categories"/ /'

Por tanto es cuestión de “armar” todo esto en un sólo comando ¿Cómo? usando “las tuberías” o “pipes” que se usan con el caracter | en la línea de comandos, que lo que hace es pasar el resultado de un comando a otro.

En este caso el resultado de curl, se lo pasaremos a cut para que recorte la parte inicial que no queremos y el resultado de esto se lo pasaremos a sed para que elimine la parte final, todo junto quedará así:

curl -G0 --http2 http://api.icndb.com/jokes/random?escape=javascript | cut -d ":" -f5 | sed 's/, "categories"/ /'

Ejecutando esto en la línea de comandos obtendremos un chiste distinto cada vez sobre Chuck Norris. Ahora podemos utilizarlo para cosas “geeks” como ponerlo al inicio cuando alguien se loguee en una máquina ssh, en una firma de correo, etc…

En el blog también hemos visto cómo enviar un mensaje o “toot” a la red social Mastodon desde la línea de comandos, ¿por qué no unirlo todo todavía más? Así que añadimos otra tubería y se lo pasamos a “toot”

curl -G0 --http2 http://api.icndb.com/jokes/random?escape=javascript | cut -d ":" -f5 | sed 's/, "categories"/ /' | toot post

Ale! así nuestos seguidores en Mastodon también disfrutarán de chistes sobre Chuck Norris en su timeline! 🙂

¿Queremos rizar más el rizo? crear una tarea cron con este comando y que a una hora determinada o cuando queramos comparta uno de esos chistes de manera automática.

Podemos crear un archivo llamado chuck.sh pegar la línea del comando y darle permisos de ejecución y desde cron programar una tarea para que se ejecute. Algo tal que así:

touch chuck.sh
chmod a+x chuck.sh
nano chuck.sh (podéis editar con nano, o el editor que más os guste y pegamos lo siguiente)
/usr/bin/curl -G0 --http2 http://api.icndb.com/jokes/random?escape=javascript | /usr/bin/cut -d ":" -f5 | /bin/sed 's/, "categories"/ /' | /usr/local/bin/toot post
(Guardamos el archivo y cerramos el editor. Ahora creamos la tarea cron)
crontab -e (y añadimos algo así...)
0 */2 * * * /bin/bash /ruta/a/tu/script/chuck.sh

Guardamos y a disfrutar de chistes de Chuck Norris cada dos horas… nada de “floodear” a la gente! 🙂

La excusa son los chistes de Chuck Norris, el propósito aprender y divertirse con herramientas de software libre creadas por una comunidad con muchos gustos, aficiones e intereses…

¿Se te ocurren otros comandos mejor para conseguir lo mismo? ¿Puedes adaptar estos u otros comandos para otros propósitos? Compártelo en los comentarios! 🙂

——————————————————

4 pensamientos en “Chuck Norris te dice que hackees en #Linux desde la línea de comandos

  1. Chuck Norris deja que victorchk use opensuse porque Chuck Norris esta en todos los kernels del planeta.

  2. Gracias por esto y….. por cierto que piensas de la compra de Github por Microsoft? yo nunca he empleado Github siempre he preferido Gitlab e incluso Sourceforge

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.