Setzen/Zurücksetzen

Setzen/Zurücksetzen

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 xtermund 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 xtermund gnome-terminalunterstü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

Screenshot1

Bildschirmfoto

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 38bzw .: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'

Screenshot3

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 :

Screenshot4

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 38bzw. :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'

Screenshot5

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:

Screenshot6

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

Screenshot7

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 FCeine der Zahlen in der Aufzählungsliste unten ist).

In kann bashder EscCode einer der folgenden sein:

  1. \e
  2. \033(Oktal)
  3. \x1B(hexadezimal)

Anmerkung 1:Die \e[0mSequenz " " 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ün
  • 33: Gelb
  • 34: Blau
  • 35: Magenta/Lila
  • 36Farbe: Cyan
  • 37: Hellgrau
  • 90: Dunkelgrau
  • 91: Hellrot
  • 92: Hellgrün
  • 93: Hellgelb
  • 94: Hellblau
  • 95: Hellmagenta/Pink
  • 96Farbe: Helles Cyan
  • 97: Weiß

Hintergrund

  • 49: Standard-Hintergrundfarbe (normalerweise schwarz oder blau)
  • 40: Schwarz
  • 41: Rot
  • 42: Grün
  • 43: Gelb
  • 44: Blau
  • 45: Magenta/Lila
  • 46Farbe: Cyan
  • 47: Hellgrau (nicht mit weißem Vordergrund verwenden)
  • 100: Dunkelgrau (nicht mit schwarzem Vordergrund verwenden)
  • 101: Hellrot
  • 102: 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 dconfdie 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 whiteoder greenaus 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.

verwandte Informationen