Underc0de - Hacking y seguridad informática

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:
Código: You are not allowed to view links. Register or Login
[email protected] ~$ cat .bashrc

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

alias ls='ls --color=auto'

PS1='[\[email protected]\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:
Código: You are not allowed to view links. Register or Login
PS1='\[\e[1;32m\][\[email protected]\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:

Código: You are not allowed to view links. Register or Login
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:

Código: You are not allowed to view links. Register or Login
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'
root:

Código: You are not allowed to view links. Register or Login
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 :

Código: You are not allowed to view links. Register or Login
~/.dir_colors
Paso 2: copiar y pegar el siguiente texto a tu ".bashrc" :

Código: You are not allowed to view links. Register or Login
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)