Posteado por: FiBER | 10 Abril 2009

Personalizar la consola de Linux. (.bashrc )

En ocasiones puede aparecer un bash (consola, terminal, …) sin resaltado de sintaxis, sin un color para cada tipo de archivo, o que no responde del todo bien al tabulador, es decir que al pulsar el tabulador no se nos muestran las posibilidades. Usando Ubuntu, me paso en una ocasió porque tenía una instalación limpia de Ubuntu, donde funcionaba muy bien mi bash, y al que le instalé kde-base, y más tarde kubuntu-desktop, esto me dejaba sin colores y sin tabulador el bash, no recuerdo porque ni como lo solucioné.

El caso es que ahora con Arch, me han dado ganas de arreglar un poquito mi bash (consola), así que voy a atreverme con una “Guía de personalización de bash“, aunque nada que ver con Arch, esta guía sirve para cualquier bash, para cualquier linux.

Existe un archivo en la carpeta personal, por defecto /home/usuario, cuyo nombre es .bashrc y que es el que contiene la configuración de nuestra consola, terminal, konsole, bash, …

Lo primero es editar el archivo /home/usuario/.bashrc:

cd
kate .bashrc

Y ahora a ir añadiéndole opciones:

Variables

PS1 es una variable que contiene el prompt, lo que aprece a la espera de que escribamos, este es el que suele venir por defecto:

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

Podemos poner un prompt colorido con alguna de estas líneas:

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

También podemos editar el .bashrc de root y ponerle una de estas dos:

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

Bash permite nombrar hasta 3 prompts, llamandose PS1, PS2, PS3.

Alias

Podemos poner multitud de alias, entre los que se destacan:

Alias para descuidos, que avisen a la hora de hacer ciertas cosas:

alias rm='rm -i'
alias mv='mv -i'

Alias para permitir algunos fallos ortograficos:

alias unmount='umount'
alias pakman='pacman'

Alias para ahorrar tiempo:

[Debian y derivados (Ubuntu, Linux Mint, Guadalinex, ... )]

alias aptsearch='sudo aptitude search '
alias aptinstall='sudo aptitude install '
alias aptupdate='sudo aptitude update && sudo aptitude upgrade'

[Arch Linux]

alias pacsearch='sudo pacman -Ss'
alias pacinstall='sudo pacman -Sy'
alias pacupdate='sudo pacman -Syu'

También, mediante alias, se pueden colorizar muchas cosas, en la mayoría de distros ya viene por defecto. De todos modos aquí hay algunas lineas que servirán para esto:

Colorizar la salida de ls

eval "`dircolors -b`"  //para que cargue los colores de cada tipo de archivo

alias ls='ls --color=auto'
alias dir='dir --color=auto'

Colorizar la salida de egrep y derivados:

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

Funciones

También se pueden añadir al archivo scritps, aquí pondré los que me vayan siendo útiles:

[Solo Arch] Script para ver la salida de pacman con colores:

alias pacs="pacsearch"
pacsearch () {
echo -e "$(pacman -Ss $@ | sed \
-e 's#current/.*#\33[1;31m&\33[0;37m#g' \
-e 's#extra/.*#\33[0;32m&\33[0;37m#g' \
-e 's#community/.*#\33[1;35m&\33[0;37m#g' \
-e 's#^.*/.* [0-9].*#\33[0;36m&\33[0;37m#g' )"
}

// Esto lo puedes hacer de forma alternativa como se muestra en este enlace.

[Solo Arch] Autocompletado

Primero instalamos este paquete:

pacman -S bash-completion

Y luego añadimos en .bashrc

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

Para que complete después de sudo:

complete -cf sudo

[Todos] Función que lista el contenido de un directorio cada vez que hacemos cd __ :

cd() {
if [-n "$1"]; then
builtin cd "$@" && ls
else
builtin cd ~ && ls
fi
}

Esta guía la he escrito con la ayuda de muchos enlaces, algunos de los más importantes os dejo aquí:

Configurar Bashrc

Color Bash Prompt


Respuestas

  1. Muy bueno el tutorial. Estaba pensando hacer algo parecido en estos días pero el tuyo está genial.
    Muchas gracias por haberte tomado la molestia de ayudarnos y nos leemos por aquí :)

    Saludos y pinguinos

  2. Excelente tuto, me sirvio bastante, gracias


Dejar una respuesta

Su respuesta:

Categorías