Mucha gente no piensa en la línea de comandos como un elemento útil, o incluso le presta mucha atención. Sin embargo, un indicador útil puede cambiar la forma en que usa la línea de comando y, por extensión, su sistema. Este artículo le muestra una serie de indicaciones de Bash útiles e interesantes con ejemplos. Tenga en cuenta que comenzamos con las indicaciones en sí, luego ofrecemos algunas instrucciones adicionales sobre cómo trabajar con ellas.
Aquí ofrecemos algunas indicaciones de Bash, y no todas serán serias. Por ejemplo, nuestra primera entrada en la lista podría brindarle un poco de alegría al usar la línea de comando.
1. Mostrar un «Kaomoji» tras una ejecución exitosa
¡Este mensaje es divertido pero útil! La idea es que siempre que ejecute comandos exitosos, su indicador mostrará un kaomoji feliz.
Por el contrario, cuando un comando falla, verás un kaomoji triste.
Para aplicar esto, utilice 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]\<strong>\$</strong> "
Esto puede parecer confuso, pero estamos usando sentencias if para determinar si el comando es bueno o malo. A partir de ahí, usamos algunos escapes alrededor del kaomoji para asegurarnos de que se muestren de la manera correcta.
2. Cambie el color del aviso de Bash cuando la terminal emite un comando incorrecto
Podría decirse que este aviso es el más útil de la lista. Al igual que arriba, el aviso cambia de color si su último comando no se ejecutó, pero también acorta las rutas largas y contiene el número de historial de Bash de cada comando para una 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 desalentador de implementar, pero es sencillo. Usamos sentencias if de nuevo, junto con códigos de color para resaltar varios mensajes.
Puede hacer que estos colores sean los que desee, aunque ejercitaremos un pensamiento lógico: los colores cambiados deberían ayudarlo en lugar de cambiarse solo por el hecho de hacer un cambio.
3. Distribuya sus avisos de Bash en varias líneas
A veces, es posible que desee incluir mucha información en las indicaciones de Bash. Si esto lo describe, este indicador de Bash puede interesarle. Muestra la fecha, la hora, la ruta completa del directorio, los nombres de usuario y host, el terminal activo e incluso el recuento de archivos y el uso del espacio.
PS1="<strong>\n</strong>\[\033[35m\]<strong>\$</strong>(/bin/date)<strong>\n</strong>\[\033[32m\]\w<strong>\n</strong>\[\033[1;31m\]\u@\h: \[\033[1;34m\]<strong>\$</strong>(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]<strong>\$</strong>(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files \[\033[1;33m\]<strong>\$</strong>(/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 indicador en sí tendrá un diseño estático, pero contenido dinámico. También puede resultarle difícil analizar los diferentes elementos en este. Nuestro consejo es aplicarlo, luego ejecutar el mensaje pieza por pieza. Con un poco de referencias cruzadas, comenzará a comprender cómo se combinan las indicaciones.
4. Use colores para hacer que su indicador Bash sea más legible
No hay nada sofisticado en este mensaje aparte del buen uso del color para separar las diferentes piezas de información. Como puede ver, proporciona la hora, los nombres de usuario y host y el directorio actual.
PS1="\[\033[35m\]<strong>\t</strong>\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]<strong>\$</strong> "
Esta es una de las indicaciones de Bash más útiles y es un área que deberá consultar primero para personalizar su indicación. Puede brindarle una buena base para aprender cómo funciona un aviso personalizado.
5. Mostrar la ruta completa del directorio
Al igual que el uso de colores, este indicador es un indicador limpio y mínimo de dos líneas (aunque hay una línea en blanco en la parte superior).
Mostramos la ruta completa del directorio de trabajo en la primera línea, seguida por el usuario en la parte inferior.
PS1="[\[\033[32m\]\w]\[\033[0m\]<strong>\n</strong>\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"
Si no desea utilizar una línea en blanco dentro del aviso, puede eliminar la primera \n
. Sin embargo, juegue con el diseño y el formato, ya que cada experiencia de Terminal será diferente según su computadora y la configuración de la línea de comandos.
6. Mostrar un recuento de trabajos en segundo plano
Este dos líneas muestra información que aún no hemos usado en nuestras indicaciones de Bash. Proporcionamos un recuento continuo de trabajos en segundo plano. Esto será útil si realiza múltiples tareas pero necesita vigilar cualquier actividad.
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 recuento de los trabajos que se ejecutan 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 en este, aunque puede brindarle información muy necesaria sobre la actividad del sistema. Incluso podría convertir esto en un indicador más complejo y agregar declaraciones if y códigos de colores para notificarle cuando un trabajo alcanza ciertos niveles.
7. Mostrar información para el directorio de trabajo
Con este, mostramos el nombre de usuario y host, el recuento de trabajos y la fecha y hora en la línea superior. Debajo está el directorio actual, junto con la cantidad de archivos en el directorio y alguna información sobre el uso del disco.
PS1="<strong>\n</strong>\[\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\]<strong>\n</strong>\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]<strong>\$</strong>(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, <strong>\$</strong>(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"
El mayor problema con todas estas indicaciones es averiguar qué sucede con el formateo y el escape. Sin embargo, al igual que con las indicaciones de varias líneas, debe abordar esto pieza por pieza hasta que comprenda la estructura general.
Incluso podría ingresar una parte a la vez y observar si se muestra o si hay errores, y trabajar hasta el fragmento completo.
8. Cree sus propios mensajes de Bash
Puede combinar cualquiera y todo lo anterior para crear sus propios avisos de Bash personalizados. Por ejemplo, esta es una modificación del número siete en esta lista pero se cambió para ocupar menos espacio e incluir información específica y relevante.
Un estilo de dos líneas siempre es más compacto, ya que puede ver la ruta completa sin reducir el espacio para los comandos que usa.
PS1="<strong>\n</strong>\[\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\])<strong>\n</strong>(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"
A estas alturas, es probable que entienda lo que hace este indicador, pero nuestro consejo es que intente crear el suyo propio en lugar de pegar este. De esa manera, puede comenzar a aprender cómo funcionan los diferentes elementos juntos e incluso puede encontrar sus propios avisos de Bash personalizados.
Preguntas frecuentes
1. ¿Por qué querría usar diferentes avisos de Bash?
Hay muchas razones para esto, pero la productividad es una consideración clave. Si usa la línea de comando con frecuencia, verá su mensaje cada pocos segundos. Por lo tanto, si pones la información más importante en él, siempre puedes tenerlo a mano.
En muchos casos, usar un indicador de Bash personalizado es más eficiente que tener varias ventanas abiertas.
2. ¿Cómo agrego estas indicaciones de Bash a mi salida de Terminal?
Para usar cualquiera de estas indicaciones, puede copiar y pegar el código en su aplicación Terminal. Sin embargo, esto solo se aplicará a la sesión actual, por lo que, en teoría, deberá hacer esto cada vez que inicie la Terminal.
Si desea que el cambio sea permanente, puede pegar los fragmentos al final de su archivo ~/.bashrc y reiniciar su Terminal.
3. ¿Estas indicaciones de Bash también funcionarían con otros shells?
En muchos casos, encontrará que existe compatibilidad cruzada con otros tipos de carcasas. Sin embargo, no hay garantía de que los cambios ofrezcan una paridad del 100 por ciento.
Si echa un vistazo a nuestra publicación sobre la personalización de la Terminal Mac, esto usa zsh. Notarás que hay pequeñas diferencias pero muchas similitudes.
4. ¿Cómo averiguo qué información y elementos puedo agregar a mis avisos de Bash?
Prácticamente cualquier elemento de su sistema puede aparecer en un aviso de Bash. Querrá buscar en las variables de Bash, ya que así es como «desbloquea» estos diferentes elementos.
Un gran recurso para comprender lo que puede cambiar se encuentra en el sitio web Linux.comy le recomendamos que mantenga esa documentación a mano durante sus sesiones de personalización.
5. ¿Qué pasa si ya no quiero usar mensajes de Bash personalizados en mi terminal?
La respuesta simple aquí es abrir el archivo de configuración y eliminar las líneas relevantes. No necesita ejecutar más comandos, aunque puede valer la pena reiniciar su Terminal si no ve los cambios que espera.
Si usa la línea de comandos con regularidad o tiene necesidades específicas cuando inicia una aplicación de Terminal, personalizar el indicador podría ser una gran idea. No se necesita mucho conocimiento y, en muchos casos, puede encontrar el aviso que necesita de otro desarrollador.