"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_COLOR
및 BACKGROUND_COLOR
는 모두 0-255 범위의 숫자입니다. 아래 스크린샷은 16색 및 256색 모드에 대한 전체 색상 코드 목록을 보여줍니다.
답변2
색상은 ls
권한을 나타냅니다. 일부 시스템의 기본값은 녹색 배경에 모든 사람이 쓰기 액세스 권한을 갖는 디렉토리를 표시하는 것입니다.
(from) 편집 $LS_COLORS
변수를 사용하여 색상을 변경할 수 있습니다.dircolors
man 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
으로 교체 하세요 . 더 간단하게 다음을 구현하십시오 .34
blue
nobg
nofg
nobg
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