8 Prompts de Bash Útiles e Interesantes

Un programador en una laptop.

Muchas personas no piensan en el prompt de la línea de comandos como un elemento útil, o incluso le prestan mucha atención. Sin embargo, un prompt útil puede cambiar la forma en que usas la línea de comandos y, por extensión, tu sistema. Este artículo te muestra varios prompts de Bash útiles e interesantes con ejemplos. Ten en cuenta que comenzamos con los prompts en sí, y luego ofrecemos algunas instrucciones adicionales sobre cómo trabajar con ellos.

Aquí te ofrecemos algunos prompts de Bash, y no todos serán serios. ¡Por ejemplo, nuestra primera entrada en la lista podría traerte un poco de alegría al usar la línea de comandos!

También lee: Comandos Básicos de Bash para Principiantes en Linux

1. Mostrar un “Kaomoji” tras la ejecución exitosa

¡Este prompt es divertido pero útil! La idea es que siempre que ejecutes comandos exitosos, tu prompt mostrará un kaomoji feliz.

Mostrando Kaomoji en el prompt de Bash.

En cambio, cuando un comando falla, verás un kaomoji triste.

Para aplicar esto, utiliza el siguiente código:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

Esto puede parecer confuso, pero estamos utilizando declaraciones if para determinar si el comando es bueno o malo. A partir de ahí, utilizamos algunos caracteres de escape alrededor del kaomoji para asegurarnos de que se muestren correctamente.

También lee: Cómo Usar Emacs Como Lector de USENET Con Gnus

2. Cambiar el Color del Prompt de Bash Cuando la Terminal Emite un Comando Erróneo

Cambiando colores del prompt.

Se podría decir que este prompt es el más útil de la lista. Al igual que arriba, el prompt cambia de color si tu último comando falló, pero también acorta rutas largas y contiene el número de historial de cada comando para fácil recuperación.

PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'

Nuevamente, esto puede parecer intimidante de implementar, pero es bastante sencillo. Utilizamos declaraciones if de nuevo, junto con códigos de color para resaltar varios mensajes.

Puedes hacer estos colores como más desees, aunque sugeriríamos que cambies los colores de manera lógica, ayudándote en lugar de cambiar solo por el hecho de cambiar.

También lee: Cómo Configurar Leafnode como un Servidor USENET Offline

3. Expandir Tus Prompts de Bash en Varias Líneas

Usando un prompt de Bash de varias líneas.

A veces, puedes querer incluir mucha información en tus prompts de Bash. Si esto te describe, este prompt de Bash puede interesarte. Muestra la fecha, hora, ruta del directorio completo, el nombre de usuario y host, el terminal activo, e incluso el conteo de archivos y el uso del espacio.

PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') archivos \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

Aquí, no necesitamos declaraciones if, ya que el prompt en sí tendrá un diseño estático, pero contenido dinámico. También puede que te resulte difícil interpretar los diferentes elementos en este. Nuestro consejo es aplicarlo, luego revisarlo parte por parte. Con un poco de referencia cruzada, comenzarás a entender cómo se combina el prompt.

4. Usa Colores para Hacer Tu Prompt de Bash Más Legible

No hay nada elegante sobre este prompt más allá del buen uso de color para separar las diferentes piezas de información. Como puedes ver, proporciona la hora, los nombres de usuario y host, y el directorio actual.

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

Este es uno de los prompts de Bash más útiles y es un área que mirarás primero para personalizar tu prompt. Puede darte una buena base para aprender cómo funciona un prompt personalizado.

5. Mostrar la Ruta Completa del Directorio

Mucho como el uso de colores, este prompt es un prompt limpio y minimalista de dos líneas (aunque hay una línea en blanco en la parte superior).

Mostrando la ruta completa del directorio en el prompt.

Mostramos la ruta del directorio de trabajo completo en la primera línea, seguido por el usuario en la parte inferior.

PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"

Si no deseas usar una línea en blanco dentro del prompt, puedes quitar el primer \n. Sin embargo, juega con el diseño y formato, ya que cada experiencia en Terminal será diferente dependiendo de tu computadora y la configuración de la línea de comandos.

6. Mostrar un Conteo de Trabajos en Segundo Plano

Este de dos líneas muestra información que aún no hemos utilizado en nuestros prompts de Bash. Proporcionamos un conteo en curso de los trabajos en segundo plano. Esto será útil si multitareas pero necesitas mantener un ojo en cualquier actividad.

