ls 출력에서 ​​녹색 배경이 나타나는 이유는 무엇입니까?

ls 출력에서 ​​녹색 배경이 나타나는 이유는 무엇입니까?

Linux 시스템의 ls 출력 스크린샷

"ls"는 두 개의 디렉터리를 표시합니다. 일반적으로 디렉터리는 검정색 배경에 파란색입니다. 하지만 첫 번째는 파란색 배경에 녹색 텍스트가 있어 읽을 수 없습니다. 왜 이런거야? 검은색 바탕에 파란색으로 나타나게 하거나 어두운 바탕에 최소한 밝은색으로 보이도록 하려면 어떻게 해야 합니까?

이것은 Gnome Terminal에서 bash를 사용하는 Ubuntu 12.04입니다. Konsole에서는 파란색이 약간 더 어두워서 읽기는 쉽지만 더 좋을 수도 있습니다.

답변1

유형에 따른 파일 색상 지정(오디오 파일의 경우 청록색, 아카이브 및 압축 파일의 경우 밝은 빨간색, 이미지 및 비디오의 경우 보라색) 외에도 ls파일 및 디렉터리의 색상도 해당 속성에 따라 색상이 지정됩니다.

  • 녹색 배경의 검정색 텍스트는 소유 사용자 및 그룹을 제외한 다른 사용자가 해당 디렉토리에 쓸 수 있고 고정 비트( o+w, +t)가 설정되어 있음을 나타냅니다.
  • 녹색 배경에 파란색 텍스트는 소유한 사용자 및 그룹을 제외한 다른 사용자가 해당 디렉터리에 쓸 수 있음을 의미합니다.아니요스티키 비트( o+w, -t)를 설정합니다.

팔라쪼 스테파노~에우분투에 물어보세요다양한 속성 색상으로 매우 고무적인 이미지를 만들었습니다.

터미널의 다양한 색상은 무엇을 의미합니까?

~처럼테든색상 설정은 다음에 의해 수정될 수 있습니다.dircolors. 다양한 색상 설정 목록은 를 사용하여 액세스할 수 있습니다 dircolors --print-database.

각 출력 줄(예: BLK 40;33;01)은 다음과 같은 형식입니다.

