Bash-insulter, tu sistema insultará al usuario al escribir mal un comando

About Bash-insulter

En el siguiente artículo vamos a echar un vistazo a Bash-insulter. Este es un script para la línea de comandos que me encontré en Reddit. Esta es una divertida herramienta de CLI que te insulta de manera aleatoria cuando escribes un comando incorrecto. Puede sacar una sonrisa en estos largos días de trabajo. Esta herramienta es de código abierto y su código está disponible en el repositorio oficial de Github.

Este un script sencillo que hará que nuestro sistema insulte al usuario cada vez que escriba un comando Unix de manera incorrecta. Con todo esto no vamos a mejorar nuestro sistema operativo, pero puede ser muy divertido usar Bash-insulter para avergonzar al usuario por cualquier comando mal escrito en la terminal. Vamos a poder hacerlo funcionar en cualquier sistema operativo similar a Unix que contenga BASH Shell.

Podremos configurar el comando “sudo” para insultar al usuario cuando escribe de manera incorrecta la contraseña. Esto puede añadirse a las contestaciones que el sistema puede dar al usuario cuando escriba el comando incorrecto en el indicador del shell.

Instalar Bash-insulter

Para poder dar un poco de mal lenguaje a nuestro sistema, tendremos que asegurarnos de haber instalado GIT en nuestro sistema operativo. Si aún no lo tenemos instalado, podremos utilizar el administrador de paquetes predeterminado de nuestro sistema para instalarlo. Por ejemplo, podremos instalar GIT utilizando el siguiente comando en cualquier sistema basado en Debian. Para ello abrimos la terminal (Ctrl+Alt+T) y escribimos:

sudo apt install git

Una vez instalado git vamos a poder clonar el repositorio de Bash-insulter escribiendo en la misma terminal:

git clone https://github.com/hkbakke/bash-insulter.git bash-insulter

Una vez terminada la anterior acción, ya podremos copiar la secuencia de comandos a la carpeta /etc/ de nuestro sistema. Para hacerlo, solo tenemos que copiar el siguiente comando en nuestra terminal:

sudo cp bash-insulter/src/bash.command-not-found /etc/

Ahora para hacerlo funcionar, tendremos que editar el archivo /etc/bash.bashrc. En la misma terminal vamos a editar el archivo utilizando vi (o el editor que más le guste a cada uno). Si utilizas vi, puedes utilizar el siguiente comando:

sudo vi /etc/bash.bashrc

Una vez editado el archivo, solo tendremos que agregar las siguientes líneas. Es recomendable agregar estas líneas al final del archivo. También es buena idea dejar un comentario para identificar cuáles son esas líneas. Deberías acabar teniendo algo como esto:

bash-insulter etc bashrc

if [ -f /etc/bash.command-not-found ]; then
    . /etc/bash.command-not-found
fi

Guarda y cierra el archivo escribiendo :wq. Una vez que salgas al sistema, ejecuta el siguiente comando para actualizar los cambios:

source /etc/bash.bashrc

Probando Bash-insulter

Con las anteriores órdenes ya tenemos instalado el script en nuestro Ubuntu. Ahora, si el usuario escribe un comando incorrecto como los siguientes, la terminal nos pondrá las pilas (según como lo tengas configurado).

comandos incorrectos bash-insulter

lsss

cleaar

Esto es quizás una buena manera de mantener a raya y echarse unas risas cuando administras un sistema que utilizan otros usuarios. El autor de este script ha agregado algunos “insultos” que no ofenden mucho. Si queremos vamos a poder agregar nuestros propios insultos como mejor nos venga en gana.

Configuración de Bash-insulter

Si queremos añadir nuevos mensajes, podremos hacerlo, editando el archivo /etc/bash.command-not-found. Para ello tendremos que escribir en la terminal (Ctrl+Alt+T) el siguiente comando:

sudo vi /etc/bash.command-not-found

Una vez editado el archivo, podremos agregar los mensajes que queramos. Tendremos que colocarlos dentro de la directiva de insultos locales. También podremos traducir los que ya hay dentro de la directiva, ya que los que vienen por defecto están en inglés (y a mi particularmente me resulta más gracioso que mi sistema operativo me mande mensajes en castellano). He de decir que los mensajes que se nos mostrarán lo harán de manera aleatoria.

Durante la configuración, he agregado algunos insultos un poco más agresivos. Véase en la captura de pantalla siguiente:

bash-insulter configuración

Aviso

El autor de este script no se hace responsable si ha ofendido los sentimientos de alguien, intencionadamente o accidentalmente. Este script se ha creado puramente por diversión y entretenimiento.


