LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   What does your shell prompt look like? (https://www.linuxquestions.org/questions/linux-general-1/what-does-your-shell-prompt-look-like-115354/)

david_ross 11-12-2003 05:00 PM

What does your shell prompt look like?
 
Well we have a thread for screen shots so waht about your shell prompt?

There are lots of examples on the net including ones that show load averages etc so I just wondered what other people used.

I'll start off with my default one:
Code:

rossy - Wed Nov 12 22:57:01
~> cd /usr/src/linux
rossy - Wed Nov 12 22:57:06
/usr/src/linux>

The prompt string is:
PS1="\[\033[0;31m\]\u - \d \t\n\w> \[\033[0m\]"

Please try and include any commands/scripts etc you used to get your prompt.

trickykid 11-12-2003 05:04 PM

Mines simple and probably standard:

Code:

drew@trickykid:/etc$
The prompt string is:
PS1='\u@\h:\w\$ '

Blinker_Fluid 11-12-2003 05:50 PM

Here's my prompt string...
PS1="[\u@\h \w]--> "

shows up like this:
[blinky@Spork ~]-->

slakmagik 11-12-2003 06:28 PM

Code:

|--j@slackmagick bash 2.05b (1) Wed Nov 12 19:26:51
|--~ >>

Code:

PS1='\n|--\u@\h \s \v (\l) \d \t\n|--\w >> '

m0rl0ck 11-12-2003 09:58 PM

[[@bunny:17:54:17:root]]

But you dont get the full effect without the color, try it out:

PS1="\[\033[1;30m\]\[\033[0;32m\][\[\033[1;32m\][\[\033[1;35m\]\[\033[1;36m\]@\h
\[\033[1;37m\]:\[\033[1;35m\]\t\[\033[1;37m\]:\[\033[1;36m\]\W\[\033[1;32m\]]\[\
033[0;32m\]]\[\033[1;30m\]]\[\033[0;0m\]"

Make sure you get the line returns out.

This is my firewall:
[@m0rl0ck:22:57:15:root]+>

Some what the same but uses reverse video, heres the $PS1:

PS1="[\[\033[1;36m\]@\[\033[0;45m\]\h:\[\033[1;36m\]\t\[\033[0;44m\]\[\033[1;36m
\]:\W\[\033[0m\]]\[\033[1;31m\]+>\[\033[0m\]"


EDIT: HEY!! I just realized my clocks are either out of sync or it took me 5 hours 3 mins to compose this post :)

green_dragon37 11-12-2003 10:02 PM

I use ctrl+Z alot, so:

0 [321-2]
[Wed Nov 12 22:02:47]
green_dragon37@grndrgn001 / >

PS1 = \j [\!-\#]\n[\d \t]\n\u@\h \W >

Cerbere 11-13-2003 05:18 AM

For regular users: (I have a rather colorful hostname, so I edited it somewhat for this post)

cerbere@s#|thead:~$
PS1='\u@\h:\w\$ '

For root:

root@s#|thead:~#
PS1='\[\033[1;31m\]\u@\h\[\033[1;33m\]:\w\[\033[0m\]\$ '

This changes the color of 'root@hostname' to bright red, and the color of the pwd to bright yellow. That way I'm less likely to do things as root that I really don't want to do.

Enjoy!
--- Cerbere

yapp 11-13-2003 09:23 AM

It depens on the way I've been logged into the system :-D

normal user: me@pts/1 foldername $

root user: root@pts/1 foldername $

and remotely, me@hal9000 foldername $

The title of the xterm / konsole will also display the tty, host, and full path name. (only the last folder is shown in the prompt)

Code:

#!/bin/bash

PS1='\u@\h:\w\$ '

if [ "$TERM" = "xterm" -o "$TERM" = "xrvt" -o "$TERM" = "$SCREEN" ]; then
  ## Only update the title in an xterm.
  PS1_TITLE='\[\e]2;\u@\H:pts/\l \w\a'
# PS1_TITLE='\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\]'
else
  PS1_TITLE=''
fi


if [ -z "$SSH_CONNECTION" ]; then

  # local, don't display host, but tty device.

  PS1_TTY="`tty | sed -e 's/\/dev\///'`"

  if [ "`id -u`" = "0" ]; then
    # Red root prompt
    PS1_USER='\[\033[1;31m\]\u'
    PS1_AT='\[\033[0;31m\]@'
    PS1_HOST='\[\033[1;31m\]'
  else
    # Green user prompt
    PS1_USER='\[\033[1;32m\]\u'
    PS1_AT='\[\033[0;32m\]@'
    PS1_HOST='\[\033[1;32m\]'
  fi

  PS1_HOST="$PS1_HOST$PS1_TTY"
  unset -v PS1_TTY

else

  # SSH connection, different color and display host.

  if [ "`id -u`" = "0" ]; then
    # Red/gray root prompt
    PS1_USER='\[\033[1;31m\]\u'
    PS1_AT='\[\033[0;31m\]@'
  else
    # green/gray user prompt
    PS1_USER='\[\033[1;32m\]\u'
    PS1_AT='\[\033[0;32m\]@'
  fi
  PS1_HOST='\[\033[1;30m\]\h'
fi

PS1_PATH='\[\033[1;34m\]\W'  # show dir in blue
PS1_RESET='\[\033[0m\]'


# concatenate.

PS1="$PS1_TITLE$PS1_USER$PS1_AT$PS1_HOST$PS1_RESET $PS1_PATH \\$ $PS1_RESET"
unset -v PS1_TITLE PS1_USER PS1_AT PS1_HOST PS1_PATH PS1_RESET

#PS1='\033]2;\w\007\[\033[1;32m\]\u@\h \[\033[1;34m\]\W \$ \[\033[0m\]'


# Other magical prompts:

PS2='> '
PS4='\[\033[0;34m\]+\[\033[0m\] '

export PS1 PS2 PS4


JZL240I-U 11-14-2003 05:46 AM

Hey, interested noobs (like me) :D

Note, that PS1 (the control-string for your prompt) can be set at differing places for different users on your system. Here is what I could make out (without actual access to my system):

/etc/bashrc is used to set the prompt for the "true" consoles reached via <Alt><Crtl><Function key 1 through 6>

/root/bashrc is used to set the prompt for root with graphical login (under KDE)

/home/user/bashrc is used to set the prompt for user (your user-id here)

Please note, that some systems place a "." (without the "'s) in leading position of bashrc, thus generating .bashrc (dot-bashrc), which might be hidden in the file manager (activate "show hidden files") and to the ls-command (that's a small "L") so use the -a option (ls -a).

I do not know where PS2, PS3 ... PSN are set and what they are good for, exactly. Any takers? :D

@moderators (and gurus): checking and editing this post directly as necessary for errors and improvements is welcome. :)

yapp 11-14-2003 08:03 AM

PS2 is your secondary prompt, if you enter commands on multiple lines. for example, if statements, or while loops. (they require a 'counterpart'; a command that ends the statement)
PS4 is used if you enable "set -x", which shows all commands being executed.


from the bash manual you'll see what files are used. (just type "G" to skip to the end) files in /etc/ are usually global, and affect everyone using bash. files in your home directory overrule these global settings.

if you run bash from a login session (or bash -l), /etc/profile will be read, and from your home direcory: ~/.bash_profile, or ~/.profile.

In slackware, there is a /etc/profile.d/ directory where all *excutable scripts* are being executed by /etc/profile too. Some distributions don't have this, but you could add a few lines at the end of /etc/profile very easy:
Code:

# Append any additional sh scripts found in /etc/profile.d/:
for file in /etc/profile.d/*.sh ; do
  if [ -x $file ]; then
    source $file
  fi
done

...guess once, by bash prompt color script is located at /etc/profile.d/bash-prompt-color.sh ;) this affects all users.

a script can be made executable with this command:
chmod +x <insert filename here>

cwolf 11-14-2003 12:37 PM

For users: <user>@<host>$
and for root: <user>@<host>#

qanopus 11-14-2003 03:23 PM

mine is simple :

Code:

[sohail@linux /usr/local]$ echo $PS1
\[\033[37;01m\][\u@\h \w]$ \[\033[00m\]
[sohail@linux /usr/local]$


slightcrazed 11-14-2003 04:23 PM

[17:20:06] slight - slight>

Errr.... this is from memory, so no guarantees if it's wrong (which it probably is):

export PS1="\e[36;1m]\t\e[0m]\u - \w>"

slight

pibby 11-16-2003 06:51 PM

Cool stuff guys, but one quick question...
Mine is the standard pibby@localhost thing and I am wondering how I change the "localhost" part. For instance TrickyKid has drew@trickykid. Local host is so boring, I hope there is a way to change that.
Thanks in advance for any help you can offer :)

Scruff 11-16-2003 09:33 PM

Well, you could either change your actual hostname, or just use some of these tricks posted here. I am not positive about Mandrake, but I know in Slack there is a HOSTNAME file in /etc that you can edit to change it from localhost. I actually used netconfig, but I think thats a Slack-specific script.


All times are GMT -5. The time now is 01:30 PM.