[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
  • TARGET색칠 규칙의 대상을 나타냅니다.

  • TEXT_STYLE텍스트 스타일을 나타냅니다.

    • 00= 없음
    • 01= 굵은 글씨
    • 04= 밑줄
    • 05= 깜박임
    • 07= 역방향,
    • 08= 숨기기
  • FOREGROUND_COLOR전경색을 나타냅니다.

    • 30= 검정색
    • 31= 빨간색
    • 32= 녹색
    • 33= 노란색
    • 34=파란색,
    • 35= 마젠타색
    • 36=청록색
    • 37= 흰색
  • BACKGROUND_COLOR배경색을 나타냅니다.

    • 40= 검정색
    • 41= 빨간색
    • 42= 녹색
    • 43= 노란색
    • 44=파란색,
    • 45= 마젠타색
    • 46=청록색
    • 47= 흰색

필드는 오른쪽부터 생략할 수 있으므로 예를 들어 .tar 01;31굵은 글씨와 빨간색으로 표시됩니다.

XTerm 및 대부분의 기타 최신 터미널 에뮬레이터는 256색을 지원합니다.

XTerm 256 색상 전경 색상 코드의 형식은 다음과 같습니다.

38;5;[FOREGROUND_COLOR]

XTerm 256 색상 배경 ​​색상 코드의 형식은 다음과 같습니다.

48;5;[BACKGROUND_COLOR]

여기서 FOREGROUND_COLORBACKGROUND_COLOR는 모두 0-255 범위의 숫자입니다. 아래 스크린샷은 16색 및 256색 모드에 대한 전체 색상 코드 목록을 보여줍니다.

16 및 256 색상 모드 색상 코드

답변2

색상은 ls권한을 나타냅니다. 일부 시스템의 기본값은 녹색 배경에 모든 사람이 쓰기 액세스 권한을 갖는 디렉토리를 표시하는 것입니다.

여기에 이미지 설명을 입력하세요.

(from) 편집 $LS_COLORS변수를 사용하여 색상을 변경할 수 있습니다.dircolorsman ls

   Using color to distinguish file types is disabled both by  default  and
   with  --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  The LS_COLORS  environment
   variable can change the settings.  Use the dircolors command to set it.

물론 여기의 구문은 약간 짜증나지만 원하는 색상으로 파일을 생성하고 다음과 같이 저장하여 이 색상을 변경할 수 있습니다 ~/.dircolors.

dircolors -p > ~/.dircolors

이 명령은 기본값을 에 인쇄합니다 ~/.dircolors. 그런 다음 파일을 편집하고 다음 줄을 변경해야 합니다.

OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky

예를 들어 빨간색 배경에 검은색 텍스트로 설정하려면(참조여기색상 코드 목록 가져오기):

OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky

모든 기본값을 가질 필요는 없으며 변경하려는 항목만 재정의하는 한 줄로 파일을 만들 수도 있습니다. 어쨌든 파일이 생성되면 다음을 사용하여 로드합니다.

eval "$(dircolors ~/.dircolors)";

작동 중입니다.

여기에 이미지 설명을 입력하세요.

이를 자동화하려면 eval위 명령을 ~/.bashrc파일에 추가하세요.

답변3

좋습니다. 어떻게 해결하나요?

문제를 신속하게 해결하려면:

LS_COLORS+=':ow=01;33'
  • nobg에서 다른 쓰기 가능한 파일을 노란색으로 표시하도록 설정
  • 쉘 구성 파일(예 ~/.bashrc: ~/.profile등)을 편집하여 영구적으로 만드십시오.

자세한 내용은:

on 33으로 교체 하세요 . 더 간단하게 다음을 구현하십시오 .34bluenobgnofgnobg

LS_COLORS+=:ow=

변경 사항을 영구적으로 적용하려면 해당 내용을 .profile에 추가하세요.

echo "export LS_COLORS+=':ow=01;33'" >> ~/.profile

볼 수 있는 비확장 관련 규칙 LS_COLORS:

echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'

sed각 규칙을 한 줄에 배치 grep하고*.'.


ls터미널의 색상을 탐색하려면 다음을 사용하는 것이 좋습니다.

C="$LS_COLORS"
function sc () {
    echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'
}
function t () {
    ls /mnt # Or the path to your example directory.
}

그 다음에

LS_COLORS="$C:ow=38;5;250;48;5;025";t

다른 답변(Thomas Nyman의 답변)에서 언급했듯이 38;5;전경 x-항 256 색상과 배경 x-항 256 색상의 접두사입니다. 48;5;그러나 모든 터미널이 256색을 지원하는 것은 아닙니다.

또한보십시오-ls의 다양한 색상은 무엇을 의미합니까? -AskUbuntu에서.

답변4

색상을 변경하는 데 사용하는 3단계는 다음과 같습니다.

먼저 기본 색상을 파일에 복사합니다.

dircolors -p > ~/.dircolors

그런 다음 이 파일을 수정하십시오. 내부에서 몇 가지 색상 값을 찾을 수 있습니다.

Code    Color
0   Default Colour
1   Bold
4   Underlined
5   Flashing Text
7   Reverse Field
31  Red
32  Green
33  Orange
34  Blue
35  Purple
36  Cyan
37  Grey
40  Black Background
41  Red Background
42  Green Background
43  Orange Background
44  Blue Background
45  Purple Background
46  Cyan Background
47  Grey Background
90  Dark Grey
91  Light Red
92  Light Green
93  Yellow
94  Light Blue
95  Light Purple
96  Turquoise
100  Dark Grey Background
101  Light Red Background
102  Light Green Background
103  Yellow Background
104  Light Blue Background
105  Light Purple Background
106  Turquoise Background

(원천)

~/.bashrc마지막으로, 터미널을 열 때 색상을 자동으로 로드하려면 파일 에 다음 줄을 추가하세요 .

eval 'dircolors ~/.dircolors' > /dev/null

을 위한 ~/.zshrc:

if [[ -f ~/.dircolors ]] ; then
    eval $(dircolors -b ~/.dircolors)     
elif [[ -f /etc/DIR_COLORS ]] ; then
    eval $(dircolors -b /etc/DIR_COLORS)
fi

관련 정보