5 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   LeoLopez dijo

    Pero hermano el script esta en inglés, no hay una versión en español por ahí. Está de lucha traducir cada insulto, además algunos son típicamente americanismos!! 🙂

    1.    Damian Amoedo dijo

      En español yo no lo he encontrado, pero traducirlo o añadir los tuyos propios es muy sencillo y rápido. Así te ahorras los «americanismos». Salu2.

      1.    Nestor dijo

        #COPIA ESTE Y PEGALO CON EL MISMO NOMBRE, ES EL MISMO ARCHIVO PERO YA LO #TRADUJE Y AGREGUE UNAS PALABRAS NADA MAS
        print_message () {

        local messages
        local message

        messages=(
        «¡Boooo!»
        «¿No sabes nada?»
        «¡RTFM!»
        «Jaja, n00b!»
        «¡Wow! ¡Eso estuvo impresionantemente mal!»
        «Estas bien WEY!!!!»
        «¡El peor de hoy!»
        «alerta n00b!»
        «¡Su solicitud de salario reducido ha sido enviada!»
        «jajajajaja…che…wey»
        «la cagas!!!!!»
        «jajaja … por favor»
        «desinstalar por favor»
        «¡Y el Premio Darwin es para … ${USER}!»
        «ERROR_INCOMPETENT_USER»
        «La incompetencia es también una forma de competencia»
        «Malo.»
        «¡Fingir hasta que lo consigas!»
        «¿Qué es esto …? ¿Hora amateur?»
        «¡Vamos, puedes hacerlo!»
        «Buen intento.»
        «¿Qué pasa si … escribes un comando real la próxima vez!»
        «¿Qué pasa si te digo que … es posible escribir comandos válidos?»
        «¿No hablas computadora?»
        «Esto no es Windows»
        «Quizás deberías dejar la línea de comando sola …»
        «¡Por favor, aléjate del teclado wey!!»
        «código de error: 1D10T4»
        «ACHTUNG! ALLES Turisten UND NONTEKNISCHEN LOOKENPEEPERS! DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST FÁCIL schnappen DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN. IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. BOLSILLOS DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HANDER en el DAS MUSS. ZO RELAXEN Y WATSCHEN DER BLINKENLICHTEN »
        «Consejo profesional: escriba un comando válido!»
        «Salir afuera.»
        «Este no es un motor de búsqueda»
        «(╯ ° □ °) ╯︵ ┻━┻»
        «¯ \\ _ (ツ) _ / ¯»
        «Entonces, voy a seguir adelante y ejecutar rm -rf / para ti»
        «¡¿Por que eres tan estúpido?!»
        «Quizás las computadoras no son para ti …»
        «¡¿Por que me estas haciendo esto?!»
        «¿No tienes nada mejor que hacer?»
        «Estoy _ seriamente_ considerando ‘rm -rf /’ – ing mismo …»
        «Es por eso que puedes ver a tus hijos solo una vez al mes»
        «Es por eso que a nadie le gustas»
        «¡¿Estás Si quiera intentándolo?!»
        «¡Intenta usar tu cerebro la próxima vez!»
        «¡Mi teclado no es una pantalla táctil!»
        «¡Comandos, galimatías al azar, a quién le importa!»
        «Escribiendo comandos incorrectos, ¿eh?»
        «¡¿Siempre eres tan estúpido o estás haciendo un esfuerzo especial hoy ?!»
        «Cayó sobre tu cabeza como un bebé, ¿eh?»
        «Los cerebros no lo son todo. En tu caso no son nada»
        «No sé qué te hace tan estúpido, pero realmente funciona»
        «No eres tan malo como dice la gente, eres mucho, mucho peor»
        «Dos errores no corrigen, toma a tus padres como ejemplo»
        «Debes haber nacido en una carretera porque allí es donde ocurren la mayoría de los accidentes».
        «Si lo que no sabes no puede hacerte daño, eres invulnerable»
        «Si la ignorancia es felicidad, debes ser la persona más feliz de la tierra»
        «Eres una prueba de que Dios tiene sentido del humor»
        «¡Sigue intentándolo, algún día harás algo inteligente!»
        «Si la mierda fuera música, serías una orquesta»
        «¿Cuántas veces tengo que enjuagarme antes de que te vayas?»
        )

        # If CMD_NOT_FOUND_MSGS array is populated use those messages instead of the defaults
        [[ -n ${CMD_NOT_FOUND_MSGS} ]] && messages=( «${CMD_NOT_FOUND_MSGS[@]}» )

        # If CMD_NOT_FOUND_MSGS_APPEND array is populated append those to the existing messages
        [[ -n ${CMD_NOT_FOUND_MSGS_APPEND} ]] && messages+=( «${CMD_NOT_FOUND_MSGS_APPEND[@]}» )

        # Seed RANDOM with an integer of some length
        RANDOM=$(od -vAn -N4 -tu &2
        fi
        }

        function_exists () {
        # Zsh returns 0 even on non existing functions with -F so use -f
        declare -f $1 > /dev/null
        return $?
        }

        #
        # The idea below is to copy any existing handlers to another function
        # name and insert the message in front of the old handler in the
        # new handler. By default, neither bash or zsh has has a handler function
        # defined, so the default behaviour is replicated.
        #
        # Also, ensure the handler is only copied once. If we do not ensure this
        # the handler would add itself recursively if this file happens to be
        # sourced multiple times in the same shell, resulting in a neverending
        # stream of messages.
        #

        #
        # Zsh
        #
        if function_exists command_not_found_handler; then
        if ! function_exists orig_command_not_found_handler; then
        eval «orig_$(declare -f command_not_found_handler)»
        fi
        else
        orig_command_not_found_handler () {
        printf «zsh: command not found: %s\\n» «$1» >&2
        return 127
        }
        fi

        command_not_found_handler () {
        print_message
        orig_command_not_found_handler «$@»
        }

        #
        # Bash
        #
        if function_exists command_not_found_handle; then
        if ! function_exists orig_command_not_found_handle; then
        eval «orig_$(declare -f command_not_found_handle)»
        fi
        else
        orig_command_not_found_handle () {
        printf «%s: %s: command not found\\n» «$0» «$1» >&2
        return 127
        }
        fi

        command_not_found_handle () {
        print_message
        orig_command_not_found_handle «$@»
        }

  2. Mirá Jannet Milagros
    Sería muy educativo jaja

  3.   Ricar Dinho dijo

    Jajaja buenisimo