Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

This is the content of /etc/bashrc, I would like to modify it for show "root" as red but don't know where to add the color code.

# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

# are we an interactive shell?
if [ "$PS1" ]; then
  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
        ;;
      esac
  fi
  # Turn on checkwinsize
  shopt -s checkwinsize
  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
  # You might want to have e.g. tty in prompt (e.g. more virtual machines)
  # and console windows
  # If you want to do so, just add e.g.
  # if [ "$PS1" ]; then
  #   PS1="[\u@\h:\l \W]\\$ "
  # fi
  # to your custom modification shell script in /etc/profile.d/ directory
fi

if ! shopt -q login_shell ; then # We're not a login shell
    # Need to redefine pathmunge, it get's undefined at the end of /etc/profile
    pathmunge () {
        case ":${PATH}:" in
            *:"$1":*)
                ;;
            *)
                if [ "$2" = "after" ] ; then
                    PATH=$PATH:$1
                else
                    PATH=$1:$PATH
                fi
        esac
    }

    # By default, we want umask to get set. This sets it for non-login shell.
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi

    # Only display echos from profile.d scripts if we are no login shell
    # and interactive - otherwise just process them to set envvars
    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null 2>&1
            fi
        fi
    done

    unset i
    unset pathmunge
fi
# vim:ts=4:sw=4

In Debian I do it in this line:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[01;37m\]:\[\033[01;36m\]\w\[\033[01;35m\]\$\[\033[00m\] ' but in CentOS no idea.

edit: Also I am thinking that maybe editing that file is going to take effect on both normal user and root user. But looking in the specifics .bashrc they only point to /etc/bashrc.

share|improve this question
    
I'm guessing $USER is being used in place of \u there ;) –  TAFKA 'goldilocks' Mar 17 '13 at 15:45
add comment

1 Answer

up vote 3 down vote accepted

You will need to play with the colours, but something like this should do the trick. Create the file /etc/profile.d/colours.sh with content similar to this:

#!/bin/bash
if [ $(id -u) -eq 0 >/dev/null  2>&1 ]; then
  export PS1="\[\033[01;32m\]\u\[\033[00;37m\]@\h:\w\$ "
fi
share|improve this answer
    
You could also just put the PS1 declaration in /root/.bashrc. Also, red is color 31. –  depquid Mar 17 '13 at 20:42
1  
ok I got it. Instead of declaring PS1 in /etc/bashrc I did it on the specifics /home/user/.bashrc and /root/.bashrc, and the parameters of PS1 were the same as I have on Debian. That's it "\[\033[01;32m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[01;37m\]:\[\033[01;36‌​m\]\w\[\033[01;35m\]\$\[\033[00m\] " for normal user and "\[\033[01;31m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[01;37m\]:\[\033[01;36‌​m\]\w\[\033[01;35m\]\$\[\033[00m\] " for root. –  yzT Mar 17 '13 at 22:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.