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
  1. 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.

Crossposts:

  • z3rOR0ne@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    25 days ago

    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 '
    
  • nore {she/her}@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    25 days ago

    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
    
  • DeuxChevaux@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    25 days ago

    Mine is simple (inspired by Kali Linux, if that’s even correct)
    PS1='\[\033[0;32m\]┌──[\t] (\u@\h)-[\w]\n└─$ \[\033[0m\]'

  • golden_zealot@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    25 days ago

    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\]\$ '

  • Rivalarrival@lemmy.today
    link
    fedilink
    English
    arrow-up
    1
    ·
    25 days ago

    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.

  • winety@lemmy.zip
    link
    fedilink
    arrow-up
    1
    ·
    25 days ago

    Mine’s really simple; I just make the path bold and yellow:

    My Bash prompt

    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.

  • Daniel Quinn@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    23 days ago

    My shit is custom and rather elaborate.

    Screenshot of the prompt

    From left-to-right:

    • name@server-name
    • Uptime (multiplied by 10 and rounded to the nearest integer to save space)
    • Percentage disk space available on /
    • Number on established network connections
    • Git branch : commit
    • Python virtualenv
    • [new line]
    • date and time

    The code for this is on GitLab.

  • TheFadingOne@feddit.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    25 days ago

    I’m mainly using zsh but I have a backup bash prompt that closely mirrors it. It shows the return value of the previous command if it’s non-zero and gives some information about the current git repository if there is one.

    retval() {
            if [ $? -eq 0 ]; then
                    printf ""
            else
                    printf "\001\e[31m\002($?)\001\e[0m\002"
            fi
    }
    
    gitbranch() {
            if type git 2> /dev/null 1> /dev/null && git rev-parse 2> /dev/null 1> /dev/null ; then
                    MODIFIED=""
                    if [[ -n $(git status --short) ]]; then
                            MODIFIED=" M"
                    fi
                    BRANCH=$(git rev-parse --abbrev-ref HEAD)
                    SHORTREF=$(git rev-parse --short HEAD)
                    printf "\001\e[31m\002%s\001\e[0m\002(%s)\001\e[31m\002%s\001\e[0m\002" $BRANCH $SHORTREF $MODIFIED
            else
                    echo -n ""
            fi
    }
    
    export PROMPT_DIRTRIM=3
    
    PS1='$(retval)[\001\e[1;95m\002\u\001\e[0m\002@\h : \w $(gitbranch)] \$ '
    PS2='> '
    

  • catloaf@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    25 days ago
    export PS1="\[\e]0;\u@\h:\w\a\]\[\e[1;34m\]\u@\h:\w\[\e[0m\]\$ "
    

    I am a simple man.

  • Asparagus0098@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    25 days ago

    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.