Aprender bash jugando

Saludos a los miembros de la comunidad.

Hacía tiempo que no me pasaba por el foro a realizar algún mínimo aporte y decidí aprovechar ya que hace poco me topé con un contenido de Youtube bastante interesante; aprender bash con juegos.
Dado que el video está en inglés, he decidido no solo adaptarlo a nuestro idioma, si no también probar cada uno de estos juegos y compartirles mi experiencia. Debido a que no dispongo de tanto tiempo, no voy a pasarme todos los juegos pero sí dar mis impresiones después de probarlos.
Siento que es material interesante y útil para los que recién comienzan, como así también para quienes necesiten reforzar sus habilidades con las herramientas de la terminal.

Hoy en día un usuario común y corriente puede usar un sistema operativo GNU+Linux sin siquiera tocar la terminal, saber usarla es como desbloquear un nuevo súper poder. Te permite automatizar tareas, realizar otras de manera más rápida y aumentar el alcance de lo que uno puede hacer con una PC. Dentro del mundo de DevOps y SysAdmins es una herramienta fundamental y de uso diario.
Por estos motivos, me resulta conveniente tener a mano una práctica que con el tiempo incrementará nuestras habilidades.

CMD Challenge.

CMD Challenge se juega a través de un sitio web. La mecánica consiste en arrojarte desafíos que pueden ser resueltos utilizando comandos de bash o herramientas CLI habituales en cada sistema operativo GNU+Linux. Los desafíos deben completarse utilizando una sóla línea de comandos.
Contiene funciones útiles como la de listar los comandos útiles que pueden ser utilizados para resolver el desafío, y el objetivo del juego no es ayudarte a memorizar comandos, si no enseñarte cómo y cuándo deben ser utilizados, todo basado en escenarios del mundo real.

Terminus.

Terminus es un juego de aventua inmersivo que se juega a través de la terminal. Consiste en explorar el mundo de Terminus, interactuar con objetos y resolver rompecabezas a través de la utilización de comandos como cd o ls. En el caso del comando ls, este te muestra una imágen de tu ubicación actual, por poner un ejemplo.

Bashcrawl.

Bashcrawl es un juego de aventuras muy similar a Terminus pero que se juega vía aplicación web o clonarlo en tu sistema y ejecutarlo en local, pero debo decir que se siente más completo ya que agrega cosas interesantes como una interfáz TUI para cosas como la ubicación o incluso una barra de vida. La manera de interactuar con este mundo es muy similar a la de Terminus, por lo que se suma una opción más a este tipo de juegos.
Requiere que manejes elementos como las |, permisos de archivos, links simbólicos, cd, pwd, cat, ls y te incentiva más a experimentar con los comandos que simplemente hacerte memorizarlos.

Bandit.

Debo decir que a bandit ya lo conocía y de hecho llegé hasta el último nivel, el cual y como no soy un experto aún, me costó mucho.
El objetivo de bandit es hacerte resolver desafíos a dentro de servidores a los cuales accedes vía SSH. Debes ubicar en alguna parte del servidor la contraseña que te dará acceso al siguiente usuario.
Se utilizan mucho herramientas como awk y un uso “avanzado” de filtros de información y archivos a través de la terminal, ya que no sólo el archivo puede estar oculto en el sistema, si no que dentro del mismo archivo, la contraseña puede estar oculta entre medio de más información. En esta cosa me tocó hasta realizar el cifrado César para poder “desencriptar” la contraseña dentro de un archivo.

VIM Adventures.

Este juego me pareció súmamente divertido y también una muy buena forma de practicar los shorcuts de VIM, shortcuts que hacen que el flujo de trabajo con la herramienta mejore sustancialmente.
VIM Adventures convierte la curva de aprendizaje de VIM en un videojuego. Acá, la manera de desplazar el personaje e interactuar con los elementos del juego, se ejecuta mediante los atajos de teclado de la herramienta, lo que ayuda visualmente a crear cierta comprensión y relación con los atajos y el efecto que tienen a la hora de desarrollar o redactar a través del programa.

Clmistery

