Ja. ANSI-Terminals unterstützen ANSI-Escape-Codes . Jeder Control Sequence Introducer( CSI) Code im folgenden Format:
ESC[<<<CODE>>>
Das Ascii-Zeichen 27(das ESCZeichen) oder 1bhexadezimal, gefolgt von einer linken eckigen Klammer und einem Buchstaben, der die zu verwendende Aktion angibt.
Beachten Sie, dass eine Liste der ;getrennten Parameter direkt vor dem <<<CODE>>>Parameter angegeben werden kann.
Jetzt verwenden Farben eine Untergruppe von CSICodes, die Select Graphic RenditionCodes. Diese sind in der Form:
ESC[<<<SGR>>>m
Der SGRCode wird als Parameter übergeben CSI. Relevant für Ihre Frage sind die SGRCodes 30-49. Mit den Codes 30-39 wird die Vordergrundfarbe eingestellt. Mit den Codes 40-49 wird die Hintergrundfarbe eingestellt.
30 - Foreground Black
31 - Foreground Red
32 - Foreground Green
33 - Foreground Yellow
34 - Foreground Blue
35 - Foreground Magenta
36 - Foreground Cyan
37 - Foreground White
40 - Background Black
41 - Background Red
42 - Background Green
43 - Background Yellow
44 - Background Blue
45 - Background Magenta
46 - Background Cyan
47 - Background White
Die Codes 38 und 48 sind Sondercodes. Mit diesen können Sie RGB-Werte verwenden. Das Format für diese ist:
ESC[38;2;<r>;<g>;<b>m (Foreground)
ESC[48;2;<r>;<g>;<b>m (Background)
Hinweis: alternative Verwendungen umfassen \x1b[<3 or 4>8;5;<web safe color index>m. Bei dieser Verwendung gibt es eine völlig andere Farbcodierung. Weitere Informationen finden Sie über den Link oben in dieser Antwort.
Mit den Codes 39 und 49 werden die Vordergrund- und Hintergrundfarben auf ihre Standardwerte gesetzt, die Terminal für Terminal festgelegt werden.
In der Praxis unterscheiden sich die Farben 30-37 40-47 geringfügig von den Angaben auf den Etiketten.
0 - Black
1 - Darker Red
2 - Darker Green
3 - Dark/Yellow or Brown (varies between terminals)
4 - Dark Blue
5 - Dark Magenta
6 - Dark Cyan
7 - Light Grey
Um helle Farben zu erhalten, verwenden Sie die SGI für Fettdruck 1. Fett ist ein irreführender Name. Die Schrift wird dadurch nicht fett dargestellt. Tatsächlich wird die Helligkeit des Texts erhöht. Mit Fettdruck werden die Farben:
0 - Dark Grey
1 - Bright Red
2 - Bright Green
3 - Bright Yellow
4 - Bright Blue
5 - Bright Magenta
6 - Bright Cyan
7 - White
Hinweis: Die letzten beiden Farbblöcke sind sowohl für den Vorder- als auch für den Hintergrund relevant ( <index> + (30 or 40)).
Verwenden Sie SGR0, um alle Stile zu entfernen (zurück zum Standard- / Normalmodus) .
CSICodes sind nicht alle grafisch. Zum Beispiel ESC[2Jwird Ihr Terminal gelöscht. ESC[<y>;<x>HSetzt die Cursorposition (1-indiziert). Weitere Informationen finden Sie im Wikipedia-Artikel.
Hinweis: Um diese zu testen, verwenden Sie echo -eoder printf.