Mostrando un conteo de trabajos en segundo plano.

La primera línea es el nombre de usuario y host, junto con la ruta del directorio de trabajo. En la segunda línea, tenemos el número de historial y un conteo de los trabajos que se están ejecutando en segundo plano.

PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '

No hay mucho más que esto, aunque puede darte información muy necesaria sobre la actividad del sistema. Incluso podrías convertir esto en un prompt más complejo y agregar declaraciones if y codificación de colores para notificarte cuando un trabajo alcanza ciertos niveles.

7. Mostrar Información del Directorio de Trabajo

Mostrando información del directorio de trabajo.

Con este mostramos el nombre de usuario y host, el conteo de trabajos, y la fecha y hora en la línea superior. Debajo está el directorio actual, junto con el número de archivos en el directorio y algo de información sobre el uso del disco.

PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') archivos, \$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

El mayor problema con todos estos prompts es entender lo que está sucediendo con el formato y la escape. Sin embargo, al igual que con los prompts de varias líneas, deberías abordar este uno pieza por pieza hasta que entiendas la estructura general.

Incluso podrías introducir una porción a la vez y notar si se muestra o si hay errores, y avanzar hasta el fragmento completo.

8. Crea Tus Propios Prompts de Bash

Un prompt de Bash personalizado.

Puedes combinar cualquiera y todos los anteriores para crear tus propios prompts personalizados de Bash. Por ejemplo, esta es una modificación del número siete en esta lista, pero cambiada para ocupar menos espacio e incluir información específica y relevante.

Un estilo de dos líneas siempre es más compacto, como puedes ver la ruta completa sin reducir el espacio para los comandos que usas.

PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"

Para este momento, probablemente entenderás lo que hace este prompt, pero nuestro consejo es intentar crear el tuyo en lugar de pegar este. De esa manera, puedes comenzar a aprender cómo los diferentes elementos trabajan juntos y tal vez incluso llegar a crear tus propios prompts personalizados de Bash.

Preguntas Frecuentes

1. ¿Por qué querría usar diferentes prompts de Bash?

Hay muchas razones para esto, pero la productividad es una consideración clave. Si usas a menudo la línea de comandos, verás tu prompt cada pocos segundos. Como tal, si pones la información más importante en él, siempre tendrás esa información a mano.

En muchos casos, usar un prompt de Bash personalizado es más eficiente que tener varias ventanas abiertas.

2. ¿Cómo añado estos prompts de Bash a mi salida de Terminal?

Para usar cualquiera de estos prompts, puedes copiar y pegar el código en tu aplicación de Terminal. Sin embargo, esto solo se aplicará a la sesión actual, así que en teoría, necesitarías hacer esto cada vez que inicies la Terminal.

Si deseas hacer el cambio permanente, puedes pegar los fragmentos al final de tu archivo ~/.bashrc y reiniciar tu Terminal.

3. ¿Estos prompts de Bash también funcionarían utilizando otros shells?

En muchos casos, encontrarás que hay compatibilidad cruzada con otros tipos de shells. Sin embargo, no hay garantía de que los cambios ofrezcan un 100 por ciento de paridad.

Si echas un vistazo a nuestra publicación sobre personalización del Terminal de Mac, esto utiliza zsh. Notarás que hay diferencias menores pero muchas similitudes.

4. ¿Cómo averiguo qué información y elementos puedo agregar a mis prompts de Bash?

Prácticamente cualquier elemento de tu sistema puede aparecer en un prompt de Bash. Querrás investigar las variables de Bash, ya que así “desbloqueas” estos diferentes elementos.

Un gran recurso para entender qué puedes cambiar está en el sitio web de Linux.com, y recomendamos mantener esa documentación a mano durante tus sesiones de personalización.

5. ¿Qué pasa si ya no quiero usar prompts personalizados de Bash en mi Terminal?

La respuesta simple aquí es abrir el archivo de configuración y eliminar las líneas relevantes. No necesitas realizar ningún comando adicional, aunque puede valer la pena reiniciar tu Terminal si no ves los cambios que esperas.

Si usas la línea de comandos de manera regular, o tienes necesidades específicas cuando inicias una aplicación de Terminal, personalizar el prompt podría ser una gran idea. No requiere mucho conocimiento, y en muchos casos, puedes encontrar el prompt que necesitas de otro desarrollador.