I’m looking for inspiration for a custom Bash prompt[1]. I’d love to see yours! 😊 If possible, include both the prompt’s PS1
, and a screenshot/example of what it looks like.
References
- Type: Documentation. Title: “Bash Reference Manual”. Publisher: Gnu Project. Edition: 5.2. Published: 2022-09-19. Accessed: 2025-03-21T02:46Z. URI: https://www.gnu.org/software/bash/manual/html_node/index.html.
- §6.9 “Controlling the Prompt”. URI: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html.
Crossposts:
Prompt is pretty simple, mainly just adjusted coloring and added a timestamp.
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36;01m\]\t \[\033[01;32m\]\u@\[\033[01;37;01m\]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '
Mine’s really simple; I just make the path bold and yellow:
What I like to do is change the colour depending on the machine I ssh into, e.g. make the path red on my Raspberry Pi.
export PS1="\[\e[31m\][\[\e[m\]\[\e[38;5;172m\]\u\[\e[m\]@\[\e[38;5;153m\]\h\[\e[m\] \[\e[38;5;214m\]\W\[\e[m\]\[\e[31m\]]\[\e[m\]\\$ "
Mine is simple (inspired by Kali Linux, if that’s even correct)
PS1='\[\033[0;32m\]┌──[\t] (\u@\h)-[\w]\n└─$ \[\033[0m\]'
Mine is just status(if not zero) and wd
[username@host ~]$ >
export PS1="\[\e]0;\u@\h:\w\a\]\[\e[1;34m\]\u@\h:\w\[\e[0m\]\$ "
I am a simple man.
Mine’s pretty simple:
## .bashrc export BLA=$(tput setaf 0) # Black export RED=$(tput setaf 1) # Red export GRE=$(tput setaf 2) # Green export YEL=$(tput setaf 3) # Yellow export BLU=$(tput setaf 4) # Blue export MAG=$(tput setaf 5) # Magenta export CYA=$(tput setaf 6) # Cyan export WHI=$(tput setaf 7) # White export BOL=$(tput bold) # Bold export ITA=$(tput sitm) # Italic export UL=$(tput smul) # Underline export NC=$(tput sgr0) # No color & format _branch() { local branch=$(__git_ps1 "%s") if [[ -z $branch ]]; then printf "${BLA}null${NC}" else printf "${CYA}$branch" fi } PS1='.\[$(_pwd)\] \[$BLA\]〜 \[$MAG\]git\[$BLA\]:\[$(_branch)\] \n \[$NC$CYA\]\! \[$MAG\]\$ \[$NC\]' ## .inputrc set vi-ins-mode-string \1\e[34m\2.INS set vi-cmd-mode-string \1\e[33m\2.CMD
I like Liquid Prompt[1] (A useful adaptive prompt for Bash & Zsh) Examples:
θ70° 2z termight@zone51:~ $ vi .bashrc
θ71° 2z termight@zone51:~/docker/invidious master(+34/-17)* ±
I use zsh, but my old Bash prompt looks almost the same as my Zsh prompt. Sorry, no screenshot, but here’s the code:
export PS1='\[\033[01;34m\][\[\033[01;37m\] \W\[\033[01;34m\]]\$\033[01;34m\] $(git branch 2>/dev/null | grep '^*' | colrm 1 2)\n\033[01;34m└─>\033[37m '
Maybe you can find some inspiration here.
$
or#
, depending on whether I’m root.I didn’t even know I needed to edit my prompt, but now I don’t know how I have lived with it for so long.
Mine shows the full path and a new line for commands.
It will also print the exit code of the last command in red above the prompt, if the exit code is not 0.
PS1='$(ec=“$?”; if [ $ec -gt 0 ]; then echo -e “\n”[\e[91m]“exit code: $ec”[\e[0m]; fi)\n[\e[92m]\u[\e[38;5;213m]@[\e[38;5;39m]\h[\e[0m]:$PWD\n$ ’
My bash prompt is just me copying the prompt I have set on fish.
# Prompt green=$'\e[38;5;2m' bright_red=$'\e[38;5;9m' bright_green=$'\e[38;5;10m' reset=$'\e[0m' prompt_command() { local exit_status=$? if [[ $exit_status != 0 ]]; then exit_color=$bright_red exit_prompt=" [$exit_status]" else exit_color=$bright_green exit_prompt="" fi } PROMPT_COMMAND=prompt_command PS1='\[$green\]\w\[$exit_color\]$exit_prompt\n❯ \[$reset\]'
I have a small issue with this prompt though. Sometimes the ❯ ends up turning white for some reason.