

...making Linux just a little more fun!
Andrew Elian [a_elian at sympatico.ca]
Wed, 25 Oct 2006 14:18:37 -0400
Hello.
Here's a quick tidbit to help the PS1 variable do the right thing depending on the terminal - X or otherwise. I've added these lines to my .bash_profile and found them useful:
case $TERM in
        xterm)
                export TERM=xterm-color
                export PROMPT_COMMAND='echo -ne "\033]0;${USER}:${PWD/#$HOME/~}\007"'
                export PS1="$ "
        ;;
        rxvt|Eterm)
                export PROMPT_COMMAND='echo -ne "\033]0;${USER}:${PWD/#$HOME/~}\007"'
                export PS1="$ "
        ;;
        linux)
                export PS1="\[\033[0;32m\]\u \[\033[1;32m\]\W]\[\033[0;32m\] "
        ;;
esac
Sincerely, Andrew
Martin Hooper [martinjh at blueyonder.co.uk]
Wed, 25 Oct 2006 20:34:23 +0100
Andrew Elian wrote:
> Hello. > > Here's a quick tidbit to help the PS1 variable do the right thing > depending on the terminal - X or otherwise. I've added these lines to > my .bash_profile and found them useful:
On the same note how would you find out wether you were logged in as root or not?
Basically I want to do the same as Andrew but based on what the user was logged in as.
Thomas Adam [thomas.adam22 at gmail.com]
Wed, 25 Oct 2006 20:42:57 +0100
On Wed, Oct 25, 2006 at 08:34:23PM +0100, Martin Hooper wrote:
> Andrew Elian wrote: > > Hello. > > > > Here's a quick tidbit to help the PS1 variable do the right thing > > depending on the terminal - X or otherwise. I've added these lines to > > my .bash_profile and found them useful: > > On the same note how would you find out wether you were logged in > as root or not? > > Basically I want to do the same as Andrew but based on what the > user was logged in as.
[ "$(id -u)" == 0 ] &&
{
    # Do stuff as root
} || {
  # Do stuff as normal user
}
-- Thomas Adam
-- "Wanting to feel; to know what is real. Living is a lie." -- Purpoise Song, by The Monkees.
Benjamin A. Okopnik [ben at linuxgazette.net]
Wed, 25 Oct 2006 16:56:36 -0400
On Wed, Oct 25, 2006 at 08:34:23PM +0100, Martin Hooper wrote:
> > On the same note how would you find out wether you were logged in > as root or not? > > Basically I want to do the same as Andrew but based on what the > user was logged in as.
I set my prompt to a different color based on the above.
    case $UID in
	    0) export PS1='\[^[[40;31m\]\u@\h:\w\$ ' ;;
	    *) export PS1='\[^[[40;0m\]\u@\h:\w\$ ' ;;
    esac
That little octothorpe just isn't enough of a warning.  
* Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *
Benjamin A. Okopnik [ben at linuxgazette.net]
Wed, 25 Oct 2006 17:04:18 -0400
On Wed, Oct 25, 2006 at 02:18:37PM -0400, Andrew Elian wrote:
> Hello.
> 
> Here's a quick tidbit to help the PS1 variable do the right thing
> depending on the terminal - X or otherwise.  I've added these lines to
> my .bash_profile and found them useful:
> 
> case $TERM in
> 
>         xterm)
>                 export TERM=xterm-color
>                 export PROMPT_COMMAND='echo -ne "\033]0;${USER}:${PWD/#$HOME/~}\007"'
>                 export PS1="$ "
>         ;;
> 
>         rxvt|Eterm)
>                 export PROMPT_COMMAND='echo -ne "\033]0;${USER}:${PWD/#$HOME/~}\007"'
>                 export PS1="$ "
>         ;;
> 
>         linux)
>                 export PS1="\[\033[0;32m\]\u \[\033[1;32m\]\W]\[\033[0;32m\] "
>         ;;
> esac
Nice! That should come in useful for anyone using different types. Fortunately, they all use the same 'xterm*' entries in the .Xresources file, so other bits of behavior, etc. don't need to be adapted.
Somewhat in the same vein, I like to distinguish between consoles 1-3 by setting different colors (I also use red, but it's reserved for root logins). From my ~/.bash_profile:
TTY=`tty`
[ ${TTY:5:3} == "tty" ] && {             # If not a console, bail!
    color=(x blue green magenta)         # tty's start at 1, arrays at 0...
    setterm -foreground ${color[${TTY#*y}]} -store
}
* Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *