De acordo com o artigo https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit da Wiki, existem 8 "cores padrão" e 8 "cores de alta intensidade". Quando verifiquei a capacidade do terminal do console virtual do Linux (tty) por tput colors
ele mostrou 8. No entanto, se eu imprimi-los em VT recebo 16 cores distintas. Por que é assim?
Aqui está a captura de tela:
Vejo que não há suporte para 256 cores. Console apenas mistura os existentes causando tal "efeito". Então eu não pergunto por que ele não suporta X ou algo assim.
Se você olhar de perto, verá que as cores de 0 a 7 são versões mais escuras de 8 a 15.
Este esquema é baseado no hardware de modo de texto antigo que usava 4 bits para determinar Vermelho, Verde, Azul e Intensidade, assim:
Some os valores para o que você deseja. Vermelho claro = 8+4 = 12, por exemplo.
Os bits são organizados de forma diferente no seu exemplo, parece 1=vermelho, 2=verde, 4=azul.
Neste esquema existem 3 bits de cor, então 8 cores diferentes (000 ou preto é uma cor) com 1 bit de brilho ou intensidade selecionável. Isso é o que se entende por "8 cores padrão e 8 cores de alta intensidade".
(Esses bits foram armazenados em uma seção de memória chamada "memória de atributos" - os outros 4 bits podem selecionar uma cor de fundo e ativar/desativar o modo intermitente.)
Quanto ao motivo pelo qual você não está vendo 256 cores, seu terminal provavelmente não está no modo de 256 cores ou algo assim.