Kolory w konsoli Linux-a

Stronę tą wyświetlono już: 195 razy

Kolory czcionki w konsoli

W systemach Linux można wprowadzać specjalne sekwencje kodów ANSI escape code, które pozwalają na zmianę sposobu wyświetlania danych na ekranie programu. Oto prosty kod, który wyświetla tekst z zmienionym kolorem:

Listing 1
  1. for i in list(range(31, 38)) + list(range(91, 98)):
  2. print("\033[{i}m\\033[{i}m".format(i = i))

gdzie część kodu:

Listing 2
  1. \033[{i}m

zmieni kolor tekstu, oczywiście za {i} należy podstawić liczby z zakresu 31 - 37 (dla ciemnych kolorów) lub 91 - 97 (dla kolorów jasnych). Kod 33 to znak ESC zapisany w systemie ósemkowym. Kolory te będą wyglądały mniej więcej tak:

\033[31
\033[32
\033[33
\033[34
\033[35
\033[36
\033[37
\033[91
\033[92
\033[93
\033[94
\033[95
\033[96
\033[97

Zmiana koloru tła w konsoli

Zmianę koloru tła zapewnią kody od 40 - 47, gdzie 40 to czarny kolor tła. Oto kod generujący przykładowy tekst:

Listing 3
  1. for i in range(40, 48):
  2. print("\033[{i}m\\033[{i}m\033[40m".format(i = i))

wynik działania będzie mniej więcej taki:

\033[40
\033[41
\033[42
\033[43
\033[44
\033[45
\033[46
\033[47

Łączenie zmiany koloru tła i czcionki w jednym poleceniu

Zmianę koloru czcionki jak i tła można wykonać w jednym poleceniu:

Listing 4
  1. print("\033[32;45m\\033[32;45m\033[0m")

Style: pogrubienia, kursywy, podkreślenia, przekreślenia i resetowanie wszystkich styli

Linux oferuje również możliwość formatowania tekstu:

Listing 5
  1. print("\033[1mTekst pogrubiony - \\033[1m\033[0m tekst po zresetowaniu ustawień \033[0m")
  2. print("\033[3mKursywa (nie zawsze działa) - \\033[3m\033[0m tekst po zresetowaniu ustawień \033[0m")
  3. print("\033[4mTekst podkreślony - \\033[4m\033[0m tekst po zresetowaniu ustawień \033[0m")
  4. print("\033[9mTekst przekreślony - \\033[9m\033[0m tekst po zresetowaniu ustawień \033[0m")

Efekt powyższego kodu:

Tekst pobrubiony\033[1m tekst po zresetowaniu ustawień \033[0m
Kursywa\033[3m tekst po zresetowaniu ustawień \033[0m
Tekst podkreślony\033[4m tekst po zresetowaniu ustawień \033[0m
Tekst podkreślony\033[9m tekst po zresetowaniu ustawień \033[0m

Komentarze