Skip to content

Instantly share code, notes, and snippets.

@Prakasaka
Forked from JBlond/bash-colors.md
Created July 25, 2020 09:14
Show Gist options
  • Save Prakasaka/219fe5695beeb4d6311583e79933a009 to your computer and use it in GitHub Desktop.
Save Prakasaka/219fe5695beeb4d6311583e79933a009 to your computer and use it in GitHub Desktop.
The entire table of ANSI color codes.

Regular Colors

Value Color
\e[0;30m Black
\e[0;31m Red
\e[0;32m Green
\e[0;33m Yellow
\e[0;34m Blue
\e[0;35m Purple
\e[0;36m Cyan
\e[0;37m White

Bold

Value Color
\e[1;30m Black
\e[1;31m Red
\e[1;32m Green
\e[1;33m Yellow
\e[1;34m Blue
\e[1;35m Purple
\e[1;36m Cyan
\e[1;37m White

Underline

Value Color
\e[4;30m Black
\e[4;31m Red
\e[4;32m Green
\e[4;33m Yellow
\e[4;34m Blue
\e[4;35m Purple
\e[4;36m Cyan
\e[4;37m White

Background

Value Color
\e[40m Black
\e[41m Red
\e[42m Green
\e[43m Yellow
\e[44m Blue
\e[45m Purple
\e[46m Cyan
\e[47m White

High Intensty

Value Color
\e[0;90m Black
\e[0;91m Red
\e[0;92m Green
\e[0;93m Yellow
\e[0;94m Blue
\e[0;95m Purple
\e[0;96m Cyan
\e[0;97m White

Bold High Intensty

Value Color
\e[1;90m Black
\e[1;91m Red
\e[1;92m Green
\e[1;93m Yellow
\e[1;94m Blue
\e[1;95m Purple
\e[1;96m Cyan
\e[1;97m White

High Intensty backgrounds

Value Color
\e[0;100m Black
\e[0;101m Red
\e[0;102m Green
\e[0;103m Yellow
\e[0;104m Blue
\e[0;105m Purple
\e[0;106m Cyan
\e[0;107m White

Reset

Value Color
\e[0m Reset
@zer0ring
Copy link

Btw for reference, most programming languages (like C, C++, and Go) use \033 as the escape code \e.

while \e is not standard c it will be supported by almost any compiler.

Except in awk (as I discovered a short while ago) which is extensively used in Linux so it should fail only in numerous scenarios. \033 works perfectly cromulantly with both awk/nawk, as tested on RPi3B using the following 1-liner:

ifconfig | grep -E "(eth|wlan)[0-9]*\: |([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk 'BEGIN {ORS=" "} {gsub(/flags.*/, "", $2); gsub(/inet6?/, "", $1); print "\033[1;7m"$1"\033[0m" $2} END {printf "\n"}'

@yas1t
Copy link

yas1t commented Jun 29, 2021

thanks dude

@DJREMiX6
Copy link

DJREMiX6 commented Dec 8, 2021

For NodeJS you have to use the "\x1b" escape character like "\x1b[0;30m" instead of "\e[0;30m"

@3UR
Copy link

3UR commented Jan 7, 2022

\033 if your using python

@bczsalba
Copy link

bczsalba commented Jan 7, 2022

\x1b works on Python as well.

@JAYD3V
Copy link

JAYD3V commented Mar 5, 2022

2022-03-05 (JAYD3V)

Color Codes, Escapes & Languages

I was able to use colors in my terminal by using a variety of different escape values. As the conversation implies above, different languages require different escapes, furthermore; there are several different sequences that are implemented for ANSI escapes, and they can vary quite a bit. Some escapes have a cleaner sequence than others. Personally I like the \e way of writing an escape, as it is clean and simple, However, I couldn't get it to work anywhere, save the BASH scripting language.

Each escape works with its adjacent language

  1. \x1b  👉‍    Node.js
  2. \x1b  👉‍    Node.js w/ TS
  3. \033  👉‍    GNU Cpp
  4. \033  👉‍    ANSI C
  5. \e  👉‍    BASH

@JAYD3V
Copy link

JAYD3V commented Mar 7, 2022

ITALICS = \e[3;37m

Obviously you can replace 37 with a different color.

@Nasah-Kuma
Copy link

Thank you

@RixInGithub
Copy link

But what about other decorations?

@jammywwh
Copy link

Thank you!

@RixInGithub
Copy link

2022-03-05 (JAYD3V)

Color Codes, Escapes & Languages

I was able to use colors in my terminal by using a variety of different escape values. As the conversation implies above, different languages require different escapes, furthermore; there are several different sequences that are implemented for ANSI escapes, and they can vary quite a bit. Some escapes have a cleaner sequence than others. Personally I like the \e way of writing an escape, as it is clean and simple, However, I couldn't get it to work anywhere, save the BASH scripting language.

Each escape works with its adjacent language

  1. \x1b  👉‍    Node.js
  2. \x1b  👉‍    Node.js w/ TS
  3. \033  👉‍    GNU Cpp
  4. \033  👉‍    ANSI C
  5. \e  👉‍    BASH

And with Python it's \u001b

@u9000-Nine
Copy link

u9000-Nine commented Sep 26, 2022 via email

@HIFun-cws
Copy link

Well... This type of code is ALLWAYS messy.

@RixInGithub
Copy link

Well... This type of code is ALLWAYS messy.

Agreed XD

@clort81
Copy link

clort81 commented Mar 16, 2023

Your list is missing all the color codes for 256 color terminals.
e.g. ^[[38;5;0;48;15;0m
https://talyian.github.io/ansicolors/
I'm looking for a table with the rgb values. Who broke websearch?

@bczsalba
Copy link

bczsalba commented Mar 17, 2023

@clort81

Your list is missing all the color codes for 256 color terminals.
e.g. ^[[38;5;0;48;15;0m

What is this meant to do? If I'm reading it correctly, it would:

  1. 38;5;0 - set foreground color to 0 (black)
  2. 48;15;0 - try to set a background color but fail, since 15 isn't a valid option (should be 2 for RGB, 5 for 256 color), and discard 0

256-colors are set using the format 38;5;{index}m for foreground, 48;5;{index}m for background.

I'm looking for a table with the rgb values.

I use this in my library, it should be accurate (by standard) but terminals (and their users) have a tendency to mess with the defaults.

https://github.com/bczsalba/pytermgui/blob/eb2350ce93313291c4c4a25c475ff4e504c831ba/pytermgui/color_info.py#L6-L263

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment