Colores para el CLI
¬Article by rodolfo with 12 comments
6 Jul 2006Tener el ls con colores ya no sea novedad para la mayoría del que instala una distribución moderna de GNU/Linux, pero por qué no tener más cosas con colores. Así, en este artículo hago recuento de las configuraciones que he ido haciendo en mi CLI para tener un ambiente colorido (y útil) de trabajo; tal vez no haya mucha novedad en este artículo para algunos usuarios, pero es un ayuda memoria para cualquier futura consulta.
Colores en el prompt
En /root/.bashrc:
# Una sola linea con la siguiente definicion de variable
PS1='${debian_chroot:+($debian_chroot)}
\[\033[01;31m\]\u@\h\[\033[00m\]:
\[\033[01;34m\]\w\[\033[00m\]# ‘

y en los $HOME de los usuarios ~/.bashrc:
# Lo siguiente en una única lÃnea:
PS1='${debian_chroot:+($debian_chroot)}
\[\033[01;32m\]\u@\h\[\033[00m\]:
\[\033[01;34m\]\w\[\033[00m\]\$ ‘

Es necesario revisar el código del script .bashrc para asegurarse que la variable PS1 está exportada luego de esta definición. Esto funciona si abre ventanas desde una sesión gráfica (XWindow), si no tiene interfaz gráfica debería colocar esto en el archivo ~/.bash_login.
Vim
Existe un archivo en /etc/vim/vimrc que puede ser copiado al directorio $HOME como ~/.vimrc entonces se pueden hacer cambios que solo estarán disponibles para ese usuario:
" Vim5 and later versions support syntax highlighting.
" Uncommenting the next line enables syntax highlighting
" by default.
syntax on
" If using a dark background within the editing area and
" syntax highlighting turn on this option as well
set background=dark
sacando las comillas, se eliminan los comentarios (descomentar) y queda habilitado la sintaxis coloreada.
Grep
En el archivo ~/.bashrc o en ~/.bash_profile donde se definen los alias, agregar el siguiente:
alias grep='grep --color'

Man
Creo que no hay algo más aburrido que un man en B&N, así que colocando las siguientes definiciones de variables en ~/.bash_profile o en ~/.bashrc, ahi están esos colores!
export BLACK="\033[0;30m"
export BLUE="\033[0;34m"
export GREEN="\033[0;32m"
export CYAN="\033[0;36m"
export RED="\033[0;31m"
export PURPLE="\033[0;35m"
export BROWN="\033[0;33m"
export LIGHTGRAY="\033[0;37m"
export DARKGRAY="\033[1;30m"
export LIGHTBLUE="\033[1;34m"
export LIGHTGREEN="\033[1;32m"
export LIGHTCYAN="\033[1;36m"
export LIGHTRED="\033[1;31m"
export LIGHTPURPLE="\033[1;35m"
export YELLOW="\033[1;33m"
export WHITE="\033[1;37m"
export BLINK_BLACK="\033[5;30m"
export BLINK_BLUE="\033[5;34m"
export BLINK_GREEN="\033[5;32m"
export BLINK_CYAN="\033[5;36m"
export BLINK_RED="\033[5;31m"
export BLINK_PURPLE="\033[5;35m"
export BLINK_BROWN="\033[5;33m"
export BLINK_LIGHTGRAY="\033[5;1;37m"
export BLINK_DARKGRAY="\033[5;1;30m"
export BLINK_LIGHTBLUE="\033[5;1;34m"
export BLINK_LIGHTGREEN="\033[5;1;32m"
export BLINK_LIGHTCYAN="\033[5;1;36m"
export BLINK_LIGHTRED="\033[5;1;31m"
export BLINK_LIGHTPURPLE="\033[5;1;35m"
export BLINK_YELLOW="\033[5;33m"
export BLINK_WHITE="\033[5;37m"
export NORMAL="\033[0;0m"

Archivos de log
Hace un tiempo encontré la utilidad ccze que colorea la salida de los logs en forma “inteligente” y es útil tanto para logs de sistema, squid, postfix, apache, etc. (obviamente se instala con apt-get)

Y más…
Estoy seguro que estas no son las únicas cosas divertidas que se pueden hacer con la CLI, si alguien tiene algúna otra sugerencia están invitados a agregarla en los comentarios.


There are 12 comments. Leave a comment!
¬ tabo
#1480 Julio 6th, 2006 at 5:33
Genial lo del coloreador de grep! No conocÃa esa
¬ Pupeno
#1481 Julio 6th, 2006 at 10:06
Muy bueno, gracias!
Ahora mismo me pongo a editar mis configuraciones!
¬ Visigodo
#1482 Julio 6th, 2006 at 13:53
Espectacular, ya lo voy a poner en practica.
¬ soulse
#1483 Julio 6th, 2006 at 15:08
Los colores de gentoo
¬ Andres Tarallo
#1485 Julio 12th, 2006 at 12:02
Esta muy bueno este resumen que hiciste. En el caso de las entradas para el bashrc esta bueno hacerlas condicionales al tipo de terminal.
Cuando estudiaba en facultad de ingeniera tenias esto configurado asi, asi tu terminal se comportaba en forma consistente en los distintos sistemas que corria la facultad (solaris, linux, AIX).
No es algo que le quite el sueño a la mayoria de los usuarios de Linux.
¬ Alejandro Segovia
#1486 Julio 12th, 2006 at 23:53
Excelente!! Gracias.
¬ Arlequín
#1501 Agosto 1st, 2006 at 15:29
Che, la de los colores del prompt me genera un retorno de carro al final del prompt….
¿A nadie le pasó lo mismo?
Me conecto vía puTTY….
¬ chucknorris y charlsbronson juntos
#1659 Abril 13th, 2007 at 23:52
Hola; me ha sorprendido mucho no conocer la posibilidad de ver las man con colores, y rapidamente me he puesto a probarlo…
Seguro que basta solo con definir esas variables en el .bashrc ? Tras hacer un source y man man, no ha ocurrido nada ni en xterm ni en una tty. No falta algo mas por decir”?
PD: lo de grep puede ordenarse tb mediante la variable
GREP_OPTIONS='--color=auto'PD2: ccze es genial, para usarlo con pipes con less hay q usar la opcion Ascii de uno y R de otro:
cat /dev/stdin | ccze -AGracias por el articulo, y a ver si alguien puede aclarar lo de la man
¬ David Waszuk
#1944 Julio 4th, 2007 at 3:12
Otra opción para colorear las man pages es instalar ‘must’ (sudo apt-get install must). Es necesario tener habilitado el repositorio ‘universe’. Después, editas el .bashrc y agregas export PAGER=”must”. Cuando te loguees nuevamente, al ejecutar ‘man’ tendrás el output en colores.
¬ David Waszuk
#1946 Julio 4th, 2007 at 21:49
Un pequeño detalle en el comentario de ayer… no es “must” sino most (ooops). Por otro lado, para los que prefieren utilizar un ambiente gráfico, siempre está la posibilidad de usar el browser (si se quisiera la man del comando ls, colocar en la barra de direcciones, man:ls). Si bien uso gnome por cuestiones de gusto personal, reconozco que la salida es más vistosa en kde…
¬ rodolfo
#1947 Julio 5th, 2007 at 1:33
Si! Gracias David! Es precisamente most (no lo encontraba antes…)
¬ Jorge Armando
#2066 Enero 20th, 2008 at 3:06
Muy buen articulo, por cierto que fuente es la que estas usando en la consola?