Je me demandais s'il était possible de changer la couleur de la sortie d'une commande sous linux en une couleur différente de celle de la ligne de commande où je tape. Il est som monotone et difficile de trouver où commence la sortie. comme,
@USER/Destop$ ----> blue
/*
--------------
output file in white
-----------
*/
Merci
preexec () { echo -n "\\e[40;34m" }
; laprecmd
fonction est IMHO pas nécessaire, il semble que zsh réinitialise la couleur elle-même avant d'afficher l'invite. Mais cela ne fonctionne que pour les commandes qui ne modifieront pas la couleur elle-même (un exemple important estls
) comme l'a souligné Aaron. Aveccat
,bc
, commandes shell, builtin etc. (mêmealpine
) , cela fonctionne très bien."\\e[40;34m"
à la fin de monPROMPT
var, et l' ai remis en blanc avecpreexec () { echo -n "\\e[40;37m" }
...zle_highlight=(default:fg=cyan)
une version récente de zsh. Zsh propose également une coloration dynamique, commefish
; voir la section POINTS SAILLANTS DU PERSONNAGE dans man zshzle.Réponses:
Pas vraiment; la couleur de la sortie d'un programme donné est contrôlée par la commande et non par le terminal.
Cela dit, en supposant que votre terminal comprend 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 entraînerait que vos lignes de commande soient également de la couleur que vous définissez pour la sortie, mais c'est probablement à peu près aussi proche que vous allez obtenir ce que vous recherchez. Par exemple, les éléments suivants:
vous donnera une invite qui ressemble à:
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 rendra cela en cyan; gnome-terminal semble avoir par défaut une assez belle nuance de 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; le00
début change rarement, mais peut produire des effets gras (01), souligné (??) et inversé vidéo (??) IIRC, tandis que le '35' de fin est la couleur réelle, qui dans ce cas est le violet.Il est étonnamment difficile de trouver une liste décente de codes de couleur ANSI, mais les couleurs de premier plan vont de 30 à 37 et celles de fond de 40 à 47, comme suit:
Gardez à l'esprit que, puisque vous définissez une couleur par défaut pour tout ce qui suit votre invite, les programmes que vous exécutez qui ne définissent pas leurs propres couleurs via les codes d'échappement vont prendre 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 ne fixent leurs propres couleurs via des codes d'échappement ignorent entièrement vos efforts.
la source
tput
est beaucoup plus lisible pour la colorisation. Par exemple, mon invite (en bash) est celleexport PS1="[\t \[$(tput setaf 9)\]\u\[$(tput setaf 15)\]@\[$(tput setaf 12)\]\h \[$(tput sgr0)\]\w ] \$ "
qui affiche l'heure, puis le nom d'utilisateur dans une couleur,@
dans une autre et le nom d'hôte dans une troisième (rouge, blanc et bleu pour le moment), puis imprime le PWD et$
. Il est très facile de voir d'un coup d'œil où se trouvent les lignes d'invite lorsque vous faites défiler l'historique.~/.bashrc
; recherchez la ligne où il définit PS1, qui est votre chaîne d'invite, et modifiez-la comme décrit dans la réponse. Ce qui change dépend de la façon dont votre chaîne d'invite est configurée, mais la plupart des détails saillants sont dans ma réponse, et le reste peut être trouvé en faisant un peu de recherche sur Google. Je ne suis pas sûr de ce que vous entendez par "y a-t-il un moyen de garder le dernier identique à la couleur d'avant?"Vous pouvez passer la sortie à un programme qui fait la coloration. Par exemple, il existe des programmes comme
pycolor
:Pour construire le vôtre:
Plus d'informations sur la sortie couleur.
la source
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 avec les attributs de ligne de commande souhaités, par exemple:
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:
la source
Une autre alternative (sur une base de commande par commande) est grc - colorizer générique. Il faut un peu de travail pour configurer les expressions régulières qu'il utilise pour coloriser les choses. Je l'ai découvert ici:
/unix/8414/how-to-have-tail-f-show-colored-output?newsletter=1&nlcode=17737|321c
et ici:
/unix/26313/colored-find-output
Je ne suis pas un flash avec des expressions régulières, donc je n'ai pas beaucoup travaillé avec ces commandes.
la source
Jetez-les dans votre fichier .bashrc, puis sourcez le fichier après l'avoir enregistré.
Une fois cela fait, vous pouvez ensuite utiliser n'importe lequel de ces éléments dans votre terminal de manière permanente ou jusqu'à ce que vous commentiez les variables ou les supprimiez complètement. Vous pouvez les utiliser dans des scripts sur votre machine ou avec une substitution de commande ou autre. Voici un exemple suivant de la façon dont je les utilise personnellement:
Je les utilise généralement avec des commandes individuelles
echo
et / ouprintf
mais vous pouvez les utiliser pour coloriser d'autres commandes comme laping
commande. Ajoutez ce qui suit.bashrc
pour obtenir les effets. Ensuite, sourcez votre.bashrc
fichier et exécutez lacping
commande à utiliserping
avec du texte violet. Vous pouvez définir chaque fonction de commande pour utiliser n'importe quelle couleur prise en charge par votre terminal.Puis essayez:
Votre sortie pour
cping
sera violette. Si vous souhaitez utiliser plusieurs couleurs dans la même sortie, vous pouvez les ajouter de manière unique. La façon dont vous le faites dépend entièrement de vous. Par exemple:la source
Vous devriez jeter un œil à la commande hl disponible sur git hub:
github: git clone http://github.com/mbornet-hl/hl
et sur:
http://www.flashnux.com/notes/page_000022_US.html
hl est une commande linux écrite en C, spécialement conçue pour colorer un fichier texte ou la sortie d'une commande. Vous pouvez utiliser jusqu'à 42 couleurs simultanément et utiliser un fichier de configuration pour simplifier les lignes de commande. Vous pouvez coloriser la sortie de chaque commande pouvant être redirigée vers une autre. Et si vous savez ce que sont les expressions régulières, il vous sera très facile de les utiliser. Vous pouvez utiliser la page de manuel pour comprendre comment l'utiliser.
la source