enable colorful bash on raspbian (debian wheezy)

Okay, following problem when workin on debian is, it lacks coloring per default.
I wanted my raspbian pc to have colored shell, as it’s more comfortable to see directories and files and so on.

Here we go, first we need to do a backup of our /etc/bash.bashrc file by copying it.

root@raspberry-pi:/etc# cp bash.bashrc bash.bashrc.old
root@raspberry-pi:/etc# vi bash.bashrc

then we just replace the contents with this one:


# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don’t do anything
[ -z “$PS1″ ] && return

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

# 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)


# Set colorful PS1 only on colorful terminals.
# dircolors –print-database uses its own built-in database
# instead of using /etc/DIR_COLORS. Try to use the external file
# first to take advantage of user additions. Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
[[ -f ~/.dir_colors ]] && match_lhs=”${match_lhs}$(<~/.dir_colors)”
[[ -f /etc/DIR_COLORS ]] && match_lhs=”${match_lhs}$(/dev/null \
&& match_lhs=$(dircolors –print-database)
[[ $’\n’${match_lhs} == *$’\n'”TERM “${safe_term}* ]] && use_color=true

if ${use_color} ; then
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
if type -P dircolors >/dev/null ; then
if [[ -f ~/.dir_colors ]] ; then
eval $(dircolors -b ~/.dir_colors)
elif [[ -f /etc/DIR_COLORS ]] ; then
eval $(dircolors -b /etc/DIR_COLORS)

if [[ ${EUID} == 0 ]] ; then
PS1=’${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ‘
PS1=’${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ‘

alias ls=’ls –color=auto’
alias grep=’grep –colour=auto’
if [[ ${EUID} == 0 ]] ; then
# show root@ when we don’t have colors
PS1=’\u@\h \W \$ ‘
PS1=’\u@\h \w \$ ‘

# Try to keep environment pollution down, EPA loves us.
unset use_color safe_term match_lhs

# Commented out, don’t overwrite xterm -T “title” -n “icontitle” by default.
# If this is an xterm set the title to user@host:dir
#case “$TERM” in
# PROMPT_COMMAND=’echo -ne “\033]0;${USER}@${HOSTNAME}: ${PWD}\007″‘
# ;;
# ;;

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could’ve been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found — $1
return $?
elif [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found — $1
return $?
return 127


Note the onfiguration file is consequently licensed under GPL.