Mucha gente no piensa en la línea de comandos como un elemento útil, o incluso no le prestan 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 traerle un poco de alegría al usar la línea de comando.
1. Muestre un «Kaomoji» después de una ejecución exitosa
¡Este mensaje es divertido pero útil! La idea es que siempre que ejecute comandos con éxito, su mensaje mostrará un kaomoji feliz.
Por el contrario, cuando falla un comando, verá un kaomoji triste.
Para aplicar esto, use 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 declaraciones 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 indicador Bash cuando el terminal emita un comando incorrecto
Podría decirse que este mensaje es el más útil de la lista. Al igual que antes, el indicador 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="[33[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`]$[33[0m] "; echo -ne "33]0;`hostname -s`:`pwd`07"'
Nuevamente, esto puede parecer abrumador de implementar, pero es sencillo. Usamos declaraciones if nuevamente, junto con códigos de color para resaltar varios mensajes.
Puede hacer que estos colores sean lo que quiera, aunque ejercitaríamos un pensamiento lógico que los colores cambiados deberían ayudarlo en lugar de ser cambiados solo por hacer un cambio.
3. Extienda las indicaciones de Bash en varias líneas
A veces, es posible que desee incluir mucha información en las indicaciones de Bash. Si esto le describe, este aviso 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>[33[35m]<strong>$</strong>(/bin/date)<strong>n</strong>[33[32m]w<strong>n</strong>[33[1;31m]u@h: [33[1;34m]<strong>$</strong>(/usr/bin/tty | /bin/sed -e 's:/dev/::'): [33[1;36m]<strong>$</strong>(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files [33[1;33m]<strong>$</strong>(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b[33[0m] -> [33[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 que lo apliques y luego repasa el mensaje pieza por pieza. Con un poco de referencias cruzadas, comenzará a comprender cómo se combina el mensaje.
4. Use colores para hacer que su mensaje Bash sea más legible
No hay nada lujoso en este mensaje que no sea el buen uso del color para separar las diferentes piezas de información. Como puede ver, proporciona la hora, los nombres de usuario y de host, y el directorio actual.
PS1="[33[35m]<strong>t</strong>[33[m]-[33[36m]u[33[m]@[33[32m]h:[33[33;1m]w[33[m]<strong>$</strong> "
Esta es una de las indicaciones de Bash más útiles y es un área que buscará primero para personalizar su aviso. Puede brindarle una buena base para aprender cómo funciona un mensaje personalizado.
5. Muestre la ruta completa del directorio
Al igual que el uso de colores, este mensaje es un mensaje 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 del usuario en la parte inferior.
PS1="[[33[32m]w][33[0m]<strong>n</strong>[33[1;36m]u[33[1;33m]-> [33[0m]"
Si no desea utilizar una línea en blanco dentro del mensaje, puede quitar 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
Esta línea de dos líneas muestra información que aún no hemos usado en nuestras indicaciones de Bash. Proporcionamos un recuento actualizado 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 esto, aunque puede brindarle información muy necesaria sobre la actividad del sistema. Incluso podría convertir esto en un mensaje 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 cierta información sobre el uso del disco.
PS1="<strong>n</strong>[e[30;1m][16]l[17]([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>[16]m[17]-([[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é está sucediendo alrededor del formato 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 puede ingresar una parte a la vez y anotar si se muestra o si hay errores, y trabajar hasta el fragmento completo.
8. Cree sus propias indicaciones de Bash
Puede combinar cualquiera y todo lo anterior para crear sus propias indicaciones de Bash personalizadas. 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 comprenda lo que hace este mensaje, pero nuestro consejo es que intente crear el suyo propio en lugar de pegarlo. De esa manera, puede comenzar a aprender cómo funcionan juntos los diferentes elementos e incluso puede llegar a sus propias indicaciones de Bash personalizadas.
Preguntas frecuentes
1. ¿Por qué querría utilizar diferentes indicaciones de Bash?
Hay muchas razones para esto, pero la productividad es una consideración clave. Si usa con frecuencia la línea de comando, verá su mensaje cada pocos segundos. Como tal, si le pone la información más importante, siempre puede tenerla a mano.
En muchos casos, usar un indicador de Bash personalizado es más eficiente que tener varios windows abierto.
2. ¿Cómo agrego estas indicaciones 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 shells. Sin embargo, no hay garantía de que los cambios ofrezcan una paridad del 100 por ciento.
Si echas un vistazo a nuestra publicación sobre la personalización de la Terminal Mac, esta usa zsh. Notarás que existen pequeñas diferencias pero muchas similitudes.
4. ¿Cómo averiguo qué información y elementos puedo agregar a mis mensajes de Bash?
Prácticamente cualquier elemento de su sistema puede aparecer en un indicador de Bash. Querrá ver las variables de Bash, ya que así es como «desbloquea» estos diferentes elementos.
Un gran recurso para comprender lo que puede cambiar está en el Sitio web Linux.com, y le recomendamos que mantenga esa documentación a mano durante sus sesiones de personalización.
5. ¿Qué pasa si ya no quiero usar mensajes personalizados de Bash en mi Terminal?
La respuesta simple aquí es abrir el archivo de configuración y eliminar las líneas relevantes. No necesita realizar más comandos, aunque puede valer la pena reiniciar su Terminal si no ve los cambios que espera.
Terminando
Si usa la línea de comando de forma regular, 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 mensaje que necesita de otro desarrollador.
Si este artículo despierta su interés, es posible que también desee leer sobre un conjunto adicional de indicaciones útiles de Bash.