GNU/Linux >> Tutoriels Linux >  >> Linux

Couleur différente pour la commande et la sortie

Vous pouvez transmettre la sortie à un programme qui effectue la coloration. Par exemple, il existe des programmes comme pycolor :

pycolor module.py

Pour créer le vôtre :

red="$(tput setaf 1)"
reset="$(tput sgr0)"
echo $'foo\nbar' | sed -e "s/\(bar\)/$red\1$reset/"

En savoir plus sur la sortie couleur.


Pas vraiment; la couleur de la sortie d'un programme donné est contrôlée par la commande, pas par le terminal.

Cela dit, en supposant que votre terminal comprenne les codes d'échappement ANSI pour la couleur (la plupart le font), vous pouvez utiliser des codes d'échappement pour définir la couleur d'invite souhaitée au début de l'invite et la couleur de sortie souhaitée à la fin ; cela se traduirait par le fait que vos lignes de commande seraient également dans la couleur que vous avez définie pour la sortie, mais c'est probablement à peu près aussi proche que vous allez arriver à ce que vous recherchez. Par exemple, ce qui suit :

$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '

vous donnera une invite qui ressemble à :

[email protected]:wd $ _

avec 'user' et 'host' en violet, 'wd' (votre cwd) en marron (jaune foncé), et tout après le '$' dans tout ce que votre terminal utilise pour le bleu clair. (Un xterm par défaut affichera ceci en cyan ; gnome-terminal semble par défaut utiliser une jolie nuance de bleu bleuet.)

Le code de couleur réel, tel que spécifié dans le format nécessaire pour bash, est, par exemple, \[\033[00;35m\] , où 00;35 est la spécification de couleur réelle ; le premier 00 change rarement, mais peut produire des effets IIRC gras (01), souligné (??) et vidéo inversée (??), tandis que le "35" final est la couleur réelle, qui dans ce cas est violet.

Il est étonnamment difficile de trouver une liste décente de codes de couleurs ANSI, mais les couleurs de premier plan vont de 30 à 37 et celles d'arrière-plan de 40 à 47, comme suit :

color        fg  bg
black        30  40
red          31  41
green        32  42
yellow       33  43
blue         34  44
purple       35  45
cyan         36  46
gray/white   37  47

N'oubliez pas que, puisque vous définissez une couleur par défaut pour tout ce qui suit votre invite, les programmes que vous exécutez et qui ne définissent pas leurs propres couleurs via des codes d'échappement prendront cette couleur -- par exemple, si vous exécutez un pager, vous verrez probablement sa sortie dans la même couleur que celle que vous avez définie pour les autres commandes. Pendant ce temps, les commandes qui font définir leurs propres couleurs via des codes d'échappement ignorera entièrement vos efforts.


Oui, cela fonctionne pour bash, sur linux et mac OS au moins.

Tout d'abord, définissez certaines variables d'attribut et l'invite PS1 pour laisser le terminal défini avec les attributs de ligne de commande souhaités, par exemple :

bold="\[$(tput bold)\]"
none="$(tput sgr0)"
export PS1="\$ $bold"

Ensuite, utilisez le piège bash DEBUG, qui est exécuté juste avant chaque commande, pour modifier les attributs de texte pour la sortie de la commande :

trap 'echo -ne "${none}"' DEBUG

Linux
  1. 10 tutoriels de commande Linux pour débutants et experts

  2. Tutoriel de commande Linux pinky pour débutants (8 exemples)

  3. Affichage de la sortie complète de la commande PS

  4. Convertir une sortie en chaîne

  5. docker :PID différent pour `top` et `ps`

Comment changer la couleur de sortie de 'Echo' sous Linux

Comment lire la sortie et les utilisations de la commande Linux Top

50 commandes grep productives et pratiques pour les passionnés de Linux

Tutoriels et exemples de commande Linux Head pour les débutants

Explication :Redirection des entrées, des sorties et des erreurs sous Linux

Comment coloriser la sortie Diff pour une meilleure vue