터미널 배경색에 밝기를 적용할 수 없습니다

터미널 배경색에 밝기를 적용할 수 없습니다

터미널 에뮬레이터의 색상에 문제가 있습니다. 나는 그것을 LXTerminal터미널 에뮬레이터와 LXDE데스크탑 환경으로 사용합니다.

다음 명령은 회색 배경에 빨간색 텍스트를 인쇄해야 합니다.

printf "\n\033[1;31;40m"hello"\033[00m\n\n"

그러나 이것은 작동하지 않습니다. 회색 배경이 누락되었습니다(빨간색 텍스트도 작동함). 내 이전 컴퓨터( Gnome/Gnome Terminal)에서는 모든 것이 잘 작동했습니다.

다른 여러 터미널 에뮬레이터를 설치해 보았지만 문제가 지속됩니다. 이 문제가 터미널 에뮬레이터와 관련이 있는지, 아니면 무엇인지 잘 모르겠습니다. 콘솔(CTRL+ALT+F1)에서 배경 회색은 두 시스템 모두에서 작동하지 않습니다.

이 문제는 회색 배경으로 제한됩니다. 다른 모든 색상은 잘 작동합니다. 예를 들어 다음은 녹색 배경에 빨간색 텍스트를 인쇄합니다.

printf "\n\033[1;31;42m"hello"\033[00m\n\n"

도움을 주시면 감사하겠습니다. 문제 해결을 어디서부터 시작해야 할지조차 모르겠습니다.

답변1

각 터미널 에뮬레이터는 8개의 표준 ANSI 색상을 지원합니다. 대부분의 터미널 에뮬레이터에는 표준 ANSI 색상의 8가지 밝은 변형도 있습니다.

그러나 이스케이프 코드가 매핑되는 실제 색상 값은 표준화되어 있지 않으며 실제로 터미널 에뮬레이터마다 약간씩 다른 경우가 많습니다. 따라서 printf "\e[31;47mTest\n"흰색 배경에 빨간색 텍스트를 인쇄하는 경우 실제로 표시되는 빨간색과 흰색 톤은 사용하는 터미널 에뮬레이터에 따라 다를 수 있습니다.

따라서 이는 문제를 부분적으로 설명합니다. 색상 값이 표준이 아니며 LXTerminal익숙하지 않은 다른 기본 팔레트가 있을 수 있습니다. 설정을 살펴보면 일반적으로 원하는 색상으로 색 구성표를 구성할 수 있습니다.

직면하는 또 다른 문제는 굵은 속성이 실제로 수행하는 작업도 표준화되지 않았다는 것입니다. 세 가지 가능성이 있습니다. 글꼴을 굵게 만들거나, 전경색을 더 밝게 만들거나, 전경색을 더 밝게 하고 글꼴을 모두 굵게 만들 수 있습니다.

여기서도 기본 동작은 터미널 에뮬레이터마다 다르며 일반적으로 올바른 설정을 찾을 수 있으면 변경할 수 있습니다. Grep은 "bold" 또는 "bright"에 대한 언급을 찾습니다.

밝은 색상을 사용하려면 굵은 글씨 대신 소위 aixterm 색상 이스케이프 코드를 사용할 수 있습니다. 이는 표준은 아니지만 내가 아는 모든 최신 터미널 에뮬레이터는 이를 지원합니다. 굵은 글꼴과 달리 항상 밝은 색상을 사용하며 밝은 배경색을 표시하는 데 사용할 수 있습니다.

예를 들어 밝은 흰색 배경에 밝은 빨간색 텍스트를 인쇄하려면 다음을 수행합니다 printf "\e[91;107mTest\n".

참고로 다음은 모든 색상 이스케이프 코드 표입니다.

|    ANSI |    ANSI |    ANSI    |                | Aixterm | Aixterm 
|   Color | FG Code | BG Code    | Bright Color   | FG Code | BG Code 
+---------+---------+--------    +----------------+---------+-------- 
|   Black |      30 |      40    |   Bright Black |      90 |     100 
|     Red |      31 |      41    |     Bright Red |      91 |     101 
|   Green |      32 |      42    |   Bright Green |      92 |     102 
|  Yellow |      33 |      43    |  Bright Yellow |      93 |     103 
|    Blue |      34 |      44    |    Bright Blue |      94 |     104 
| Magenta |      35 |      45    | Bright Magenta |      95 |     105 
|    Cyan |      36 |      46    |    Bright Cyan |      96 |     106 
|   White |      37 |      47    |   Bright White |      97 |     107 

답변2

1처음의 속성은 1;31;40"굵게"(일명 "밝게") 모드를 설정하지만 일부 터미널에서는 전경색에만 적용합니다. 전경에서 16가지 색상을 지원하기 때문에 어떤 이유인지 모르겠습니다($TERM 변수를 변경해도 차이가 없습니다). 1 0(출처 40: 4 = 배경, 0 = 색상)은 실제로 검은색이지만 "광택 검정색"은 회색입니다. 여기에는 두 가지 해결책이 있습니다.

  • 색상 7(흰색)은 흰색이 아닌 회색으로 나타날 수 있습니다(진정한 흰색의 경우 "밝은 흰색"이 필요합니다. 즉, 실제로 흰색 배경을 가질 수 없음을 의미합니다).

  • 필요한 경우 LXDE에서 gnome 터미널을 사용할 수 있어야 합니다. 그냥 설치하고 시작하세요 gnome-terminal(명령 이름인 것 같아요). 그런 다음 lx 터미널 대신 이를 사용하도록 실행 프로그램을 구성해야 합니다.

1 내 추측은 다음과 같습니다. 굵게 설정하면 전경색에 밝기가 적용됩니다.그리고굵은 강조가 추가되었습니다. 따라서 굵은 글씨를 적용하지 않으면 밝은 전경색을 사용할 수 없습니다. 흑백 터미널이 일반적이었을 무렵에는 다음과 같은 것을 강조하기 위해 간단히 굵은 글씨로 설정하는 것이 일반적이었습니다. \\033[1mBlah blah\\033[0m- 사실 이것은 여전히 ​​작동하지만 전경색을 더 밝게 만듭니다. 배경을 밝게 하는 것도 바람직하지 않다고 생각한다면(굵게 표시해야 하기 때문에) 구현에서는 그렇게 하지 않도록 할 것입니다. 아 글쎄.

답변3

이는 일부 터미널 에뮬레이터에서 사용할 수 있는 트릭입니다. 비디오 반전 속성(7)을 사용하여 밝은 전경색을 선택한 다음 배경색과 바꾸면 밝은 배경색이 제공됩니다.

echo -e "\e[1;32;7mText on a bright green background"

문제는 이제 16가지 배경색을 사용할 수 있지만 이제 8가지 색상 제한이 전경/텍스트에 적용된다는 것입니다. 문제를 더욱 혼란스럽게 만드는 것은 비디오 반전 속성이 활성화된 경우 배경색에 대한 속성 코드를 사용하여 텍스트 색상을 설정해야 한다는 것입니다!

답변4

대신 배경이 굵지 않은 흰색으로 표시됩니다 47=background white.40=background black

]# printf "\033[0;30;47m"hello"\033[00m\n"
hello (black on grey)
]# printf "\033[1;30;47m"hello"\033[00m\n"
hello (darkgrey on grey)
]# printf "\033[1;37;47m"hello"\033[00m\n"
hello (white on grey)
]# printf "\033[0;37;47m"hello"\033[00m\n"
hello (INVISIBLE grey on grey)

기본적으로 굵은 검정색은 어두운 회색을 생성합니다. 굵은 흰색이 흰색이기 때문에 일반 흰색은 실제로 회색입니다.


이 루프는 검정색의 모든 색상과 흰색의 색상 조합을 포함하는 두 개의 열을 인쇄합니다.

for ((i=30; i<=47; i++))
do
    echo -en  "\e[${i}mHello\e[0m";
    echo -e "\e[1;${i}mHello\e[0m";
done

눈에 보이지 않는 검정색과 검정색 바탕에 짙은 회색으로 시작하지만 나머지 17개 라인도 괜찮아 보이고 콘솔 전체의 색상 팔레트를 보여줍니다.

(38과 39는 무시해야 하지만 단순화를 위해 30에서 47만 사용하겠습니다)


A. 언급을 수락여덟색상 및 표준 부족.

6가지 색상 31-36(빨간색에서 청록색까지)이 잘 정의되어 있습니다. 검은색(30)과 흰색(37)도 있지만 특히 배경(40과 47)으로 볼드한 변형이 적습니다.


방금 알아차렸습니다: xterm에서는 일반적인 흰색 텍스트가 회색 배경에 표시되지만 Linux 콘솔에는 표시되지 않습니다. (마지막 줄, i=47) (30분 전까지는 읽을 수 없는 변형을 원하지 않았기 때문에 스크립트가 46에서 중지되었습니다)

두 위치 모두 마우스로 선택하면 깔끔하게 조정되고 뒤집어도 읽기 쉬운 상태로 유지됩니다.

관련 정보