...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 *