Ich kann die Farbe über die Einstellungen ändern, aber wie kann ich die Hintergrundfarbe und die Textfarbe des Terminals über die Befehlszeile ändern?
Antwort1
Auf bestimmten XTerm/ANSI-kompatiblen Terminals (wie xterm
und gnome-terminal
) können Sie Farben mit einer Palette einstellen, die größer ist als die Standardpalette mit 8/16 Farben (z. B. mit einer Palette mit 88 Farben, 256 Farben oder 16777216 Farben (RGB); sowohl xterm
und gnome-terminal
unterstützen sowohl die 256-Farben- als auch die 16777216-Farben-Palette (RGB); beachten Sie, dass die Shell dies überschreiben kann (dies ist beispielsweise bei der Fall zsh
).
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 eine 256-Farben-Palette:
#!/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
Abhängig davon, ob Sie die Farbe auf den Vordergrund oder den Hintergrund anwenden möchten, verwenden Sie im folgenden Befehl einen <fg_bg>
Wert von 38
bzw .:48
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Um beispielsweise die Vordergrundfarbe ( <fg_bg>
= 38
) auf Rot ( <ANSI_color_code>
= 196
) und die Hintergrundfarbe ( <fg_bg>
= 48
) auf Schwarz ( <ANSI_color_code>
= 0
) einzustellen:
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
printf '\e[K'
Damit die Hintergrundfarbe für die ganze Zeile und die Vordergrundfarbe für den Cursor gilt, muss die Eingabeaufforderung neu gezeichnet werden :
Dasselbe lässt sich in einem kompatiblen Terminal erreichen, indem Sie anstelle von ANSI-Farbcodes RGB-Werte verwenden. Je nachdem, ob Sie die Farbe auf den Vordergrund oder den Hintergrund anwenden möchten, verwenden Sie im folgenden Befehl einen <fg_bg>
Wert von 38
bzw. :48
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Um 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
) einzustellen:
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 neu zu zeichnen, printf '\e[K'
damit die Hintergrundfarbe für die gesamte Zeile und die Vordergrundfarbe für den Cursor gilt:
Mit beiden Methoden können Sie printf '\e[0m'
alle Attribute zurücksetzen:
Antwort2
Informationen wie gefunden aufdiese Seite, ohne Vorschauspalte:
Sequenzen bestehen aus dem Escape-Zeichen (oft dargestellt durch „ ^[
“ oder „ <Esc>
“), gefolgt von einigen anderen Zeichen: „ ^[FCm
“ (wobei FC
eine der Zahlen in der Aufzählungsliste unten ist).
In kann bash
der EscCode einer der folgenden sein:
\e
\033
(Oktal)\x1B
(hexadezimal)
Anmerkung 1:Die \e[0m
Sequenz " " entfernt alle Attribute (Formatierung und Farben). Es kann sinnvoll sein, sie am Ende jedes farbigen Textes hinzuzufügen.
Anmerkung 2:Vordergrund- und Hintergrundfarben können je nach Konfiguration des Terminals variieren undnicht alle Farben werden unterstützt.
Setzen/Zurücksetzen
0
: Alle Modifikator-, Vordergrund- und Hintergrundattribute zurücksetzen/entfernen:echo -e "\e[0mNormal Text"
1
: Fett/Hell:echo -e "Normal \e[1mBold"
2
: Schwach:echo -e "Normal \e[2mDim"
4
: Unterstrichen:echo -e "Normal \e[4mUnderlined"
5
: Blinken (funktioniert in den meisten Terminals außer XTerm nicht):echo -e "Normal \e[5mBlink"
7
: Umkehren/Invertieren:echo -e "Normal \e[7minverted"
8
: Versteckt (nützlich für vertrauliche Informationen):echo -e "Normal \e[8mHidden Input"
21
: Fett/Hell zurücksetzen/entfernen:echo -e "Normal \e[1mBold \e[21mNormal"
22
: Dimmen zurücksetzen/entfernen:echo -e "Normal \e[2mDim \e[22mNormal"
24
: Unterstreichung zurücksetzen/entfernen:echo -e "Normal \e[4mUnderlined \e[24mNormal"
25
: Zurücksetzen/Entfernen blinken:echo -e "Normal \e[5mBlink \e[25mNormal"
27
: Rückwärts/Invertieren zurücksetzen/entfernen:echo -e "Normal \e[7minverted \e[27mNormal"
28
: Versteckte zurücksetzen/entfernen:echo -e "Normal \e[8mHidden \e[28mNormal"
Vordergrund
39
: Standard (normalerweise grün, weiß oder hellgrau):echo -e "Default \e[39mDefault"
30
: Schwarz:echo -e "Default \e[30mBlack"
(am besten mit einer Hintergrundfarbe kombinieren:echo -e "Default \e[30;107mBlack on white"
)31
: Rot (nicht mit grünem Hintergrund verwenden)32
: Grün33
: Gelb34
: Blau35
: Magenta/Lila36
Farbe: Cyan37
: Hellgrau90
: Dunkelgrau91
: Hellrot92
: Hellgrün93
: Hellgelb94
: Hellblau95
: Hellmagenta/Pink96
Farbe: Helles Cyan97
: Weiß
Hintergrund
49
: Standard-Hintergrundfarbe (normalerweise schwarz oder blau)40
: Schwarz41
: Rot42
: Grün43
: Gelb44
: Blau45
: Magenta/Lila46
Farbe: Cyan47
: Hellgrau (nicht mit weißem Vordergrund verwenden)100
: Dunkelgrau (nicht mit schwarzem Vordergrund verwenden)101
: Hellrot102
: Hellgrün (nicht mit weißem Vordergrund verwenden)103
: Hellgelb (nicht mit weißem Vordergrund verwenden)104
: Hellblau (nicht mit hellgelbem Vordergrund verwenden)105
: Helles Magenta/Pink (nicht mit hellem Vordergrund verwenden)106
: Helles Cyan (nicht mit weißem Vordergrund verwenden)107
: Weiß (nicht bei hellem Vordergrund verwenden)
Um sowohl die Vordergrund- als auch die Hintergrundfarbe gleichzeitig festzulegen, verwenden Sie das Formular echo -e "\e[S;FG;BGm"
. Beispiel: echo -e "\e[1;97;41m"
(fetter weißer Vordergrund auf rotem Hintergrund)
256 Farboptionen finden Sie auf der Quellseite.
Antwort3
Ändern Sie die Farben gelegentlich
Wenn die Farbe gelegentlich geändert werden soll:
Du kannst den ... benutzensettermBefehl:
setterm -term linux -back <background_colour> -fore <text_color> -clear
Bei den Farben, aus denen Sie wählen können (sowohl Vorder- als auch Hintergrund):
black|blue|green|cyan|red|magenta|yellow|white|default
für weitere Optionen:
setterm -help
Ändern Sie Ihre Profileinstellungen (Farbe)
In 14.04 habe ich keine Option gefunden, mit der ich dconf
die Farben oder das Terminal einstellen konnte. Sie können jedochgconftool
Sie müssen zuerst Ihren Profilnamen erhalten:
gconftool-2 --get /apps/gnome-terminal/global/profile_list
So legen Sie die Textfarben Ihres Profils fest:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
beispielsweise um die Textfarbe auf Weiß einzustellen
Dasselbe mit der Hintergrundfarbe:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
um beispielsweise die Hintergrundfarbe auf Schwarz einzustellen
Alternativ können Sie zum Festlegen des Namens der Farbe(n) einfach white
oder green
aus derselben Palette wie der Befehl setterm verwenden, z. B.:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
Antwort4
Die verschiedenen Farbcodes, die zur Erzielung farbiger Ausgaben verwendet werden, können auch zur Erzielung vonfarbige Hintergründe:
40 black
41 red
42 green
43 yellow
44 blue
45 magenta
46 cyan
47 white
Daher färbt der folgende Befehl meinen Hintergrund rot:
$ echo -e '\e[0;41m'
Abhängig von der Shell, dem Terminalemulator usw. benötigen Sie dies möglicherweise nicht -e
.