0% found this document useful (0 votes)
294 views

Linux Bash Colors

This document provides information on customizing the Bash prompt in Linux. It discusses: - Adding colors and additional information to the Bash prompt to make it more informative and visually distinctive. - Examples of basic prompts for regular users (green) and root (red), as well as slightly fancier prompts using escape sequences to color different parts. - Advanced prompts including adding load/memory status updates to the prompt using system information from /proc and customizing colors for the prompt. - Tips for using different colors for text entry versus output, adding random quotations or latest news to the prompt, and an overview of escape sequences for colorizing the prompt.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
294 views

Linux Bash Colors

This document provides information on customizing the Bash prompt in Linux. It discusses: - Adding colors and additional information to the Bash prompt to make it more informative and visually distinctive. - Examples of basic prompts for regular users (green) and root (red), as well as slightly fancier prompts using escape sequences to color different parts. - Advanced prompts including adding load/memory status updates to the prompt using system information from /proc and customizing colors for the prompt. - Tips for using different colors for text entry versus output, adding random quotations or latest news to the prompt, and an overview of escape sequences for colorizing the prompt.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Color Bash Prompt - ArchWiki

https://wiki.archlinux.org/index.php/Color_Bash_...

Color Bash Prompt


From ArchWiki
Related articles

There are a variety of possibilities for Bash's prompt (PS1), and customizing it can help your productivity at the
command line. Adding additional information and colors can make it the prompt to stand out.

Bash

This guide shows how to customize the personal prompt of a regular user.

Environment variables

Contents
1 Applying changes
2 Basic prompts
2.1 Regular user
2.2 Root
3 Slightly fancier prompts
3.1 Regular user
3.2 Root
4 Advanced prompts
4.1 Load/Mem Status for 256colors
4.2 List of colors for prompt and Bash
4.3 Prompt escapes
4.4 Positioning the cursor
4.5 Return value visualisation
5 Tips and tricks
5.1 Dierent colors for text entry and console output
5.2 Random quotations at logon
5.3 Colorized Arch latest news at logon
5.4 Colors overview
5.5 Colorized git prompt
6 See also

Applying changes
To apply changes from this article to your

.bashrc

