If you are wanting to change your colours in the console, that is outside X, then you can specify colours in your .bashrc
, like so:
if [ "$TERM" = "linux" ]; then
echo -en "\e]P0222222" #black
echo -en "\e]P8222222" #darkgrey
echo -en "\e]P1803232" #darkred
....
fi
Where you are defining black as #222222
See this post for the details: http://phraktured.net/linux-console-colors.html
If you are working in X, then you can customize your setup by defining your colours in your .Xresources
like so:
!black
*color0: #3D3D3D
*color8: #5E5E5E
!red
*color1: #8C4665
*color9: #BF4D80
...
and then sourcing this file when you start X, typically from your .xinitrc
:
xrdb -merge ~/.Xresources
The Arch Wiki has a page on .Xresources that explains all of the options:
https://wiki.archlinux.org/index.php/Xresources
Another enhancement you can make either in X or not is to specify all of the different filetypes that you would like to colour—and their respective colours in a .dir_colors
file, like so:
.xinitrc 01;31
.Xauthority 01;31
.Xmodmap 00;31
.Xresources 01;33
...
To get started, copy /etc/dir_colors
to your user's /home
directory and make your changes. Then source this from your .bashrc
with eval $(dircolors -b ~/.dir_colors)
This will allow you fine-grained control over the colours of files and filetypes when you use ls
.
You can find (an incredibly detailed and thorough) .dir_colors
example file here:
https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS
With a combination of all three approaches, you can create a reasonably uniform setup, whether you are working in the console or in X.
You can create a section [color]
in your ~/.gitconfig
with e.g. the following content
[color]
diff = auto
status = auto
branch = auto
interactive = auto
ui = true
pager = true
You can also fine control what you want to have coloured in what way, e.g.
[color "status"]
added = green
changed = red bold
untracked = magenta bold
[color "branch"]
remote = yellow
I hope this gets you started. And of course, you need a terminal which supports colour.
Best Answer
With GNU
grep
provided it has been build with PCRE support:With
sed
:Note that using
setaf
assumes the terminal supports ANSI colour escape sequences, so you might as well hard code it, which would make it less verbose as well. Here withksh93
(alsobash
andzsh
) syntax:To generalise to the nth column:
References