# bash: changing the prompt



## neo36 (Oct 6, 2002)

how do i change the prompt in a bash-shell? i want the working directory to be displayed and maybe the username...


----------



## DMCrimson (Oct 6, 2002)

add following tou your .bashrc

if [ "$PS1" ]; then
PS1='[\u@\h][\w]\$ '
fi

(the file is/should be located in your homefolder, if it does not, look for .bash_profile, adding there should work too) the above shows [user@host][full path of working directory] and you might want to tweak it a bit


----------



## neo36 (Oct 6, 2002)

thanks a lot! i was close to it, i just didn't know about the ' ' around the formatting params...


----------



## michaelsanford (Oct 7, 2002)

I'm pasting this here because I can't remember which manpage it is 


```
prompt  The string which is printed  before  reading  each
               command from the terminal.  prompt may include any
               of the following formatting sequences  (+),  which
               are replaced by the given information:

               %/  The current working directory.
               %~  The  current working directory, but with one's
                   home directory represented by  `~'  and  other
                   users' home directories represented by `~user'
                   as per Filename substitution.  `~user' substi-
                   tution  happens  only if the shell has already
                   used `~user' in a pathname in the current ses-
                   sion.
               %c[[0]n], %.[[0]n]
                   The  trailing component of the current working
                   directory, or n trailing components if a digit
                   n  is given.  If n begins with `0', the number
                   of skipped  components  precede  the  trailing
                   component(s)  in  the format `/<skipped>trail-
                   ing'.  If the ellipsis shell variable is  set,
                   skipped   components  are  represented  by  an
                   ellipsis so the whole  becomes  `...trailing'.
                   `~' substitution is done as in `%~' above, but
                   the `~' component  is  ignored  when  counting
                   trailing components.
               %C  Like %c, but without `~' substitution.
               %h, %!, !
                   The current history event number.
               %M  The full hostname.
               %m  The hostname up to the first `.'.
               %S (%s)
                   Start (stop) standout mode.
               %B (%b)
                   Start (stop) boldfacing mode.
               %U (%u)
                   Start (stop) underline mode.
               %t, %@
                   The time of day in 12-hour AM/PM format.
               %T  Like  `%t', but in 24-hour format (but see the
                   ampm shell variable).
               %p  The `precise' time of  day  in  12-hour  AM/PM
                   format, with seconds.
               %P  Like  `%p', but in 24-hour format (but see the
                   ampm shell variable).
               \c  c is parsed as in bindkey.
               ^c  c is parsed as in bindkey.
               %%  A single `%'.
               %n  The user name.
               %d  The weekday in `Day' format.
               %D  The day in `dd' format.
               %w  The month in `Mon' format.
               %W  The month in `mm' format.
               %y  The year in `yy' format.
               %Y  The year in `yyyy' format.
               %l  The shell's tty.
               %L  Clears from the end of the prompt  to  end  of
                   the display or the end of the line.
               %$  Expands the shell or environment variable name
                   immediately after the `$'.
               %#  `>' (or the first character of the promptchars
                   shell  variable) for normal users, `#' (or the
                   second character of promptchars) for the supe-
                   ruser.
               %{string%}
                   Includes  string as a literal escape sequence.
                   It should be  used  only  to  change  terminal
                   attributes  and  should  not  move  the cursor
                   location.  This cannot be the last sequence in
                   prompt.
               %?  The  return  code of the command executed just
                   before the prompt.
               %R  In prompt2, the  status  of  the  parser.   In
                   prompt3,  the  corrected  string.  In history,
                   the history string.

               `%B', `%S', `%U' and `%{string%}' are available in
               only eight-bit-clean shells; see the version shell
               variable.

               The bold, standout  and  underline  sequences  are
               often  used to distinguish a superuser shell.  For
               example,

                   > set prompt =  "%m  [%h]  %B[%@]%b  [%/]  you
                   rang? "
                   tut [37] [2:54pm] [/usr/accts/sys] you rang? _

               If `%t', `%@', `%T', `%p', or `%P'  is  used,  and
               noding  is  not  set,  then  print  `DING!' on the
               change of hour (i.e, `:00' minutes) instead of the
               actual time.

               Set by default to `%# ' in interactive shells.
```


----------



## mr. k (Oct 11, 2002)

hey does anyone know how to change the prompt on a tcsh running in 10.1.5?  mine got all goofed up and its stupid now.
-thanks


----------



## jwalk76 (Oct 22, 2002)

in ~/.tcshrc:

set prompt="whatever"

i like:

set prompt="%t [%/]$ "


----------