(without ending subshells (http://mywiki.wooledge.org/SubShell)), do:

$ source ~/.bashrc

Basic prompts
The following settings are useful for distinguishing the root prompt from non-root users.

Regular user
A green prompt for regular users:
[chiri@zetsubou ~]$ _

~/.bashrc
#PS1='[\u@\h \W]\$ ' # Default
PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '

Root
A red prompt for root (copy from

/etc/skel/ ,

if not already):

[root@zetsubou ~]# _

/root/.bashrc
#PS1='[\u@\h \W]\$ ' # Default
PS1='\[\e[1;31m\][\u@\h \W]\$\[\e[0m\] '

Slightly fancier prompts


Regular user
A green/blue prompt for regular users:
chiri ~/docs $ echo "sample output text"
sample output text
chiri ~/docs $ _

PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'

This will give a very pleasing, colorful prompt and theme for the console with bright white text.
The string above contains color-set escape sequences (start coloring:

\[\e[color\] ,

end coloring:

\[\e[m\]

) and information placeholders:

\u - Username. The original prompt also has \h, which prints the host name.
\w - Current absolute path. Use \W for current relative path.
\$ - The prompt character (eg. # for root, $ for regular users).
The last color-set sequence, \[\e[1;37m\] , is not closed, so the remaining text (everything typed into the terminal, program output and so on) will be in that (bright
white) color. It may be desirable to change this color, or to delete the last escape sequence in order to leave the actual output in unaltered color.

Root
A red/blue prompt for root:
root ~/docs # echo "sample output text"

1 of 5

14-10-2014 19:28

Color Bash Prompt - ArchWiki

https://wiki.archlinux.org/index.php/Color_Bash_...

sample output text


root ~/docs # _

PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\]'

This will give you a red designation and green console text.

Advanced prompts
Load/Mem Status for 256colors
This is not even pushing the limits. Other than using sed to parse the memory and load average (using the -u option for non-buering), and the builtin history to
save your history to your HISTFILE after every command, which you may nd incredibly useful when dealing with crashing shells or subshells, this is essentially just
making BASH print variables it already knows, making this extremely fast compared to prompts with non-builtin commands.
This prompt is from AskApache.com's BASH Power Prompt article (http://www.askapache.com/linux-unix/bash-power-prompt.html), which goes into greater detail.
It is especially helpful for those wanting to understand 256 color terminals, ncurses, termcap, and terminfo.
This is for 256 color terminals, which is where the

\033[38;5;22m

terminal escapes come from.

802/1024MB
1.28 1.20 1.13 3/94 18563
[5416:17880 0:70] 05:35:50 Wed Apr 21 [[email protected]:/dev/pts/0 +1] ~
(1:70)$ _

PROMPT_COMMAND='history -a;echo -en "\033[m\033[38;5;2m"$(( $(sed -nu "s/MemFree:[\t ]\+\([0-9]\+\) kB/\1/p" /proc/meminfo)/1024))"\033[38;5;22m/"$(($(sed -nu "s/MemTotal:[\t ]\+\([0-9]\+\) kB/\1/Ip" /proc/meminfo)/1024 ))MB
PS1='\[\e[m\n\e[1;30m\][$$:$PPID \j:\!\[\e[1;30m\]]\[\e[0;36m\] \T \d \[\e[1;30m\][\[\e[1;34m\]\u@\H\[\e[1;30m\]:\[\e[0;37m\]${SSH_TTY} \[\e[0;32m\]+${SHLVL}\[\e[1;30m\]] \[\e[1;37m\]\w\[\e[0;37m\] \n($SHLVL:\!)\$ '

List of colors for prompt and Bash


Add this to your Bash le(s) to dene colors for prompt and commands:
txtblk='\e[0;30m'
txtred='\e[0;31m'
txtgrn='\e[0;32m'
txtylw='\e[0;33m'
txtblu='\e[0;34m'
txtpur='\e[0;35m'
txtcyn='\e[0;36m'
txtwht='\e[0;37m'
bldblk='\e[1;30m'
bldred='\e[1;31m'
bldgrn='\e[1;32m'
bldylw='\e[1;33m'
bldblu='\e[1;34m'
bldpur='\e[1;35m'
bldcyn='\e[1;36m'
bldwht='\e[1;37m'
unkblk='\e[4;30m'
undred='\e[4;31m'
undgrn='\e[4;32m'
undylw='\e[4;33m'
undblu='\e[4;34m'
undpur='\e[4;35m'
undcyn='\e[4;36m'
undwht='\e[4;37m'
bakblk='\e[40m'
bakred='\e[41m'
bakgrn='\e[42m'
bakylw='\e[43m'
bakblu='\e[44m'
bakpur='\e[45m'
bakcyn='\e[46m'
bakwht='\e[47m'
txtrst='\e[0m'

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

Black - Regular
Red
Green
Yellow
Blue
Purple
Cyan
White
Black - Bold
Red
Green
Yellow
Blue
Purple
Cyan
White
Black - Underline
Red
Green
Yellow
Blue
Purple
Cyan
White
Black - Background
Red
Green
Yellow
Blue
Purple
Cyan
White
Text Reset

Or if you prefer color names you will know how to spell without a special decoder ring and want high intensity colors:

2 of 5

# Reset
Color_Off='\e[0m'

# Text Reset

# Regular Colors
Black='\e[0;30m'
Red='\e[0;31m'
Green='\e[0;32m'
Yellow='\e[0;33m'
Blue='\e[0;34m'
Purple='\e[0;35m'
Cyan='\e[0;36m'
White='\e[0;37m'

#
#
#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple
Cyan
White

# Bold
BBlack='\e[1;30m'
BRed='\e[1;31m'
BGreen='\e[1;32m'
BYellow='\e[1;33m'
BBlue='\e[1;34m'
BPurple='\e[1;35m'
BCyan='\e[1;36m'
BWhite='\e[1;37m'

#
#
#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple
Cyan
White

# Underline
UBlack='\e[4;30m'
URed='\e[4;31m'
UGreen='\e[4;32m'
UYellow='\e[4;33m'
UBlue='\e[4;34m'
UPurple='\e[4;35m'
UCyan='\e[4;36m'
UWhite='\e[4;37m'

#
#
#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple
Cyan
White

# Background
On_Black='\e[40m'
On_Red='\e[41m'
On_Green='\e[42m'
On_Yellow='\e[43m'
On_Blue='\e[44m'
On_Purple='\e[45m'
On_Cyan='\e[46m'
On_White='\e[47m'

#
#
#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple
Cyan
White

# High Intensity
IBlack='\e[0;90m'
IRed='\e[0;91m'
IGreen='\e[0;92m'
IYellow='\e[0;93m'
IBlue='\e[0;94m'
IPurple='\e[0;95m'
ICyan='\e[0;96m'
IWhite='\e[0;97m'

#
#
#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple
Cyan
White

# Bold High Intensity


BIBlack='\e[1;90m'
BIRed='\e[1;91m'
BIGreen='\e[1;92m'
BIYellow='\e[1;93m'
BIBlue='\e[1;94m'
BIPurple='\e[1;95m'

#
#
#
#
#
#

Black
Red
Green
Yellow
Blue
Purple

14-10-2014 19:28

Color Bash Prompt - ArchWiki


BICyan='\e[1;96m'
BIWhite='\e[1;97m'

https://wiki.archlinux.org/index.php/Color_Bash_...

# Cyan
# White

# High Intensity backgrounds


On_IBlack='\e[0;100m'
# Black
On_IRed='\e[0;101m'
# Red
On_IGreen='\e[0;102m'
# Green
On_IYellow='\e[0;103m' # Yellow
On_IBlue='\e[0;104m'
# Blue
On_IPurple='\e[0;105m' # Purple
On_ICyan='\e[0;106m'
# Cyan
On_IWhite='\e[0;107m'
# White

To use in commands from your shell environment:


$ echo
test
$ echo
test
$ echo
test
$ echo
test
$ _

-e "${txtblu}test"
-e "${bldblu}test"
-e "${undblu}test"
-e "${bakblu}test"

PS1="\[$txtblu\]foo\[$txtred\] bar\[$txtrst\] baz : "

Double quotes enable


wrong.

$color

variable expansion and the

\[ \]

escapes around them make them not count as character positions and the cursor position is not

Note: If experiencing premature line wrapping when entering commands, then missing escapes ( \[

\] )

is most likely the reason.

Prompt escapes
The various Bash prompt escapes listed in the manpage:
Bash allows these prompt strings to be customized by inserting a
number of backslash-escaped special characters that are
decoded as follows:
\a
\d
\D{format}

\e
\h
\H
\j
\l
\n
\r
\s
\t
\T
\@
\A
\u
\v
\V
\w
\W
\!
\#
\$
\nnn
\\
\[
\]

an ASCII bell character (07)


the date in "Weekday Month Date" format (e.g., "Tue May 26")
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
an ASCII escape character (033)
the hostname up to the first `.'
the hostname
the number of jobs currently managed by the shell
the basename of the shell's terminal device name
newline
carriage return
the name of the shell, the basename of $0 (the portion following
the final slash)
the current time in 24-hour HH:MM:SS format
the current time in 12-hour HH:MM:SS format
the current time in 12-hour am/pm format
the current time in 24-hour HH:MM format
the username of the current user
the version of bash (e.g., 2.00)
the release of bash, version + patch level (e.g., 2.00.0)
the current working directory, with $HOME abbreviated with a tilde
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 $
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

The command number and the history number are usually different:
the history number of a command is its position in the history
list, which may include commands restored from the history file
(see HISTORY below), while the command number is the position in
the sequence of commands executed during the current shell session.
After the string is decoded, it is expanded via parameter
expansion, command substitution, arithmetic expansion, and quote
removal, subject to the value of the promptvars shell option (see
the description of the shopt command under SHELL BUILTIN COMMANDS
below).

Positioning the cursor


The following sequence sets the cursor position:
\[\033[<row>;<column>f\]

The current cursor position can be saved using:


\[\033[s\]

To restore a position, use the following sequence:


\[\033[u\]

The following example uses these sequences to display the time in the upper right corner:
PS1=">\[\033[s\]\[\033[1;\$((COLUMNS-4))f\]\$(date +%H:%M)\[\033[u\]"

The environment variable COLUMNS contains the number of columns of the terminal. The above example substracts 4 from its value in order to justify the ve
character wide output of date at the right border.

Return value visualisation


Use the following prompt to see the return value of last command:
0 ;) : true
0 ;) : false
1 ;( :

#return value visualisation

3 of 5

14-10-2014 19:28

Color Bash Prompt - ArchWiki

https://wiki.archlinux.org/index.php/Color_Bash_...

PS1="\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[0;32m\];)\"; else echo \"\[\033[0;31m\];(\"; fi)\[\033[00m\] : "

Zero is a green smiley and non-zero a red one. So your prompt will smile if the last operation was successful.
But you will probably want to include the username and hostname as well, like this:
0 ;) andy@alba ~ $ true
0 ;) andy@alba ~ $ false
1 ;( andy@alba ~ $ _

#return value visualisation


PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\];)\"; else echo \"\[\033[01;31m\];(\"; fi) $(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'; fi)\[\033[01;34m\]

Or, if you want, you can build your prompt using the unicode symbol for a zero status and the unicode symbol for a nonzero status:
0 andy@alba ~ $ true
0 andy@alba ~ $ false
1 andy@alba ~ $ I\ will\ try\ to\ type\ a\ wrong\ command...
bash: I will try to type a wrong command...: command not found
127 andy@alba ~ $ _

#return value visualisation


PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\]\342\234\223\"; else echo \"\[\033[01;31m\]\342\234\227\"; fi) $(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'

Alternatively, this can be made more readable (http://stackoverow.com/a/22362727/1821548) with

PROMPT_COMMAND

set_prompt () {
Last_Command=$? # Must come first!
Blue='\[\e[01;34m\]'
White='\[\e[01;37m\]'
Red='\[\e[01;31m\]'
Green='\[\e[01;32m\]'
Reset='\[\e[00m\]'
FancyX='\342\234\227'
Checkmark='\342\234\223'
# Add a bright white exit status for the last command
PS1="$White\$? "
# If it was successful, print a green check mark. Otherwise, print
# a red X.
if [[ $Last_Command == 0 ]]; then
PS1+="$Green$Checkmark "
else
PS1+="$Red$FancyX "
fi
# If root, just print the host in red. Otherwise, print the current user
# and host in green.
if [[ $EUID == 0 ]]; then
PS1+="$Red\\h "
else
PS1+="$Green\\u@\\h "
fi
# Print the working directory and prompt marker in blue, and reset
# the text color to the default.
PS1+="$Blue\\w \\\$$Reset "
}
PROMPT_COMMAND='set_prompt'

Here's an alternative that only includes the error status, if non-zero:


PROMPT_COMMAND='es=$?; [[ $es -eq 0 ]] && unset error || error=$(echo -e "\e[1;41m $es \e[40m")'
PS1="${error} ${PS1}"

Tips and tricks


Dierent colors for text entry and console output
If you do not reset the text color at the end of your prompt, both the text you enter and the console text will simply stay in that color. If you want to edit text in a
special color but still use the default color for command output, you will need to reset the color after you press Enter , but still before any commands get run. You
can do this by installing a DEBUG trap, like this:
~/.bashrc
trap 'echo -ne "\e[0m"' DEBUG

Random quotations at logon


For a brown Fortune prompt, add:
~/.bashrc
[[ "$PS1" ]] && echo -e "\e[00;33m$(/usr/bin/fortune)\e[00m"

Colorized Arch latest news at logon


To read 10 latest news items from the Arch ocial website (https://www.archlinux.org/news/), user grufo (https://aur.archlinux.org
/account.php?Action=AccountInfo&ID=33208) has written (https://bbs.archlinux.org/viewtopic.php?id=146850) a small and coloured RSS escaping script
(scrollable):
:: Arch Linux: Recent news updates ::
[ https://www.archlinux.org/news/ ]
The latest and greatest news from the Arch Linux distribution.
en-us Sun, 04 Nov 2012 16:09:46 +0000

:: End of initscripts support ::


[ https://www.archlinux.org/news/end-of-initscripts-support/ ]

Tom Gundersen wrote:


As systemd is now the default init system, Arch Linux is receiving minimal testing on initscripts systems. Due to a lack of resources and interest, we are unlikely to work on
fixing initscripts-specific bugs, and may close them as WONTFIX.
We therefore strongly encourage all users to migrate to systemd as soon as possible. See the systemd migration guide [ https://wiki.archlinux.org/index.php/Systemd ].
To ease the transition, initscripts support will remain in the official repositories for the time being, unless otherwise stated. As of January 2013, we will start removing
initscripts support (e.g., rc scripts) from individual packages without further notice.
Tom Gundersen Sun, 04 Nov 2012 16:09:46 +0000 tag:www.archlinux.org,2012-11-04:/news/end-of-initscripts-support/

:: November release of install media available ::

4 of 5

14-10-2014 19:28

Color Bash Prompt - ArchWiki

https://wiki.archlinux.org/index.php/Color_Bash_...

[ https://www.archlinux.org/news/november-release-of-install-media-available/ ]
~/.bashrc
# Arch latest news
if [ "$PS1" ] && [[ $(ping -c1 www.google.com 2>&-) ]]; then
# The characters ", " are used as metacharacters. They should not be encountered in a feed...
echo -e "$(echo $(curl --silent https://www.archlinux.org/feeds/news/ | sed -e ':a;N;$!ba;s/\n/ /g') | \
sed -e 's/&amp;/\&/g
s/&lt;\|&#60;/</g
s/&gt;\|&#62;/>/g
s/<\/a>//g
s/href\=\"//g
s/<title>/\\n\\n\\n
:: \\e[01;31m/g; s/<\/title>/\\e[00m ::\\n/g
s/<link>/ [ \\e[01;36m/g; s/<\/link>/\\e[00m ]/g
s/<description>/\\n\\n\\e[00;37m/g; s/<\/description>/\\e[00m\\n\\n/g
s/<p\( [^>]*\)\?>\|<br\s*\/\?>/\n/g
s/<b\( [^>]*\)\?>\|<strong\( [^>]*\)\?>/\\e[01;30m/g; s/<\/b>\|<\/strong>/\\e[00;37m/g
s/<i\( [^>]*\)\?>\|<em\( [^>]*\)\?>/\\e[41;37m/g; s/<\/i>\|<\/em>/\\e[00;37m/g
s/<u\( [^>]*\)\?>/\\e[4;37m/g; s/<\/u>/\\e[00;37m/g
s/<code\( [^>]*\)\?>/\\e[00m/g; s/<\/code>/\\e[00;37m/g
s/<a[^|t]*\([^\"]*\)\"[^>]*>\([^]*\)[^]*/\\e[01;31m\2\\e[00;37m \\e[01;34m[\\e[00;37m \\e[04m\1\\e[00;37m\\e[01;34m ]\\e[00;37m/g
s/<li\( [^>]*\)\?>/\n \\e[01;34m*\\e[00;37m /g
s/<!\[CDATA\[\|\]\]>//g
s/\|>\s*<//g
s/ *<[^>]\+> */ /g
s/[<>]//g')\n\n";
fi

To only get the absolute latest item, use this:


# Arch latest news
if [ "$PS1" ] && [[ $(ping -c1 www.google.com 2>&-) ]]; then
# The characters ", " are used as metacharacters. They should not be encountered in a feed...
echo -e "$(echo $(curl --silent https://www.archlinux.org/feeds/news/ | awk ' NR == 1 {while ($0 !~ /<\/item>/) {print;getline} sub(/<\/item>.*/,"</item>") ;print}' | sed -e ':a;N;$!ba;s/\n/ /g') | \
sed -e 's/&amp;/\&/g
s/&lt;\|&#60;/</g
s/&gt;\|&#62;/>/g
s/<\/a>//g
s/href\=\"//g
s/<title>/\\n\\n\\n
:: \\e[01;31m/g; s/<\/title>/\\e[00m ::\\n/g
s/<link>/ [ \\e[01;36m/g; s/<\/link>/\\e[00m ]/g
s/<description>/\\n\\n\\e[00;37m/g; s/<\/description>/\\e[00m\\n\\n/g
s/<p\( [^>]*\)\?>\|<br\s*\/\?>/\n/g
s/<b\( [^>]*\)\?>\|<strong\( [^>]*\)\?>/\\e[01;30m/g; s/<\/b>\|<\/strong>/\\e[00;37m/g
s/<i\( [^>]*\)\?>\|<em\( [^>]*\)\?>/\\e[41;37m/g; s/<\/i>\|<\/em>/\\e[00;37m/g
s/<u\( [^>]*\)\?>/\\e[4;37m/g; s/<\/u>/\\e[00;37m/g
s/<code\( [^>]*\)\?>/\\e[00m/g; s/<\/code>/\\e[00;37m/g
s/<a[^|t]*\([^\"]*\)\"[^>]*>\([^]*\)[^]*/\\e[01;31m\2\\e[00;37m \\e[01;34m[\\e[00;37m \\e[04m\1\\e[00;37m\\e[01;34m ]\\e[00;37m/g
s/<li\( [^>]*\)\?>/\n \\e[01;34m*\\e[00;37m /g
s/<!\[CDATA\[\|\]\]>//g
s/\|>\s*<//g
s/ *<[^>]\+> */ /g
s/[<>]//g')\n\n";
fi

Colors overview
The page at http://ascii-table.com/ansi-escape-sequences.php describes the various available color escapes. The following Bash function displays a table with
ready-to-copy escape codes.
~/.bashrc
colors() {
local fgc bgc vals seq0
printf
printf
printf
printf

"Color escapes are


"Values 30..37 are
"Values 40..47 are
"Value 1 gives a

%s\n" '\e[${value};...;${value}m'
\e[33mforeground colors\e[m\n"
\e[43mbackground colors\e[m\n"
\e[1mbold-faced look\e[m\n\n"

# foreground colors
for fgc in {30..37}; do
# background colors
for bgc in {40..47}; do
fgc=${fgc#37} # white
bgc=${bgc#40} # black
vals="${fgc:+$fgc;}${bgc}"
vals=${vals%%;}
seq0="${vals:+\e[${vals}m}"
printf " %-9s" "${seq0:-(default)}"
printf " ${seq0}TEXT\e[m"
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
done
echo; echo
done
}

Colorized git prompt


Source

/usr/share/git/completion/git-prompt.sh

for your shell:

~/.bashrc
source /usr/share/git/completion/git-prompt.sh

and use

__git_ps1

inside

PS1

or

PROMPT_COMMAND

. See Don't Reinvent the Wheel (http://ithaca.arpinum.org/2013/01/02/git-prompt.html) for details.

See also
If you want to create a style all your own, you can take a look at these tips:
Community examples and screenshots in the Forum thread: What's your PS1? (https://bbs.archlinux.org/viewtopic.php?id=50885)
The original not modied Gentoo's /etc/bash.bashrc le can be found here (http://www.jeremysands.com/archlinux/gentoo-bashrc-2008.0) [dead link 2014-08-05].
See also the gentoo-bashrc (https://aur.archlinux.org/packages/gentoo-bashrc/) package from AUR.
tput(1)
tput reference on bash-hackers.org (http://wiki.bash-hackers.org/scripting/terminalcodes)
Colours and Cursor Movement With tput (http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html)
Nice Xresources color schemes collection (http://xcolors.net/)
Bash Prompt HOWTO (http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html)
Giles Orr's collection of sample prompts (http://gilesorr.com/bashprompt/prompts/index.html)
Bash tips: Colors and formatting (http://misc.ogisoft.com/bash/tip_colors_and_formatting)
Retrieved from "https://wiki.archlinux.org/index.php?title=Color_Bash_Prompt&oldid=335899"
Categories: Eye candy Command shells
This page was last modied on 17 September 2014, at 21:20.
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.

5 of 5

14-10-2014 19:28

You might also like