J'ai utilisé plusieurs couleurs dans mon invite PS1, telles que
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Où puis-je trouver une liste des codes de couleur que je peux utiliser?
J'ai consulté Colorize Bash Console Color mais cela ne répondait pas à ma question sur une liste des codes réels.
Ce serait bien s'il y avait aussi une forme plus lisible.
\]
ici ne fait en réalité pas partie de la séquence de couleurs; cela sert à définir précisément les invites (j'ai ajouté quelques paragraphes à la fin de ma réponse à ce sujet). "Ce serait bien s'il y avait aussi une forme plus lisible." -> le couper-coller dans votre propre réponse est un moyen de le faire.Réponses:
Ce sont des séquences d'échappement ANSI ; Ce lien renvoie à un tableau de codes de couleur, mais il y a aussi d'autres choses intéressantes sur cette page Wikipedia. Tous ne fonctionnent pas (par exemple) sur une console Linux normale.
Ceci est une erreur:
0
réinitialise le terminal à ses paramètres par défaut (ce qui est probablement blanc). Le code réel pour le premier plan blanc est 37. En outre, l'accolade fermante à la fin (\]
) ne fait pas partie de la séquence de couleurs (voir les derniers paragraphes ci-dessous pour une explication de leur rôle dans la définition d'une invite).Notez que certains terminaux graphiques vous permettent de spécifier un jeu de couleurs personnalisé. Cela affectera la sortie.
Il y a une liste ici qui ajoute 7 couleurs de premier plan et 7 couleurs de fond que je n'avais pas vues auparavant, mais elles semblent fonctionner:
De plus, si vous avez un terminal graphique 256 couleurs (je pense que la plupart d’entre eux sont maintenant), vous pouvez appliquer les couleurs de ce tableau:
La séquence ANSI pour les sélectionner, en utilisant le numéro dans le coin inférieur gauche, commence
38;5;
pour le premier plan et48;5;
pour l’arrière-plan, puis le numéro de couleur, par exemple:Me donne un orange clair sur le bronzage (ce qui signifie que le nuancier est approximativement approximatif).
Vous pouvez voir les couleurs dans ce tableau 1 telles qu’elles apparaissent sur votre terminal assez facilement:
La sortie est explicite.
Certains systèmes définissent la variable $ TERM sur
xterm-256color
si vous êtes sur un terminal 256 couleurs via un code shell dans/etc/profile
. Sur d'autres, vous devriez pouvoir configurer votre terminal pour l'utiliser. Cela permettra aux applications TUI de savoir qu'il existe 256 couleurs et vous permettra d'ajouter quelque chose comme ceci à votre~/.bashrc
:Attention, lorsque vous utilisez des séquences d'échappement de couleurs dans votre invite, vous devez les placer entre
\
crochets ( préfixés), comme suit:Remarquez que l'
[
intérieur de la séquence de couleurs n'est pas échappé, mais ceux qui le sont sont. Ce dernier a pour but d’indiquer au shell que la séquence incluse ne compte pas dans la longueur de caractère de l’invite. Si ce compte est erroné, des choses étranges se produiront lorsque vous remonterez dans l'historique. Par exemple, s'il est trop long, la longueur excessive de la dernière chaîne défilée apparaîtra attachée à votre invite et vous ne pourrez plus revenir en arrière. il (il est ignoré de la même manière que l'invite).Notez également que si vous souhaitez inclure la sortie d'une commande exécutée chaque fois que l'invite est utilisée (par opposition à une seule fois lorsque l'invite est définie), vous devez la définir en tant que chaîne littérale avec des guillemets simples, par exemple:
Bien que ce ne soit pas un bon exemple si vous préférez utiliser les évasions spéciales
\d
ou\D{format}
rapides de bash - qui ne sont pas le sujet de la question, vous pouvez les trouver dans lesman bash
paragraphes suivantsPROMPTING
. Il existe diverses autres sorties utiles, telles que celles\w
du répertoire en cours,\u
de l'utilisateur actuel, etc.1. La partie principale de ce graphique, couleurs 16 à 231 (notez qu’elles ne sont pas numérotées), correspond à un cube de couleurs RVB de 6 x 6 x 6. "Cube de couleur" fait référence au fait qu'un espace colorimétrique RVB peut être représenté à l'aide d'un tableau tridimensionnel (un axe pour le rouge, un pour le vert et un pour le bleu). Ici, chaque couleur du cube peut être représentée sous forme de coordonnées dans un tableau de 6 x 6 x 6, et l'index dans le graphique est calculé comme suit:
La première couleur du cube, à l’index 16 du graphique, est le noir (RVB 0, 0, 0). Vous pouvez utiliser cette formule dans un script shell:
la source
echo
rien d'autre qu'un texte littéral qui ne commence pas par un tiret (-
). C'est unportable. Toutes les implémentations courantes violent le standard qui stipule qu'aucune option ne doit être prise en charge. Pire, ils sont incompatibles. Vous devriez utiliser à laprintf
place. (Et ne pas incorporer de variables dans les instructions printf, utilisez%s
.)colortest-256
listez la palette xterm dans une belle forme compacte. (apt-get install colortest
si manquant)On dirait qu'au moins une partie de la liste est:
basé sur https://wiki.archlinux.org/index.php/Color_Bash_Prompt
la source
J'ai écrit une fonction bash qui peut vous montrer toutes les couleurs, si cela peut vous aider.
Vous pouvez lancer cela dans un fichier .bashrc / .bash_profile / .bash_aliases ou l'enregistrer en tant que script et l'exécuter de cette façon. Vous pouvez utiliser les couleurs pour changer de couleur comme je le faisais avec mon nom ci-dessous.
colorgrid () sorties:
J'ai changé mon nom dans mon fichier .bash_profile en procédant comme suit:
Notez que le préfixe 01 dans une chaîne comme le
\[\033[01;38;5;214m\]a
définit en gras.la source
Un autre script comme celui posté par TAFKA "goldilocks" pour afficher des couleurs, ce qui est peut-être un peu plus pratique à des fins de référence:
Cela devrait dimensionner correctement pour le terminal que vous utilisez. C'est un peu exagéré à cet égard, mais vous pouvez maintenant contrôler de nombreux aspects de la façon dont cela s’affiche via des paramètres. Espérons qu'ils s'expliquent d'eux-mêmes.
la source
la source