Clmistery es un juego de “encuentra al asesino” que se resuelve enteramente a través de herramientas de la terminal. Se utilizan comandos como grep para buscar entre archivos, cut para ordenar y organizar los datos y heady tail para examinar entradas de registros.
El juego te informa de cuál es el siguiente paso, pero qué herramientas utilizar para realizarlas corren por tu cuenta. El juego te incentiva a utilizar estas herramientas de la misma manera en la que un administrador de sistemas en la vida real analiza la información, resuelve e investiga problemas.
Para jugarlo, simplemente se debe clonar el repositorio en el sistema.

Linuxjourney

Algunas veces, aprender “haciendo” simplemente no es suficiente, necesitas un poco de teoría o conceptos para entender qué estás haciendo y qué ocurre detrás de los comandos. No es técnicamente un juego, pero ofrece una especie de “desafíos” para ir avanzando a través de las lecciones.
Yo particularmente ya he utilizado herramientas similares para reforzar mis conocimientos en otras áreas como Python y es particularmente útil cuando lo usas para relajarte después de estar ocupado con otras tareas.

Considero una buena idea que @chad realice un video al respecto que, si bien este material fue sacado de otro canal, el mismo se encuentra en inglés y, en un momento en donde muchas personas están migrando al ecosistema, puede ser de gran ayuda para quienes hablamos en castellano.
Además de esto, debido a que los juegos se encuentran en inglés y son de código abierto, propongo como desafío para la comunidad, la elaboración de un fork de estos proyectos pero traducidos al castellano. Esto podría aumentar todavía más el alcance de estas herramientas.

Espero que les haya sido de utilidad o les sirva para reforzar las habilidades. Saludos.

Por cierto, no sabía bien dónde ubicar el tema, por lo que deje en Principiantes para que esté disponible para los más nuevos primero.

10 Me gusta

Que maravilla de post, over the wire es un clásico.

4 Me gusta

Más tarde voy a dejar el enlace del video original. Me olvidé de poner el hipervínculo.

1 me gusta

high quality post ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ

2 Me gusta

@5ombr4 Muchas gracias por este post, conocía algunos juegos como Bandit y Vim Adventures. En especial, esto me parece muy valioso porque estuve dando clases de Linux y Bash hace poco, y luego de explicarles un poco de historia y teoría, los puse a jugar Bandit, guiándolos por cada nivel hasta el nivel 6. La verdad es que comprendieron muy bien gracias a eso y me parece que más herramientas didácticas como las que compartiste pueden servir de mucho.

Y claro, para aprender yo misma también

2 Me gusta

Me pone muy contento que haya servido hasta a personas fuera del foro. Yo también voy a darles la oportunidad más a fondo ni bien pueda, hay elementos que tengo oxidados y otros que todavía ni conozco. También voy a aprovechar la oportunidad de compartir el post en otras comunidades cada vez que salga el tema. Me parece una muy buena forma de dar a conocer las herramientas sin ser agresivo con el iniciado.

Por cierto, después de toda una vida, mi mejor amigo se pasó definitivamente a Linux desde Windows, sin escala. Estoy guiandolo y por supuesto se decidió por un par de distribuciones de moda para los más nuevos, pero está muy contento con la facilidad y el rendimiento que obtuvo con su sistema.

2 Me gusta

Me alegro por tu mejor amigo. En mi caso, después de 2 años, todos mis amigos más cercanos se pasaron a Linux (parcialmente), y eso me da mucha felicidad porque puedo compartir estas cosas con ellos, que antes no entendían. Me parece bonito verlos empezar en su proceso y poder estar ahí para ayudarlos

2 Me gusta

En mi caso tengo que cuidarme y frenar un poco para no espantarlo :joy:

Es cierto lo que decís sobre verlos empezar desde cero. Ver cómo a medida que ven algo nuevo se van dando cuenta de que todo es más amplio y profundo de lo que creían. En mi caso, Grift está dándose cuenta de que antes el sistema operativo le decía como tenía que usarse, mientras que ahora el tiene las riendas y no te trata como a un niño.

3 Me gusta

gracias por el aporte 5ombr4

1 me gusta