~ meonkeys /.bashrc

This works equally well for Fedora and Ubuntu. I especially like the Smiley and the 's' command alias.
# .bashrc
# $Id: bashrc 2806 2008-01-12 00:06:26Z adam $

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# can also be set in ~/.cvsignore
export ADAMM_PERSONAL=$HOME/svn/personal
export CVSIGNORE='*.swp *.pyc'
export CVS_RSH=ssh
export EDITOR=vim
# from http://www.caliban.org/bash/index.shtml
export HISTIGNORE='ls:exit:[bf]g'
# don't put duplicate lines in the history. See bash(1) for more options
# ... and ignore same sucessive entries.
export HISTCONTROL=ignoreboth
export MAIL=/var/mail/$USER
# seems like SDL tries to use arts by default, which is slow and sucks.
export SDL_AUDIODRIVER=alsa

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

# stolen from pathmunge() in /etc/profile on FC4 (and modified)
path_prepend () {
    echo $PATH | /bin/egrep -q "(^|:)$1($|:)" || PATH=$1:$PATH
}

path_prepend /usr/sbin
path_prepend $ADAMM_PERSONAL/bin
path_prepend $HOME/bin

# remove stuff from path
PATH=${PATH/\/usr\/kerberos\/bin:/}
#PATH=`echo $PATH | sed -e 's#/usr/kerberos/bin:\?##'`

unset path_prepend

# Only do the following during an interactive prompt.
# Another way to check if the shell is interactive is a [ -t 0 ] test, which
# checks if file descriptor zero (stdin) is open and connected to a terminal.
# This may be preferrable if the environment variables are not reliable.
[ -z "$PS1" ] && return

alias egrep='egrep --color=auto'
alias f="find . -path '*.svn*' -prune -o -print | grep"
alias grep='grep --color=auto'
alias indent='indent -bli0 -nut -i4'
alias ls='ls -F --col'
alias ll='ls -l'
alias p='ps auxwww | grep'
# this is DEFINITELY my most often-used command
alias s='cd ..'
alias r='rpm -qa | grep'
alias packup='/bin/tar -czvf'
alias unpack='/bin/tar -xzvpf'
alias contents='/bin/tar -tzf'
# make a temp dir, then immediately cd into it
alias mktd='tdir=`mktemp -d` && cd $tdir'

# list contents right after changing directories
cd() {
  if [ "$1" ]
  then builtin cd "$1" && ls
  else builtin cd && ls
  fi
}

# make a directory, then immediately cd into it
mkcd() {
  if [ "$1" ]
  then mkdir -p "$1" && cd "$1"
  fi
}

# correct minor errors in 'cd' commands
shopt -s cdspell
# good for double-checking history substitutions
shopt -s histverify

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

# ~ the Emotiprompt(TM) ~
# idea came from: http://linuxgazette.net/122/lg_tips.html#tips.1
smiley() {
  err=$?
  if [ $err == 0 ]
  then echo ':)'
  else echo ":( $err"
  fi
}
PS1="\$(smiley) [\u@\h \W]\\$ "

exr() {
  if [ "$1" ]
  then
    tdir=`examine_rpm "$1"`
    echo "`basename $1` extracted to $tdir."
    echo "Changing to that directory..."
    cd $tdir
  fi
}

# 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 ] && [ -z "$BASH_COMPLETION" ]; then
    . /etc/bash_completion
fi