How to change the prompt in Linux?

This is changed by changing the environment variable PS1.

You can see the current value of PS1 by:

root@monu dev# echo $PS1

You can see the value to be equal to \u@\h \w\$, where:

  • \u : username
  • \h : hostname
  • \w : current working directory
  • \$ : a # symbol for the root user, a $ symbol for other users

If you want the change to be permanent, you have to add the script changing the value of PS1 in ~/.bashrc, since that it gets executed every time a user logs in.


This depends on your shell. As an important side note, you should never use the root account as a personal account. Create a normal user and set up access to sudo. Please check your distribution manual as to how to do this.

In zsh, you need to set the PROMPT variable like so:

PROMPT='%{ESC[38;5;24m%};%{ESC[0m%} '

zshell offers a lot of other options and this is really a minimal prompt.

In bash, you can set it this way:

local ROOK="\[\033[38;5;24m\]"
local DEFAULT="\[\033[0;39m\]"
PS1="${ROOK}\$${DEFAULT} "

Note that in both cases, I have a 256 colour enabled terminal. The man page will help a lot (man bash or man zsh).

Tags:

Bash

Prompt