Terminal ou console coloré?

8

J'adore les couleurs dans ma console et je me demande s'il existe un moyen d'obtenir un terminal (je suppose que seul un logiciel est capable de le faire) imprimant presque tout en couleurs. Bien sûr qu'il y a les --color=autochoses, mais ça marche pour quelques commandes ( ls, grep...?). Ce que je voudrais, c'est quelque chose de beaucoup plus coloré, qui fonctionne aussi pour les commandes qui ne sont pas faites pour utiliser des couleurs, je ne sais pas si c'est possible.

Par exemple, il existe MobaXTerm pour Windows (quelque chose comme Cygwin) qui utilise beaucoup de couleurs. Bien sûr, ce n'est pas seulement un terminal, mais un logiciel complet (une autre couche) ... c'est peut-être le seul moyen de coloriser sérieusement quelque chose?

Tout indice serait vraiment apprécié.

Guillaume Fenollar
la source
2
Voir Sortie de surbrillance des couleurs basée sur l'expression régulière dans le shell sur StackOverflow.
manatwork
Merci les gars pour vos réponses, mais ce n'est vraiment pas ce que je recherche. Je voudrais quelque chose qui n'a pas besoin de changer mes habitudes. Comme un logiciel de terminal qui applique des couleurs à la sortie ...
Guillaume Fenollar
1
Et une coquille? Jetez un oeil à fish, le shell interactif convivial .
manatwork

Réponses:

6

Merci les gars pour toutes les réponses, mais personne ne correspondait à mes besoins. Je voulais quelque chose de non intrusif et je l'ai trouvé en CW. C'est un joli soft que vous devez ajouter au début de votre PATH. Alors bien sûr, cela ne fonctionne pas avec toutes les commandes (seulement celles déjà définies), mais le résultat est très joli! Vérifiez-le si vous êtes intéressé: http://freecode.com/projects/cw

Guillaume Fenollar
la source
3

Vous pouvez également utiliser cope pour cela.

cope est un wrapper autour des programmes qui sortent vers un terminal, pour leur donner de la couleur pour l'utilité et l'esthétique tout en les gardant les mêmes au niveau du texte.
jasonwryan
la source
Merci pour cette solution. C'est presque la même chose que 'cw', sauf que, OMI, cw est plus facile à installer. Mais ce sont les mêmes couleurs et presque les mêmes champs qui ressortent. De plus, cw a presque une centaine de commandes possibles, alors que cope en a ~ 40.
Guillaume Fenollar
1

Quelque chose que j'ai souvent fait est de diriger la sortie des commandes ou des fichiers journaux qui n'utilisent pas eux-mêmes la couleur via un petit script qui les colorise selon des règles correspondant à certains textes. Perl est particulièrement doué pour cela.

Voici un petit exemple:

#!/usr/bin/perl -n

BEGIN {
  $exp = shift @ARGV;
  $color = shift @ARGV;
  die "Use: colourize regexp colour" unless $color;
}

if (/$exp/) {
  print"\e[${color}m";
}

print;

if (/$exp/) {
  print "\e[0m";
}

Enregistrez cela comme colourizequelque part dans votre PATH, chmod +xet vous pouvez faire des choses comme

command | colourize WARNING 31

pour que toutes les lignes contenant WARNING soient imprimées en rouge. Le nombre 31 est le code couleur ANSI pour le rouge.

Bristol
la source
0

Tout d'abord, concernant les couleurs en général, ce script pourrait vous intéresser. Cela fonctionne bien dans la console (dans un terminal, la largeur de tabulation n'est pas définie correctement).

#!/bin/bash

setterm -regtabs 4
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)

tput setaf 4
tput setab 7
echo -n "            normal             "
tput sgr0

echo -n " "

tput setaf 7
tput setab 4   
echo "            bright             "

tput sgr0
for cmd in sgr0 bold
do
    tput $cmd
    for m in 0 1 2 3 4 5 6 7
    do
        tput setaf $m
        echo -n ${Color_arr[$m]}" "
    done
done
echo

tput sgr0
cat /sys/module/vt/parameters/default_red \
    /sys/module/vt/parameters/default_grn \
    /sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
    sed s/^0/" "/g | \
    tr "," "\t"

Deuxièmement, vous pouvez faire beaucoup plus avec ls que juste --color=auto. Mais, il faut du travail pour tout régler. J'ai écrit un script pour faciliter la compréhension, ainsi que pour coloriser les fichiers (en fonction de leurs extensions) de manière systématique.

S'il est trop long pour être collé, vérifiez-le ici .

#!/bin/bash

# must be sourced

# see `man dircolors`
# in particular `dircolors -p > coldb.txt` (-p, --print-database)

# attributes
# 00 = none
# 01 = bold (bright)
# 04 = underscore (white; disables color code)
# 05 = blink (gray background)
# 07 = reverse (color as background)
# 08 = concealed (doesn't do anything)

# colors
R='00;31' # red
G='00;32' # green
Y='00;33' # yellow (brown in my console)
B='00;34' # blue
M='00;35' # magenta
C='00;36' # cyan
W='00;37' # white

# bold (bright)
BR='01;31' # red
BG='01;32' # green
BY='01;33' # yellow
BB='01;34' # blue
BM='01;35' # magenta
BC='01;36' # cyan
BW='01;37' # white

