this post was submitted on 22 Mar 2025
0 points (NaN% liked)

Linux

56805 readers
381 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by AlpΓ‘r-Etele MΓ©der, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
0
Share your Bash prompts! (sh.itjust.works)
submitted 4 months ago* (last edited 4 months ago) by Kalcifer@sh.itjust.works to c/linux@lemmy.ml
 

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:

top 24 comments
sorted by: hot top controversial new old
[–] wwwgem@lemmy.ml 1 points 4 months ago

Maybe you can find some inspiration here.

[–] z3rOR0ne@lemmy.ml 1 points 4 months ago* (last edited 4 months 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 '
[–] MadMadBunny@lemmy.ca 1 points 4 months ago* (last edited 4 months ago) (1 children)
[–] hallettj@leminal.space 1 points 4 months ago

Do you have anything to check whether the current directory is under /media/ or /mnt/ so that you can change the drive letter according to a deterministic assignment?

/s

[–] beirdobaggins@lemmy.world 1 points 4 months ago

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

[–] catloaf@lemm.ee 1 points 4 months ago
export PS1="\[\e]0;\u@\h:\w\a\]\[\e[1;34m\]\u@\h:\w\[\e[0m\]\$ "

I am a simple man.

[–] questionAsker@lemmy.ml 1 points 4 months ago

[username@host ~]$ >

[–] richardisaguy@lemmy.world 1 points 4 months ago* (last edited 4 months ago)

computer /usr/share/ $>

[–] SinkingLotus@lemmy.world 1 points 4 months ago

PS1='\[\e[1m\][\[\e[92m\]\u\[\e[0m\]@\[\e[96;1;3m\]\h\[\e[0;1m\]]\[\e[0m\] \[\e[1m\][\[\e[38;5;226m\]\w\[\e[39m\]]\[\e[0m\] \[\e[97;1m\]~\[\e[92;5m\]\$\[\e[0m\] '

image

Note: The "$" prompt flashes like a typical cursor.

[–] DeuxChevaux@lemmy.world 1 points 4 months ago

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

[–] Asparagus0098@sh.itjust.works 1 points 4 months 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.

[–] Xanza@lemm.ee 1 points 4 months ago
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\]\\$ "
[–] nore@sh.itjust.works 1 points 4 months 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
[–] Rivalarrival@lemmy.today 1 points 4 months 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.

[–] djehuti@programming.dev 1 points 4 months ago

$ or # , depending on whether I'm root.

[–] pewpew@feddit.it 1 points 4 months ago* (last edited 4 months ago)

Ok after viewing your prompts I noticed that mine is kinda lame

[–] Tiger_Man_@lemmy.blahaj.zone 1 points 4 months ago

Mine is just status(if not zero) and wd

[–] winety@lemmy.zip 1 points 4 months 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.

[–] TheFadingOne@feddit.org 1 points 4 months ago* (last edited 4 months 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='> '

[–] golden_zealot@lemmy.ml 1 points 4 months 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\]\$ '

[–] danielquinn@lemmy.ca 1 points 4 months ago* (last edited 4 months 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.

[–] Termight@lemmy.ml 1 points 4 months ago

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)* Β±

[1] https://github.com/liquidprompt/liquidprompt

[–] mbirth@lemmy.ml 0 points 4 months ago (1 children)

I’m using fish and the default is enough for anybody. 😁

[–] crmsnbleyd@sopuli.xyz 0 points 4 months ago

I love it! You get git and virtual env integration for free :)