User Tools

Site Tools


colour_prompt_and_ls_output_with_debian

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
colour_prompt_and_ls_output_with_debian [2013/01/22 21:58]
206.174.106.118
colour_prompt_and_ls_output_with_debian [2013/01/26 16:38] (current)
lonney
Line 3: Line 3:
 With the CentOS based IRLP software the output from the ls command was colourised. With Debian this is disabled by default, but is quite simple to enable. With the CentOS based IRLP software the output from the ls command was colourised. With Debian this is disabled by default, but is quite simple to enable.
  
-  - Change to your home directory''​cd''​ +Borrowed from http://jbsteiner.com/​article/​enabling-colorful-bash-debian-squeeze
-  - Edit ''​.bashrc''​ with your favourite editor. +
-  ​Goto line 39 and uncomment ''​force_color_prompt=yes''​ +
-  ​Save and quit the editor. +
-  ​Execute the following command to enable the change: ''​. .bachrc''​+
  
-This will enable ​coloured ls output ​for the user you are logged ​in asbut no one else. There is probably a way to enable ​this globally ​if desired.+  - As root backup ''/​etc/​bash.bashrc'':​ E.g. ''​cp /​etc/​bash.bashrc /​etc/​backup.bash.bashrc''​ 
 +  - As root edit ''/​etc/​bash.bashrc''​ to resemble the following, this is a complete copy of the file with the changes, it is safe to replace the file with this: 
 + 
 +<​code>​ 
 + 
 +# 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) 
 +fi 
 +  
 +use_color=false 
 +  
 +# 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 
 +match_lhs=""​ 
 +[[ -f ~/​.dir_colors ​  ]] && match_lhs="​${match_lhs}$(<​~/​.dir_colors)"​ 
 +[[ -f /​etc/​DIR_COLORS ]] && match_lhs="​${match_lhs}$(</​etc/​DIR_COLORS)"​ 
 +[[ -z ${match_lhs} ​   ]] \ 
 +        && type -P dircolors >/​dev/​null \ 
 +        && match_lhs=$(dircolors --print-database) 
 +[[ $'​\n'​${match_lhs} == *$'​\n'"​TERM "​${safe_term}* ]] && use_color=true 
 +  
 +if ${use_color} ; then 
 +        # Enable colors for lsetc.  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) 
 +                fi 
 +        fi 
 +  
 +        if [[ ${EUID} == 0 ]] ; then 
 +                PS1='​${debian_chroot:​+($debian_chroot)}\[\033[01;​31m\]\h\[\033[01;​34m\] \W \$\[\033[00m\] ' 
 +        ​else 
 +                PS1='​${debian_chroot:​+($debian_chroot)}\[\033[01;​32m\]\u@\h\[\033[01;​34m\] \w \$\[\033[00m\] ' 
 +        fi 
 +  
 +        alias ls='ls --color=auto'​ 
 +        alias grep='​grep --colour=auto'​ 
 +else 
 +        if [[ ${EUID} == 0 ]] ; then 
 +                # show root@ when we don't have colors 
 +                PS1='​\u@\h \W \$ ' 
 +        else 
 +                PS1='​\u@\h \w \$ ' 
 +        fi 
 +fi 
 +  
 +# 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 
 +#​xterm*|rxvt*) 
 +#    PROMPT_COMMAND='​echo -ne "​\033]0;​${USER}@${HOSTNAME}:​ ${PWD}\007"'​ 
 +#    ;; 
 +#*) 
 +#    ;; 
 +#esac 
 +  
 +enable ​bash completion in interactive shells 
 +if [ -f /​etc/​bash_completion ] && ! shopt -oq posix; then 
 +    . /​etc/​bash_completion 
 +fi 
 +  
 +# 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 $? 
 + else 
 +    ​return 127 
 + fi 
 +
 +fi 
 + 
 +</​code>​ 
 + 
 +Logout and login again, the prompt and ls output will now be coloured.
colour_prompt_and_ls_output_with_debian.txt · Last modified: 2013/01/26 16:38 by lonney