Underc0de

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: S[e]C en Enero 22, 2011, 06:01:14 PM

Título: Colorizando la Bash
Publicado por: S[e]C en Enero 22, 2011, 06:01:14 PM
Primero sabemos que el archivo de configuracion de la shell esta en el directorio raiz del usuario correspondiente en .bashrc, aquí en donde agregamos las configuraciones, personalizaciones que deseemos, vamos a ver primero el contenido por default, en mi caso:

sec@ansicoder ~$ cat .bashrc

# Check for an interactive session
[ -z "$PS1" ] && return

alias ls='ls --color=auto'

PS1='[\u@\h \W]\$ '


Bueno, lo primero que tenemos que editar acá es la PS1 que es la variable que da formato a nuestra shell, veamos, una variable PS1 un poco más compleja:

PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '


Primero necesitamos saber el significado de \h, \e, \w ,etc ... para esto recurrimos al manpages de bash, ya saben: "man bash" , pero es un poco extenso por lo que pegaré ACÁ (http://ansicoder.net/Docs/bash_man.html) la parte que nos interesa, de la config del prompt.

Lo importante de comprender aparte de que diablos es \h, \u ... es estos dos delimitadores:

Citar\[     comienza un secuencia de carácteres no imprimibles
\]     termina un secuencia de carácteres no imprimibles

Bueno pues con está información, lo primordial que debemos saber es, el significado de las secuencias de escape \h, \u, \w ... para poder ponerlas donde queramos, y saber como usar los delimitadores que acabo de mencionar y usar \e para dar el color que queramos, a continuación pongo una lista de colores:

Negro       0;30     Gris Obscuro  1;30
Azul        0;34     Azul Claro    1;34
Verde       0;32     Verde Claro   1;32
Cyan        0;36     Cyan Claro    1;36
Rojo        0;31     Rojo Claro    1;31
Purpura     0;35     Fiuscha       1;35
Café        0;33     Amarillo      1;33
Gris Claro  0;37     Blanco        1;37


Bueno eso es basicamente las modificaciones que podemos hacer al prompt, tambien podemos poner la hora, etc, para eso mirar las manpages del bash , personalmente uso estas dos PS1 (user & root) :
user:

PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'

root:

PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\]'

Colores del bash estilo Gentoo.

Paso 1: guardar el siguiente archivo Here (http://ansicoder.net/Docs/dir_colors.html) en :

~/.dir_colors

Paso 2: copiar y pegar el siguiente texto a tu ".bashrc" :

if [[ -f ~/.dir_colors ]] ; then
eval $(dircolors -b ~/.dir_colors)
fi


Fuentes y links interesantes:
Arch Wiki Color Bash Prompt (http://http://wiki.archlinux.org/index.php/Color_Bash_Prompt)
Arch Wiki Color estilo Gentoo (http://http://www.archlinux-es.org/wiki/index.php?title=Bash_Con_Color_%28Estilo_Gentoo%29)
tldp.org Bash Colours (http://http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html)