No nos gusta la S.O.P.A.

Una de las cosas más satisfactorias de trabajar con un intérprete de comandos como Bash es su extraordinaria configurabilidad; tanta que a veces, tras instalar Debian en una nueva máquina, he tenido que volver a repasar qué hace cada fichero de configuración, en qué orden es interpretado y para qué tipo de consola (se me suele olvidar la diferencia entre .bashrc y .bash_profile; y por las muchas dudas al respecto que pueblan la red sé que no soy el único).

Creo que tras la última instalación, la que hice en el Asus Eee en setiembre de 2008, he logrado una configuración muy afinada. Muestro a continuación mis ficheros de configuración por si a alguien le sirven de ejemplo:

~/.bash_profile

Este es el fichero que se carga en las consolas que requieren identificación del usuario. Lo que hace es añadir a PATH el directorio ~/bin, donde tengo mis propios ejecutables, y cargar .bashrc:


# ~/.bash_profile: executed by bash(1) for login shells.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/login.defs
#umask 022

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
    PATH=~/bin:"'{PATH}"
fi

# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

~/.bashrc

Casi no he cambiado el original. Los cambios que he hecho son:

Activar las teclas modificadoras en GTK para poder acceder a los caracteres propios del esperanto; especificar mis dos navegadores favoritos: FireFox y ELinks; y modificar el valor de la variable PS1 para crear un indicador de entrada personalizado, que me muestra el directorio actual en una línea coloreada e independiente.

Este fichero carga .bash_aliases.


# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac

# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#PS1='\[\033[01;30m\]`date +%H:%M` ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h \[\033[01;34m\]\w\[\033[00m\]\$ '
#PS1='\$ \[\033[01;34m\]\w\n\[\033[01;30m\]`date +%H:%M` ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]\$ '
#PS1='\$ \[\033[01;34m\]\w\n\[\033[01;30m\]\A ${debian_chroot:+($debian_chroot)}\[\033[00;34m\]\j \[\033[01;34m\]\u\[\033[00m\]\$ '
PS1='\$ \[\033[01;34m\]\w\n\[\033[01;32m\]\u\[\033[00m\]\$ '

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    #PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
	PROMPT_COMMAND='echo -ne "\033]0;$USER: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

# GTK must use the general dead key system
# to let Esperanto letters te be accessed.
# Reference:
# http://bertilow.com/komputo/linukso.html#eoklavaro
GTK_IM_MODULE=xim
export GTK_IM_MODULE

# prefered www browsers
export BROWSER=/usr/bin/mozilla:/usr/bin/elinks

~/.bash_aliases

Los alias son una buena manera de agilizar el trabajo en la consola: Nos permiten dar las órdenes más habituales con las palabras que queramos; y mejor si en vez de palabras son sólo dos o tres letras fáciles de recordar.


# It makes the other aliases I've defined worked when run with sudo.
alias sudo="sudo "

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
  eval "`dircolors -b /home/marcos/.dircolors`"
  alias ls='ls --color=auto'
  alias dir='ls --color=auto --format=vertical'
  alias vdir='ls --color=auto format=long'
fi

# ls 

alias ll='ls -l'
alias la='ls -A'
alias l1='ls -1'
alias lla='ls -lA'
alias lal=lla

# apt

alias ashow='apt-cache show'
alias asearch='apt-cache search'
alias afsearch='apt-file search'
alias ainst='apt-get install'
alias aupgrade='apt-get upgrade -uV'
alias aupdate='apt-get update'
alias aremove='apt-get remove'
alias apurge='apt-get remove --purge'
alias asource='apt-get source'
alias abug='apt-listbugs list'

# programas

alias gm='~/bin/getmail.sh'
alias gvi='gvim'
alias gvid='gvimdiff'
alias im='centerim-utf8'
alias jr='~/bin/jpegr.sh -s'
alias kb='sudo ~/bin/keyboard.sh'
alias less=most
alias lon='/opt/lampp/lampp start'
alias mqd='msmtpq -d'
alias mqr='msmtpq -r'
#alias psion='sudo plpnfsd -u marcos'
alias s='screen -DR'
alias wicd='wicd-client -n &'
#alias x='startx -- +accessx &'
alias xa='startx -- +accessx &'
alias x='startx &'
#alias x='x.sh'

# montaje de unidades

alias mp='mount /media/datos_propios/'
alias me='mount /media/datos_externos/'
alias mr='mount /media/respaldos/'
alias mn='mount /media/nexblack_cf/'
alias mh1='mount /media/cf/hama/1/vfat/'
alias mt='mp ; me ; mr'

alias dmp='umount /media/datos_propios/'
alias dme='umount /media/datos_externos/'
alias dmr='umount /media/respaldos/'
alias dmn='umount /media/nexblack_cf/'
alias dmh1='umount /media/cf/hama/1/vfat/'
alias dmt='dmp ; dme ; dmr'

# respaldos

alias rp='~/bin/rsync_card.sh p'
alias re='~/bin/rsync_card.sh e'
alias rs='~/bin/backup_debian_config.sh'
alias ru='~/bin/backup_home.sh'
alias rt='ru;rs;rp;re'

# apagado

alias e='exit'
alias sd='cd; dmt ; sudo halt'
alias rb='cd; dmt ; sudo reboot'

Categorías de esta página

URL: http://programandala.net/es.artículo.2009.05.04.configuración_bash

Página escrita en 2009-05-04
Última modificación realizada en 2009-12-03