Hack 29. PS1 – Default Interaction Prompt

by Ramesh

The default interactive prompt on your Linux can be modified as shown below to something useful and informative. In the following example, the default PS1 was “\s-\v\$”, which displays the shell name and the version number. Let us change this default behavior to display the username, hostname and current working directory name as shown below.

  1. -bash-3.2$ export PS1="\u@\h \w> "
  2.  
  3. ramesh@dev-db ~> cd /etc/mail
  4.  
  5. ramesh@dev-db /etc/mail>
  6.  
  7. [Note: Prompt changed to "username@hostname current-dir>" format]

Following PS1 codes are used in this example:

  • \u – Username
  • \h – Hostname
  • \w – Full pathname of current directory. Please note that when you are in the home directory, this will display only ~ as shown above

    Note that there is a space at the end in the value of PS1. Personally, I prefer a space at the end of the prompt for better readability. Make this setting permanent by adding export PS1=”\u@\h \w> ” to either .bash_profile (or) .bashrc as shown below.

  1. ramesh@dev-db ~> vi ~/.bash_profile
  2.  
  3. ramesh@dev-db ~> vi ~/.bashrc
  4.  
  5. [Note: Add export PS1="\u@\h \w> " to one of the above files]

Refer to the next chapter for several practical examples of PS1 usage in detail.