I have several VMs and right now my command-line prompt looks like -bash-3.2$; identical on every VM, because it doesn't contain the host name. I need to always see which VM I'm on using hostname before I do any operation. How can I add the host name to the shell prompt?

ENV: CentOS/ssh

  • BTW, you don’t need to “Improve” a suggested edit that you don’t approve of, and then revert all the changes.  Just “Reject” the edit and it will go away. – G-Man Says 'Reinstate Monica' Jul 24 '15 at 19:20
  • 1
    I always use a prompt where I can easily copy it for a scp-command, so it is export PS1='\u@\h:\w \$ '. – ott-- Jul 24 '15 at 19:56

Just change the value of the $PS1 environment variable:

PS1="\h$ "

where \h is replaced with the hostname. Add that to /etc/bash.bashrc to set it permanent.

| improve this answer | |

Look into your ~/.bashrc or ~/.profile, there may be a commented prompt setup that should do what you want, like this one on our infra:

export PS1='\h:\w\$ '

Which looks like:


Or if you plan on logging as non-root, you can use:

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

to add username before the hostname.

You can have fun adding colours, multiline or whatever info you want in the prompt, a quick search on "bash prompts" should give you plenty of hints.

| improve this answer | |

I like when the shell prompt shows the username, hostname and the name of the working directory. In addition, I like, when all of this is shown in colors. So I usually put

export PS1='\[\033[0;32m\]\u@\h:\[\033[36m\]\W\[\033[0m\] \$ '

in ~/.bashrc. In order to apply changes immediately, call

. ~/.bashrc

Also if you switch to root using su it is good to see bash prompt in a different color, so that you exercise extra caution. For this I add the line

export PS1='\[\033[0;31m\]\u@\h:\[\033[36m\]\W\[\033[0m\] \$ '

into /root/.bashrc. And call

. /root/.bashrc

to apply the changes. Then it looks like this

enter image description here

Very often VPS server admins provide dumb hostnames. In order to change it, open /etc/sysconfig/network and change the line


If you want different colors for username@host part, you have to change 0;32m part in the first example, or 0;31m part in the second example. The list of available colors can be found here

Since .bashrc is executed for non-login shells, do not forget to double check that

if [ -f ~/.bashrc ]; then
         . ~/.bashrc

is present in ~/.bash_profile, since ~/.bash_profile is executed at your login. And also add the same piece into /root/.bash_profile.

| improve this answer | |

As well as changing prompt there is an option in the configuration of konsole and the gnome terminal emulator, that will change the title bar (or tab title).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.