# for di (below) and possible some others
BL='00;30' # black
GR='01;30' # gray

# background
BGBL='40' # blue
BGRE='41' # red
BGGR='42' # green
BGYE='43' # yellow
BGBL='44' # blue
BGMA='45' # magenta
BGCY='46' # cyan
BGWH='47' # white

RS="rs=0"         # reset
DI="di=$BB"       # directory
LN="ln=$C"        # link
MH="mh=00"        # multihardlink (file with more than one link)
PI="pi=$BY;$BGBL" # pipe (FIFO)
SO="so=$BM"       # socket
DO="do=$BM"       # door
BD="bd=$BY;$GBBL" # block device driver
CD="cd=$BY;$BGBL" # character device driver
OR="or=$BR"       # symlink to nonexistent (or non-stat'able) file
SU="su=$W;$BGRE"  # file that is setuid (u+s)
SG="sg=$BL;$BGYE" # file that is setgid (g+s)
CA="ca=$BL;$BGRE" # file with capability
TW="tw=$BL;$BGGR" # dir that is sticky and other-writable (+t,o+w)
OW="ow=$BB;$BGGR" # dir that is other-writable (o+w) and not sticky
ST="st=$BW;$BGBL" # sticky bit dir (+t) and not other-writable
EX="ex=$BG"       # file with execute permission

ARCHIVE="*.tar=$BR:*.tgz=$BR:*.arj=$BR:*.taz=$BR:*.lzh=$BR:*.lzma=$BR:*.tlz=$BR:*.txz=$BR:*.zip=$BR:*.z=$BR:*.Z=$BR:*.dz=$BR:*.gz=$BR:*.lz=$BR:*.xz=$BR:*.bz2=$BR:*.bz=$BR:*.tbz=$BR:*.tbz2=$BR:*.tz=$BR:*.deb=$BR:*.rpm=$BR:*.jar=$BR:*.war=$BR:*.ear=$BR:*.sar=$BR:*.rar=$BR:*.ace=$BR:*.zoo=$BR:*.cpio=$BR:*.7z=$BR:*.rz=$BR"
IMAGE="*.jpg=$BM:*.jpeg=$BM:*.gif=$BM:*.bmp=$BM:*.pbm=$BM:*.pgm=$BM:*.ppm=$BM:*.tga=$BM:*.xbm=$BM:*.xpm=$BM:*.tif=$BM:*.tiff=$BM:*.png=$BM:*.svg=$BM:*.svgz=$BM:*.mng=$BM:*.pcx=$BM"
MOVIE="*.mov=$M:*.mpg=$M:*.mpeg=$M:*.m2v=$M:*.mkv=$M:*.webm=$M:*.ogm=$M:*.mp4=$M:*.m4v=$M:*.mp4v=$M:*.vob=$M:*.qt=$M:*.nuv=$M:*.wmv=$M:*.asf=$M:*.rm=$M:*.rmvb=$M:*.flc=$M:*.avi=$M:*.fli=$M:*.flv=$M:*.gl=$M:*.dl=$M:*.xcf=$M:*.xwd=$M:*.yuv=$M:*.cgm=$M:*.emf=$M:*.axv=$M:*.anx=$M:*.ogv=$M:*.ogx=$M"
AUDIO="*.aac=$BM:*.au=$BM:*.flac=$BM:*.mid=$BM:*.midi=$BM:*.mka=$BM:*.mp3=$BM:*.mpc=$BM:*.ogg=$BM:*.ra=$BM:*.wav=$BM:*.axa=$BM:*.oga=$BM:*.spx=$BM:*.xspf=$BM:"
SOURCE="*.el=$BC:*.c=$BC:*.cpp=$BC"
TEXT="*.txt=$BW"
PDF="*.pdf=$R"
WEB="*.html=$Y:*.htm=$Y:*.css=$W;$BGMA"

TYPES="$ARCHIVE:$IMAGE:$MOVIE:$AUDIO:$SOURCE:$TEXT:$PDF:$WEB"

LS_COLORS="$RS:$DI:$LN:$MH:$PI:$SO:$DO:$BD:$CD:$OR:$SU:$SG:$CA:$TW:$OW:$ST:$EX:"$TYPES

export LS_COLORS
Emanuel Berg
la source
0

Il y a un joli billet de blog sur la colorisation du terminal . À l'exception de l'utilisation d'un support de couleur intégré dans différents outils qu'il recommande grc, le coloriseur générique . Si vous êtes sur un système basé sur Debian, vous pouvez l'installer via

sudo apt-get install grc

Vous pouvez ensuite utiliser donner une commande que vous souhaitez coloriser comme argument grc, par exemple

grc head /var/log/syslog

Cela dépend de la configuration dans /etc/grc.conf étant en mesure de choisir un fichier de configuration approprié pour coloriser head /var/log/syslogavec. Dans ce cas, cela fonctionne car il y a des lignes dans /etc/grc.conf qui dirigent grcvers le fichier de configuration correct, c'est-à-dire conf.log.

Si l'on veut forcer un fichier de configuration particulier sur une sortie particulière, on peut utiliser grcat, par exemple

git diff | grcat conf.diff

qui colorise la sortie de git diffavec le fichier de configuration conf.diff. Les fichiers de configuration que j'ai mentionnés sont ceux par défaut fournis avec les packages, mais on peut évidemment faire ses propres configurations.

NN
la source