Utilicé varios colores en mi indicador de PS1, como
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
¿Dónde puedo encontrar una lista de los códigos de colores que puedo usar?
Miré Colorize Bash Console Color pero no respondió mi pregunta sobre una lista de los códigos reales.
Sería bueno si hubiera una forma más legible también.
Ver también https://unix.stackexchange.com/a/127800/10043
\]
aquí en realidad no es parte de la secuencia de colores; cumple un propósito al establecer avisos específicamente (he agregado algunos párrafos al final de mi respuesta sobre esto). "Sería bueno si hubiera una forma más legible también". -> cortar y pegar en tu propia respuesta es una forma de hacerlo.Respuestas:
Esas son secuencias de escape ANSI ; ese enlace es a una tabla de códigos de color, pero también hay otras cosas interesantes en esa página de Wikipedia. No todos funcionan en (por ejemplo) una consola Linux normal.
Esto es incorrecto:
0
restablece el terminal a su valor predeterminado (que probablemente sea blanco). El código real para el primer plano blanco es 37. Además, la llave de cierre escapada al final (\]
) no forma parte de la secuencia de colores (consulte los últimos párrafos a continuación para obtener una explicación de su propósito al configurar un aviso).Tenga en cuenta que algunos terminales GUI le permiten especificar un esquema de color personalizado. Esto afectará la salida.
Aquí hay una lista que agrega 7 colores de primer plano y 7 de fondo que no había visto antes, pero parecen funcionar:
Además, si tiene un terminal GUI de 256 colores (creo que la mayoría de ellos son ahora), puede aplicar los colores de este cuadro:
La secuencia ANSI para seleccionarlos, usando el número en la esquina inferior izquierda, comienza
38;5;
para el primer plano y48;5;
para el fondo, luego el número de color, por ejemplo:Me da un color naranja claro en bronceado (es decir, la tabla de colores es aproximadamente aproximada).
Puede ver los colores en este cuadro 1 tal como aparecerían en su terminal con bastante facilidad:
La salida se explica por sí misma.
Algunos sistemas configuran la variable $ TERM
xterm-256color
si está en un terminal de 256 colores mediante algún código de shell/etc/profile
. En otros, debería poder configurar su terminal para usar esto. Eso permitirá que las aplicaciones TUI sepan que hay 256 colores y le permitirá agregar algo como esto a su~/.bashrc
:Tenga en cuenta que cuando utiliza secuencias de escape de color en su solicitud, debe encerrarlas
\
entre corchetes ( prefijados), como este:Observe que el
[
interior de la secuencia de colores no se escapa, pero sí los que lo rodean. El propósito de este último es indicar al shell que la secuencia encerrada no cuenta para la longitud de caracteres de la solicitud. Si ese conteo es incorrecto, sucederán cosas extrañas al desplazarse hacia atrás por el historial, por ejemplo, si es demasiado largo, el exceso de longitud de la última cadena desplazada aparecerá adjunta a su mensaje y no podrá retroceder en (se ignora de la misma manera que el aviso).También tenga en cuenta que si desea incluir la salida de un comando ejecutado cada vez que se utiliza el indicador (en lugar de solo una vez cuando se configura el indicador), debe configurarlo como una cadena literal con comillas simples, por ejemplo:
Aunque este no es un gran ejemplo si está satisfecho con el uso de escapes especiales
\d
o\D{format}
rápidos de bash, que no son el tema de la pregunta, pero se pueden encontrar en laman bash
sección siguientePROMPTING
. Hay varios otros escapes útiles, como\w
para el directorio actual,\u
para el usuario actual, etc.1. La parte principal de este cuadro, los colores 16 - 231 (tenga en cuenta que no están en orden numérico) son un cubo de color RGB de 6 x 6 x 6. "Cubo de color" se refiere al hecho de que un espacio de color RGB se puede representar utilizando una matriz tridimensional (con un eje para el rojo, uno para el verde y uno para el azul). Cada color en el cubo aquí se puede representar como coordenadas en una matriz de 6 x 6 x 6, y el índice en el gráfico se calcula así:
El primer color en el cubo, en el índice 16 en el gráfico, es negro (RGB 0, 0, 0). Puede usar esta fórmula en el script de shell:
fuente
echo
para otra cosa que no sea texto literal que no comience con un guión (-
). Es inportable. Todas las implementaciones comunes violan el estándar que establece que no se deben admitir opciones. Peor aún, son inconsistentes. Deberías usarprintf
en su lugar. (Y no incrustar variables dentro de sentencias printf, usar%s
.)colortest-256
Enumere la paleta Xterm en una forma compacta y agradable. (apt-get install colortest
si falta)Parece que al menos parte de la lista es:
basado en https://wiki.archlinux.org/index.php/Color_Bash_Prompt
fuente
Escribí una función bash que puede mostrarle todos los colores, si esto ayuda.
Puede incluirlo en un .bashrc / .bash_profile / .bash_aliases o guardarlo como un script y ejecutarlo de esa manera. Puede usar los colores para cambiar el color como hice con mi nombre a continuación.
salidas colorgrid ():
Cambié mi nombre en mi .bash_profile haciendo esto:
Tenga en cuenta que el prefijo 01 en una cadena como lo
\[\033[01;38;5;214m\]a
establece en negrita.fuente
Otro script como el publicado por TAFKA 'goldilocks' para mostrar colores, que es quizás un poco más práctico para fines de referencia:
Esto debería dimensionarse correctamente para el terminal que está utilizando. Es un poco exagerado para este propósito, pero ahora puede controlar muchos aspectos de cómo se muestra esto a través de parámetros. Con suerte, todos se explican por sí mismos.
fuente
fuente