How to show the host name in Linux commandline prompt

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:

coolservername:~# 

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.


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.


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

HOSTNAME=put_what_you_want_to_see_in_bash_prompt_here

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
fi

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