En ciertos terminales compatibles con XTerm / ANSI (como xtermy gnome-terminal), puede establecer colores usando una paleta más grande que la paleta predeterminada de 8/16 colores (por ejemplo, usando una paleta de 88 colores, 256 colores o 16777216 colores (RGB) ; ambos xtermy gnome-terminaladmiten tanto la paleta de 256 colores como la de 16777216 colores (RGB)); tenga en cuenta que el shell podría anular esto (este es el caso, por ejemplo, para zsh)
Aquí hay una secuencia de comandos para enumerar los colores en la paleta de 256 colores junto con su código de color ANSI en terminales XTerm / ANSI compatibles con un soporte de paleta de 256 colores:
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done


Dependiendo de si desea aplicar el color al primer plano o al fondo, use un <fg_bg>valor de 38o 48(respectivamente) en el siguiente comando:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Por ejemplo, para establecer el color de primer plano ( <fg_bg>= 38) en rojo ( <ANSI_color_code>= 196) y el color de fondo ( <fg_bg>= 48) en negro ( <ANSI_color_code>= 0):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

Es necesario volver a dibujar la solicitud utilizando printf '\e[K'para que el color de fondo se aplique a toda la línea y para que el color de primer plano se aplique al cursor:
Lo mismo puede lograrse utilizando valores RGB en lugar de códigos de color ANSI en un terminal compatible; dependiendo de si desea aplicar el color al primer plano o al fondo, use un <fg_bg>valor de 38o 48(respectivamente) en el siguiente comando:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Por ejemplo, para establecer el color de primer plano ( <fg_bg>= 38) en rojo ( <R>= 255, <G>= 0, <B>= 0) y el color de fondo ( <fg_bg>= 48) en negro ( <R>= 0, <G>= 0, <B>= 0):
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'

Nuevamente, es necesario volver a dibujar la solicitud usando printf '\e[K'para que el color de fondo se aplique a toda la línea y para que el color de primer plano se aplique al cursor:

Usando cualquiera de los métodos, puede usar printf '\e[0m'para restablecer todos los atributos:
