256 색상 이스케이프 시퀀스를 사용할 때 ls --color가 미리 컴파일된 LS_COLORS로 대체됩니까?

256 색상 이스케이프 시퀀스를 사용할 때 ls --color가 미리 컴파일된 LS_COLORS로 대체됩니까?

아직 최고의 제목을 찾지 못했을 수도 있습니다. 나는 내가 원하는 것을 이룰 수 있기 때문에 실제로 도움을 요청하는 것이 아닙니다. 내가 올바르게 이해했는지 알고 싶습니다. 하지만 직접 확인해 보세요.

내 흰개미 프로필에 다음과 같이 256가지 색상을 설정할 수 있습니다.

colorx = #xxxx

예를 들어:

color255 = #8fa200

예쁜 그린 컬러를 보여줍니다.

다음 구문을 사용하여 .dircolors 파일을 통해 LS_COLORS에 사용할 수 있습니다.

<filetype> <effects>38;5<foreground>;48;5;<background>

예를 들어:

DIR 04;38;5;255

밑줄 친 디렉토리의 경우 지정된 녹색을 사용하십시오. 분명히 이것은 X에 적용됩니다. 이제 tty와 관련하여 디렉토리의 표준 파란색 색조가 나타납니다. .bashrc의 항목에서 사용되는 실제 색상에 영향을 줄 수 있습니다. 예를 들면 다음과 같습니다.

echo -en "\e]PCffa500"

나는 그것을 사용하여 시스템 전체에 걸쳐 매우 일관된 색 구성표를 조합할 수 있었습니다.

문제는 X에 대해 256개의 색상 설명을 사용하고 있기 때문에 ls --colors=auto가 미리 컴파일된 dircolor로 대체된다는 것을 올바르게 이해하고 있습니까? 아니면 실제로 그것을 제어하는 ​​다른 메커니즘이 있습니까? 따라서 보다 세밀한 제어가 가능할 수도 있습니다.

여러분의 지혜를 배우길 기대합니다...

답변1

GNU 언어터미널의 제어 순서에 대해서는 알려진 바가 없습니다. 단지 $TERM환경 ​​변수를 해당 테이블과 연결합니다( $LS_COLORS환경 변수에서 가져온 것인지 아니면 컴파일된 기본값인지는 별로 중요하지 않습니다). 전혀터미널에 몇 가지 색상이 있는지 알려줍니다.

소스 코드를 읽으면 (dircolors.c,ls.c), 인쇄할 내용을 결정하는 데 색상 수량을 사용하지 않는다는 것을 알 수 있습니다. 256색 이스케이프 시퀀스를 사용하는지 여부는 패키저가 누구인지에 따라 달라지는 것 같습니다(그러나 coreutils 소스 코드에는 없습니다).논평이 가능성을 암시합니다).

터미널 데이터베이스를 사용하지 않습니다.GNU 언어기본적으로 후자는 해당 정보를 사용하지 않고 단말기에서 설명하는 이름을 사용합니다. 그래서 그런 척한다VT100사용된 색상(참조ncurses FAQ).

~부터에서 컴파일값은 ANSI 8가지 색상을 사용하고(굵은 색상이 8을 더 추가한다고 가정), (외부)로 인해 256가지 색상을 사용하는 것을 볼 수 있습니다.GNU 언어) 구성 파일은 에 설정되어 있습니다 /etc.

관련 정보