Organizar un poco la configuración de bash
Si os gusta jugar un poco con el fichero .bashrc conviene mantener un cierto orden para no despistarse, por ejemplo guardando por separado los alias, las funciones, etc. Aquí está el mío:
----------Comienza .bashrc------------- # Contenido de .bashrc eval `dircolors ~/.dir_colors` export LANG=es_ES export LC_MESSAGES=es_ES export LC_CTYPE=es_ES if [ -d /usr/X11R6/lib/X11/nls ]; then XNLSPATH=/usr/X11R6/lib/X11/nls export XNLSPATH fi set meta-flag on # conservar bit 8 en entrada de teclado set output-meta on # conservar bit 8 en salida por terminal set convert-meta off # no convertir secuencias de escape set horizontal-scroll-mode on LESSCHARSET=latin1 export MM_CHARSET=ISO-8859-15 # para usar latin1 en los mails source ~/.alias source ~/.funciones inductor_normal ----------Termina .bashrc--------------
Parece cortito, pero observad que, al final, hace dos referencias "source" a dos ficheros externos: ~/.alias y ~/.funciones. Estos dos ficheros cargan, evidentemente, los alias y las funciones por separado. Veamos mi fichero ~/.alias:
----------Empieza .alias--------------- alias ls='ls -Fhl --color' alias bakstatus='zcat /var/log/asegurados_duro.log.gz' alias baksearch='zcat /var/log/asegurados_duro.log.gz | grep -A10 ' alias dir='dir --color' alias gvim='gvim -geometry 100x40' alias less='less --quit-if-one-screen' ----------Termina .alias---------------
Ahora veamos el fichero de funciones, que tiene más jugo:
----------Empieza .funciones ---------- #!/bin/sh # Códigos de colores: :-) AZUL="\[\033[0;34m\]" AZUL_CLARO="\[\033[1;34m\]" VERDE="\[\033[0;32m\]" VERDE_CLARO="\[\033[1;32m\]" ORO="\[\033[0;33m\]" ORO_CLARO="\[\033[1;33m\]" CIAN="\[\033[0;36m\]" CIAN_CLARO="\[\033[1;36m\]" ROJO="\[\033[0;31m\]" ROJO_CLARO="\[\033[1;31m\]" BLANCO="\[\033[1;37m\]" NOCOLOR="\[\033[0m\]" # Aquí es donde se decide qué color aplicar # Cada usuario, su color. case "$UID" in 0) USUARIO="$ROJO" U_CLARO="$ROJO_CLARO" ;; 501) USUARIO="$CIAN" U_CLARO="$CIAN_CLARO" ;; 502) USUARIO="$ORO" U_CLARO="$ORO_CLARO" ;; *) USUARIO="$VERDE" U_CLARO="$VERDE_CLARO" ;; esac # Y ahora vienen las funciones function inductor_corto { case $TERM in xterm*) local BARRA='\[\033]0;\u@\h:\w\007\]' ;; *) local BARRA='' ;; esac PS1="${BARRA}$U_CLARO[\u@\h \W]\$ $NOCOLOR" PS2='> ' PS4='+ ' } function inductor_normal { case $TERM in xterm*) local BARRA='\[\033]0;\u@\h:\w\007\]' ;; *) local BARRA="" ;; esac PS1="${BARRA}$U_CLARO[$USUARIO\t/\j$U_CLARO][\u@\h:\w]\$$NOCOLOR " PS2='> ' PS4='+ ' } function sube_web { case "$1" in telecable) echo "Subiendo la Página Personal a TeleCable" wwwsync -T -f ~/.wwwsync ;; wap) echo "Subiendo la página WAP" wwwsync -T -f ~/.wapsync ;; *) echo "Uso: wwwsync [ telecable | wap ]" echo "" ;; esac } # Final de las funciones. Preguntar "funciones" para un listado function funciones { cat ~/.funciones | grep ^function | awk '{print $2}' } ----------Termina .funciones ----------
Vale, aquí hay varias cosas que pueden interesaros. En primer lugar, observad que pongo las funciones en un fichero aparte. Si a algún otro usuario del ordenador le interesan mis funciones o mis inductores del sistema (mi prompt), solo tiene que copiar el fichero a su home e incluir una entrada "source" en su .bashrc
Es más, observad también que ni siquiera tienen que modificarlo. El fichero de funciones pone el color adecuado automáticamente. Eso simplifica también el mantenimiento: por ejemplo se puede poner este fichero en "/etc/funciones" y poner todos los sources apuntando a él. Así, si root cambia el inductor del sistema, el cambio será efectivo automáticamente para todos los usuarios, y seguirá respetando los colores privados de los usuarios. De hecho, así es como lo tengo realmente en mi ordenador.
Pero, naturalmente, eso no significa que sea obligado. Si un usuario desea personalizar su inductor de otra forma, solo tiene que cambiar la entrada "source" para que apunte a otro fichero de su home.
Observad, además, que se incluyen varios inductores distintos en forma de funciones: cortos, largos, etc, por si en un momento dado, apetece otro inductor distinto sin cambiar el que está instalado por defecto. Para cambiar de uno a otro solo hay que usar las funciones:
[23:37:58/0][lacofi@claudia:~]$ inductor_corto [lacofi@moira lacofi]$ inductor_normal [23:38:40/0][lacofi@claudia:~]$
También os puede interesar, a modo de ejemplo, la última función. Al ejecutarla, os saldría un listado de las funciones disponibles. Fijaos que está algo sangrada para que no se incluya a sí misma en el listado.
[23:38:40/0][lacofi@claudia:~]$ funciones inductor_corto inductor_normal sube_web [23:41:52/0][lacofi@claudia:~]$
Pues eso. Si le sirve de ayuda a alguien...