ls의 사용자 정의 색상이 일부 카테고리에는 올바르게 적용되었지만 다른 카테고리는 무시되었습니다.

ls의 사용자 정의 색상이 일부 카테고리에는 올바르게 적용되었지만 다른 카테고리는 무시되었습니다.

의 도움으로 색상을 dircolors변경했습니다 . ls.dircolors파일은

FILE                   00;97
DIR                    00;96
LINK                   00;95
MULTIHARDLINK          00;34
ORPHAN                 91;01  # symlink to nonexistent file
MISSING                00;00 
EXEC                   91;00  # this is for files with execute permission

dircolors .dircolors >> .bashrc그 후 ls출력은 설정에 정의된 대로 올바르게 색상이 지정됩니다.실행파일 제외. 빨간색(91;00) 대신 기본 터미널 전경색을 사용하여 색상이 지정됩니다. 예를 들어,

xterm -fg yellow # Executables become yellow on ls
xterm -fg green  # Executables become green on ls

이는 터미널(Xterm, Terminator, Virtual Console...)과는 아무런 관련이 없습니다.

나는 또한 라인만을 포함하는 dircolors 파일을 시도했는데 EXEC, 이는 라인을 생성했습니다.

export LS_COLORS='ex=91;00:'

내에서는 .bashrc실행 파일에 여전히 색상이 없습니다.

실행 파일을 색칠할 때 내가 뭘 잘못하고 있는 걸까요?

답변1

ls이러한 설정을 터미널로 전송되는 문자열로 생각하세요. 그것은 그들이 무엇을 의미하는지 모릅니다. 그것은 보낸다ESC [ m ;이 이스케이프 시퀀스를 해석하는 터미널로.

터미널 이스케이프 시퀀스의 사실상 표준은 다음과 같습니다.xterm. 이 CSI문서 에서는 ESC [,추신는 정수이고오후세미콜론으로 구분된 정수 목록이므로 관련 이스케이프 시퀀스가 ​​아래에 나열되어 있습니다.CSI Pm m.

터미널은 매개변수를 순차적으로 적용합니다. 매개변수 0은 색상을 포함한 모든 속성을 재설정합니다. 따라서 91;00동일하게 대신 0사용하십시오 91(또는 0;91모든 속성을 재설정하려면 전경색을 설정하십시오). 전경색과 강도는 독립적인 속성이므로 91;01동일합니다 .01;91

ls일반적으로 기본 속성으로 시작하고 각 색상 이름 끝에서 기본 속성으로 재설정되므로 00;이러한 설정에서는 중복됩니다.

관련 정보