Bei bestimmten XTerm / ANSI-kompatiblen Terminals (z. B. xtermund gnome-terminal) können Sie Farben mit einer Palette festlegen, die größer ist als die Standardpalette mit 8/16 Farben (z. B. 88 Farben, 256 Farben oder 16777216 Farben (RGB)) beide xtermund gnome-terminalunterstützen sowohl die 256-Farben- als auch die 16777216-Farben-Palette (RGB); Beachten Sie, dass die Shell dies möglicherweise außer Kraft setzt (dies ist z zsh. B. der Fall für ).
Hier ist ein Skript zum Auflisten der Farben in der 256-Farben-Palette zusammen mit ihrem ANSI-Farbcode in XTerm / ANSI-kompatiblen Terminals mit Unterstützung für 256-Farben-Paletten:
#!/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


Verwenden Sie je nachdem, ob Sie die Farbe auf den Vordergrund oder auf den Hintergrund anwenden möchten, den <fg_bg>Wert 38oder 48(bzw.) im folgenden Befehl:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
So setzen Sie beispielsweise die Vordergrundfarbe ( <fg_bg>= 38) auf Rot ( <ANSI_color_code>= 196) und die Hintergrundfarbe ( <fg_bg>= 48) auf Schwarz ( <ANSI_color_code>= 0):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

Es ist notwendig, die Eingabeaufforderung mit neu zu zeichnen printf '\e[K', damit die Hintergrundfarbe auf die gesamte Zeile angewendet wird und damit die Vordergrundfarbe auf den Cursor angewendet wird:
Dasselbe kann mit RGB-Werten anstelle von ANSI-Farbcodes in einem kompatiblen Terminal erreicht werden. Verwenden Sie je nachdem, ob Sie die Farbe auf den Vordergrund oder auf den Hintergrund anwenden möchten, den <fg_bg>Wert 38oder 48(bzw.) im folgenden Befehl:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
So setzen Sie beispielsweise die Vordergrundfarbe ( <fg_bg>= 38) auf Rot ( <R>= 255, <G>= 0, <B>= 0) und die Hintergrundfarbe ( <fg_bg>= 48) auf Schwarz ( <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'

Auch hier ist es notwendig, die Eingabeaufforderung mit neu zu zeichnen printf '\e[K', damit die Hintergrundfarbe auf die gesamte Linie angewendet wird und damit die Vordergrundfarbe auf den Cursor angewendet wird:

Mit beiden Methoden können Sie printf '\e[0m'alle Attribute zurücksetzen:
