Colorido terminal o consola?

8

Me encantan los colores en mi consola, y me pregunto si hay alguna forma de obtener un terminal (supongo que solo un software puede hacerlo) imprimiendo casi todo en colores. Por supuesto que están las --color=autocosas, pero funciona para algunos comandos ( ls, grep...?). Lo que quisiera, es algo mucho más colorido, que funcione también para comandos que no están hechos para usar colores, no sé si es posible.

Por ejemplo, hay MobaXTerm para Windows (algo así como Cygwin) que usa mucho color. Por supuesto, no es solo un terminal, sino un software completo (otra capa) ... ¿tal vez es la única forma de colorear algo en serio?

Cualquier pista sería muy apreciada.

Guillaume Fenollar
fuente
Gracias chicos por sus respuestas, pero eso no es realmente lo que estoy buscando. Quisiera algo que no necesite cambiar mis hábitos. Como un software de terminal que aplica color a la salida ...
Guillaume Fenollar
1
¿Qué hay de una concha? Echar un vistazo a fishla consola interactiva amigable .
manatwork

Respuestas:

6

Gracias a todos por todas las respuestas, pero nadie satisfizo mis necesidades. Quería algo no intrusivo, y lo encontré en cw. Este es un buen software que debe agregar al comienzo de su RUTA. Por supuesto, no funciona con todos los comandos (solo los que ya están definidos), ¡pero el resultado se ve muy bien! Compruébalo si estás interesado: http://freecode.com/projects/cw

Guillaume Fenollar
fuente
3

También puede usar hacer frente para esto.

cope es un envoltorio alrededor de los programas que se envían a un terminal, para darles color por su utilidad y estética mientras los mantiene igual a nivel de texto.
jasonwryan
fuente
Gracias por esa solución. Es casi lo mismo que 'cw', excepto que, IMO, cw es más fácil de instalar. Pero son los mismos colores y casi los mismos campos resaltados. Además, cw tiene casi un centenar de comandos posibles, mientras que cope tiene ~ 40.
Guillaume Fenollar
1

Algo que he hecho a menudo es canalizar la salida de comandos o archivos de registro que no usan el color a través de un pequeño script que los colorea de acuerdo con las reglas que coinciden con cierto texto. Perl es particularmente bueno en esto.

Aquí hay un pequeño ejemplo:

#!/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";
}

Guarda esto como colourizeen algún lugar de tu PATH, chmod +xy puedes hacer cosas como

command | colourize WARNING 31

para tener todas las líneas que contienen ADVERTENCIA impresas en rojo. El número 31 es el código de color ANSI para el rojo.

Bristol
fuente
0

Primero, con respecto a los colores en general, este script puede interesarle. Funciona bien en la consola (en una terminal, el ancho de la pestaña no se configura correctamente).

#!/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"

En segundo lugar, puedes hacer mucho más con ls que solo --color=auto. Pero, requiere un poco de trabajo para resolver todo. Escribí un script para facilitar la comprensión, así como para colorear los archivos (en función de sus extensiones) de manera sistemática.

Si es demasiado largo para pegarlo, échale un vistazo aquí .

#!/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
fuente
0

Hay una buena publicación de blog sobre colorear el terminal . Excepto por usar el soporte de color incorporado en diferentes herramientas que recomienda grc, el Colouriser genérico . Si está en un sistema basado en Debian, puede instalarlo a través de

sudo apt-get install grc

Luego puede usar dar un comando que desee colorear como argumento para grc, por ejemplo,

grc head /var/log/syslog

Esto se basa en la configuración en /etc/grc.conf para poder elegir un archivo de configuración adecuado para colorear head /var/log/syslog. En este caso, funciona porque hay líneas en /etc/grc.conf que se dirigen grcal archivo de configuración correcto, es decir, conf.log.

Si se quiere forzar un archivo de configuración particular en una salida particular, se puede usar grcat, p. Ej.

git diff | grcat conf.diff

que colorea la salida de git diffcon el archivo de configuración conf.diff. Los archivos de configuración que he mencionado son los predeterminados que vienen con los paquetes, pero uno obviamente puede hacer sus propias configuraciones.

NN
fuente