Many people don’t think of their command prompt as a particularly useful thing, or even pay it much attention. To me, this is a bit of a shame, as a useful prompt can change the way you use the command line. Well I’ve scoured the Interwebs looking for the best, most useful, or sometimes most amusing bash prompts. Here, in no particular order, are the ones I’d be most likely to use on my computers.
Note – to use any of these prompts, you can copy & paste the “PS1=” line directly into your terminal. To make the change permanent, paste the line to the end of your ~/.bashrc file.
1. Show Happy face upon successful execution
This prompt is probably the most amusing one on the list, but remains useful. The idea is that as long as your commands execute successfully, your prompt shows a happy face. Any time a command fails, it shows a sad face instead.
Example:

Code:
PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "
2.Change color on bad command
Here’s one of my favorites. This prompt has it all. Like above, the prompt changes color if your last command failed to run successfully, but it also shortens long paths and contains the bash history number of each command for easy retrieval.
Example:

Code:
PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'
3. Multi lines prompt
If you’re the type who wants to pack your prompt full of information, then here’s the one for you. This one is a multi-line prompt containing date/time, full path, user and host, active terminal, even file count and space usage.
Example:

Code:
PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"
4. Color manage your prompt
There’s nothing particularly fancy about this prompt, other than the good use of color to separate the different pieces of information. As you can see, it provides time, username, hostname, and current directory. Fairly minimal but useful.
Example:

Code:
PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
5. Show full path
This one’s a nice, clean, minimal 2-line prompt (plus a blank line at the top). You’ve got your full path at the first line and pretty much just the username at the bottom. If you want to remove the blank line at the start of every prompt, just take out the first “\n”.
Example:

Code:
PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"
6. Show background job count
Another nifty 2-liner, but this one’s got some info we haven’t used before. The first line is the normal user@host, with full path. On the second line we’ve got history number and a count of the jobs running in the background.
Example:

Code:
PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '
7. Display directory information
A very elegant and nice looking prompt design. With this one we’ve got user/host, number of jobs, and date/time on the top line. Below that is current directory along with number of files in that directory and their disk usage.
Example:

Code:
PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, \$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"
8. My Prompt
And finally, the prompt I personally like to use. It’s a modification of #7, changed to take up less space and include only the information I most want in my prompt. I like the two-line style as it lets me see the full path without reducing the space for my actual commands.
Example:

Code:
PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"
If you’d like to share your prompt, please do so in the comments below.
Pingback: Eustáquio Rangel (taq) 's status on Friday, 04-Sep-09 14:53:31 UTC - Identi.ca
Pingback: Take command of your BASH prompt - Hack a Day
Pingback: Take command of your BASH prompt | Mobile Jewels
Pingback: 8 Useful and Interesting Bash Prompts – Make Tech Easier « Netcrema – creme de la social news via digg + delicious + stumpleupon + reddit
Pingback: links for 2009-09-05 .:: [aka ????????] Ozver.in | ???????
Pingback: Take command of your BASH prompt | Diy all the Way
Pingback: DöööDööö» Blogarchiv » Kommandozeile Bunt machen
Pingback: GoblinX Project » GoblinX Newsletter, Issue 216 (09/06/2009)
Pingback: All Teched Up « Caintech.co.uk
Pingback: 8??????Bash????? | ?? - CoolShell.cn
Pingback: 8 Useful and Interesting Bash Prompts – Make Tech Easier | Perculaclowns Blog
Pingback: Scott Nesbitt (scottnesbitt) 's status on Monday, 07-Sep-09 22:04:12 UTC - Identi.ca
Pingback: NexNova » Blog Archive » Links del giorno: September 8, 2009
Pingback: Luis Ángel Fernández Fernández (lafdez) 's status on Tuesday, 08-Sep-09 06:40:16 UTC - Identi.ca
Pingback: lostson (lostson) 's status on Tuesday, 08-Sep-09 10:19:46 UTC - Identi.ca
Pingback: Interesting bash prompts « ejes consulting
Pingback: De ideale BASH-prompt « NLLINUX
Pingback: Shroom.com » Blog Archive » bash prompt fun
Pingback: More Light! More Light! :: links for 2009-09-09
Pingback: Hacer útil el prompt de bash
Pingback: Links for 10th September 2009 | Velcro City Tourist Board
Pingback: Destillat KW37-2009 | duetsch.info - GNU/Linux, Open Source, Softwareentwicklung, Selbstmanagement, Vim ...
Pingback: [StumbleUpon] 8 Bash Prompts utili e interessanti | Senza categoria
Pingback: Interessante Links - Tom Schimana
Pingback: Paul Gysler (hammerandbank) 's status on Monday, 19-Oct-09 18:17:50 UTC - Identi.ca
Pingback: Und da war da noch… 2009-12-05 « h t t p : / / m a l i s o n . o r g
Pingback: XoIN’s Blog » 10 leuke en handige dingen op het internet
Pingback: Add updated weather to your BASH prompt | geek.phatus.com
Pingback: How to Save and Share Bash Settings Using Pastebin – Make Tech Easier
Pingback: Bash Prompts · Greg's blog
Pingback: Shiny bash prompt « plazm.dk
Pingback: BitFreedom » Blog Archive » Customized Bash Prompt - Free software, coding, and system administration
Pingback: Myrice's Blog » ????????