To change PS1, you just have to change the value of PS1 shell variable. The value can be set in ~/.bashrc
or /etc/bashrc
file, depending on the distro. PS1 can be changed to any plain text like:
PS1="hello "
Besides the plain text, a number of backslash-escaped special characters are supported:
Format | Action |
---|---|
\a | an ASCII bell character (07) |
\d | the date in “Weekday Month Date” format (e.g., “Tue May 26”) |
\D{format} | the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required |
\e | an ASCII escape character (033) |
\h | the hostname up to the first ‘.’ |
\H | the hostname |
\j | the number of jobs currently managed by the shell |
\l | the basename of the shell’s terminal device name |
\n | newline |
\r | carriage return |
\s | the name of the shell, the basename of $0 (the portion following the final slash) |
\t | the current time in 24-hour HH:MM:SS format |
\T | the current time in 12-hour HH:MM:SS format |
\@ | the current time in 12-hour am/pm format |
\A | the current time in 24-hour HH:MM format |
\u | the username of the current user |
\v | the version of bash (e.g., 2.00) |
\V | the release of bash, version + patch level (e.g., 2.00.0) |
\w | the current working directory, with $HOME abbreviated with a tilde |
\W | the basename of the current working directory, with $HOME abbreviated with a tilde |
\! | the history number of this command |
\# | the command number of this command |
\$ | if the effective UID is 0, a #, otherwise a $ |
\nnn* | the character corresponding to the octal number nnn |
\ | a backslash |
\[ | begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt |
\] | end a sequence of non-printing characters |
So for example, we can set PS1 to:
PS1="\u@\h:\w\$ "
And it will output:
user@machine:~$