Je peux modifier la couleur par préférence, mais comment puis-je modifier la couleur d'arrière-plan et la couleur du texte du terminal via la ligne de commande?
command-line
color-management
TechJhola
la source
la source
dconf
. J'ai déjà écrit une réponse à une question similaire auparavant: askubuntu.com/a/628129/295286\033[00;34mFOO\033[00m
Réponses:
Sur certains terminaux compatibles XTerm / ANSI (tels que
xterm
etgnome-terminal
), vous pouvez définir des couleurs à l'aide d'une palette plus grande que la palette 8/16 couleurs par défaut (par exemple, une palette de 88 couleurs, 256 couleurs ou 16777216 couleurs). ;xterm
etgnome-terminal
supporte à la fois la palette 256 couleurs et la palette 16777216-couleurs (RGB)); gardez à l’esprit que le shell pourrait remplacer cela (c’est le cas par exemple pourzsh
).Voici un script pour répertorier les couleurs de la palette à 256 couleurs ainsi que leur code de couleur ANSI dans des terminaux compatibles XTerm / ANSI et prenant en charge une palette de 256 couleurs:
Selon que vous souhaitez appliquer la couleur au premier plan ou à l'arrière-plan, utilisez une
<fg_bg>
valeur égale à38
ou48
(respectivement) dans la commande suivante:Par exemple, pour définir la couleur d’avant-plan (
<fg_bg>
=38
) sur rouge (<ANSI_color_code>
=196
) et la couleur d’arrière-plan (<fg_bg>
=48
) sur noire (<ANSI_color_code>
=0
):Il est nécessaire de redessiner l'invite en utilisant
printf '\e[K'
pour que la couleur d'arrière-plan s'applique à toute la ligne et pour que la couleur de premier plan s'applique au curseur:La même chose peut être accomplie en utilisant des valeurs RVB au lieu des codes de couleur ANSI dans un terminal compatible; Selon que vous souhaitez appliquer la couleur au premier plan ou à l'arrière-plan, utilisez une
<fg_bg>
valeur égale à38
ou48
(respectivement) dans la commande suivante:Par exemple, pour définir la couleur de premier plan (
<fg_bg>
=38
) sur rouge (<R>
=255
,<G>
=0
,<B>
=0
) et la couleur d'arrière-plan (<fg_bg>
=48
) sur noir (<R>
=0
,<G>
=0
,<B>
=0
):De nouveau, il est nécessaire de redessiner l’invite en utilisant
printf '\e[K'
pour que la couleur d’arrière-plan s’applique à l’ensemble de la ligne et pour que la couleur d’avant-plan s’applique au curseur:En utilisant l’une ou l’autre des méthodes, vous pouvez utiliser
printf '\e[0m'
pour réinitialiser tous les attributs:la source
xterm
etgnome-terminal
reconnaissent les \ e [38/48; 2; R; G; Bm séquences d'échappement de couleur vraie; cependant,xterm
arrondit la couleur réelle au plus proche dans sa palette de 256 couleurs.gnome-terminal
affiche la couleur exacte exacte donnée dans la séquence d'échappement.xterm
), si le curseur se trouve tout à fait à droite (affiché visuellement dans la colonne la plus à droite, mais logiquement déjà au-delà, puisqu'un caractère a déjà été imprimé dans la colonne la plus à droite), cette dernière lettre est effacée. Voir par exemple bugzilla.gnome.org/show_bug.cgi?id=740789 ou savannah.gnu.org/bugs/?36831 .Informations figurant sur cette page , à l'exclusion de la colonne de prévisualisation:
Les séquences sont composées du caractère d'échappement (souvent représenté par ”
^[
” ou ”<Esc>
”) suivi de quelques autres caractères: ”^[FCm
” (oùFC
est l'un des numéros de la liste à puces ci-dessous).Dans
bash
, le Esccode peut être l'un des suivants:\e
\033
(octal)\x1B
(hexadécimal)Remarque 1: La
\e[0m
séquence " " supprime tous les attributs (mise en forme et couleurs). Il peut être judicieux de l’ajouter à la fin de chaque texte coloré.Remarque 2: les couleurs de premier plan et d'arrière-plan peuvent varier en fonction de la configuration du terminal. Toutes les couleurs ne sont pas prises en charge .
Définir / Réinitialiser
0
: Réinitialiser / supprimer tous les attributs modificateur, avant-plan et arrière-plan:echo -e "\e[0mNormal Text"
1
: Audacieux / brillant:echo -e "Normal \e[1mBold"
2
: Dim:echo -e "Normal \e[2mDim"
4
: Souligné:echo -e "Normal \e[4mUnderlined"
5
: Clignote (ne fonctionne pas dans la plupart des terminaux sauf XTerm):echo -e "Normal \e[5mBlink"
7
: Inverser / Inverser:echo -e "Normal \e[7minverted"
8
: Caché (utile pour les informations sensibles):echo -e "Normal \e[8mHidden Input"
21
: Réinitialiser / Supprimer gras / clair:echo -e "Normal \e[1mBold \e[21mNormal"
22
: Reset / Remove dim:echo -e "Normal \e[2mDim \e[22mNormal"
24
: Réinitialiser / Supprimer le soulignement:echo -e "Normal \e[4mUnderlined \e[24mNormal"
25
: Réinitialiser / Supprimer clignotement:echo -e "Normal \e[5mBlink \e[25mNormal"
27
: Réinitialiser / Supprimer inverser / inverser:echo -e "Normal \e[7minverted \e[27mNormal"
28
: Réinitialiser / Supprimer masqué:echo -e "Normal \e[8mHidden \e[28mNormal"
Premier plan
39
: Par défaut (généralement vert, blanc ou gris clair):echo -e "Default \e[39mDefault"
30
: Noir:echo -e "Default \e[30mBlack"
(meilleur combiné avec une couleur de fond:echo -e "Default \e[30;107mBlack on white"
)31
: Rouge (ne pas utiliser avec un fond vert)32
: Vert33
: Jaune34
: Bleu35
: Magenta / Violet36
: Cyan37
: Gris clair90
: Gris foncé91
: Rouge clair92
: Vert clair93
: Jaune clair94
: Bleu clair95
: Magenta clair / rose96
: Cyan clair97
: BlancContexte
49
: Couleur de fond par défaut (généralement noir ou bleu)40
: Noir41
: Rouge42
: Vert43
: Jaune44
: Bleu45
: Magenta / Violet46
: Cyan47
: Gris clair (ne pas utiliser avec le premier plan blanc)100
: Gris foncé (ne pas utiliser avec le premier plan noir)101
: Rouge clair102
: Vert clair (ne pas utiliser avec le premier plan blanc)103
: Jaune clair (ne pas utiliser avec le premier plan blanc)104
: Bleu clair (ne pas utiliser avec un avant-plan jaune clair)105
: Magenta clair / Rose (ne pas utiliser avec un avant-plan clair)106
: Cyan clair (ne pas utiliser avec un avant-plan blanc)107
: Blanc (ne pas utiliser avec le premier plan clair)Pour définir les couleurs de premier plan et d’arrière-plan en même temps, utilisez la forme correspondante
echo -e "\e[S;FG;BGm"
. Par exemple:echo -e "\e[1;97;41m"
(avant-plan blanc gras sur fond rouge)Pour les options de 256 couleurs, voir la page source.
la source
Changer les couleurs sur une base accidentelle
S'il est censé changer de couleur occasionnellement :
Vous pouvez utiliser la commande setterm :
parmi les couleurs, vous pouvez choisir (avant et arrière plan):
pour plus d'options:
Modifier vos paramètres de profil (couleur)
En 14.04, je ne trouvais pas d’option à utiliser
dconf
pour définir les couleurs ou le terminal. Vous pouvez cependant utilisergconftool
Vous devez d'abord obtenir votre nom de profil:
Ensuite, pour définir les couleurs du texte de votre profil:
par exemple pour définir la couleur du texte en blanc
La même chose avec la couleur de fond:
par exemple pour définir la couleur d'arrière-plan sur noir
Alternativement, pour définir le nom de la ou des couleurs, vous pouvez simplement utiliser
white
ougreen
, à partir de la même palette que la commande setterm, par exemple:la source
dconf write /org/gnome/terminal/legacy/profiles:/:<profile_id>/background-color "'rgb(0,0,0)'"
fait le tour.gconftool-2
(pour Ubuntu 14.04 et peut - être quelques versions suivantes) oudconf
ougsettings
sur les versions plus récentes des paramètres de changement Ubuntu gnome-terminaux, et prennent effet immédiat sur tous les onglets et fenêtres du même profil. Je ne pense pas que OP recherchait ce comportement.Les divers codes de couleur utilisés pour obtenir une sortie en couleur peuvent également être utilisés pour obtenir des arrière - plans en couleur :
Par conséquent, la commande suivante transforme mon arrière-plan en rouge:
Selon le shell, l'émulateur de terminal, etc., vous n'aurez peut-être pas besoin de
-e
.la source
Voir la réponse de kos pour changer le premier plan ou l'arrière-plan en une couleur particulière de la palette, ou même une couleur RVB directe dans certains terminaux. L'effet d'une telle séquence dure jusqu'à ce qu'une couleur différente soit sélectionnée (ou redevienne la valeur par défaut).
Une autre approche, prise en charge par certains émulateurs de terminal, consiste à redéfinir les valeurs RVB exactes des couleurs de fond et d'arrière-plan par défaut du terminal à l' aide des séquences d'échappement OSC 10/11:
Cela risque de durer beaucoup plus longtemps (jusqu'à ce qu'il soit remplacé par un autre OSC 10/11 ou réinitialisé via l'OSC 110/111), mais contrairement à l'approche dconf, cela n'affecte que le terminal actuel.
la source