ls에서 다른 색상의 의미는 무엇입니까?


364

우분투의 ls명령 에서 다른 색은 무엇을 의미합니까? 예를 들어, ls폴더 중 하나에 명령을 입력하면 파일 중 하나는 연한 녹색으로, 다른 하나 (폴더)는 녹색으로 강조 표시됩니다.

그 색상의 의미는 무엇이며 모든 색상에 대한 매뉴얼이 있습니까?

답변:


391
  • 블루 : 디렉토리
  • 녹색 : 실행 가능하거나 인식 된 데이터 파일
  • 스카이 블루 : 심볼릭 링크 파일
  • 검정색 배경의 노란색 : 장치
  • 분홍색 : 그래픽 이미지 파일
  • 빨간색 : 보관 파일
  • 검정색 배경의 빨간색 : 깨진 링크

귀하의 정보를 위해 :

  • 색상을 끄려면에서 다음 줄을 주석 처리해야합니다 .bashrc.

    # enable color support of ls and also add handy aliases
    #if [ -x /usr/bin/dircolors ]; then
    #    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    #    alias ls='ls --color=auto'
    #    #alias dir='dir --color=auto'
    #    #alias vdir='vdir --color=auto'
    #
    #    alias grep='grep --color=auto'
    #    alias fgrep='fgrep --color=auto'
    #    alias egrep='egrep --color=auto'
    #fi
    
  • 또한 고유 한 bash 색상 의미를 보려면 터미널에서 다음 코드를 복사 / 붙여 넣기하십시오.

    eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')           
    {      
      IFS=:     
      for i in $LS_COLORS     
      do        
        echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m" 
      done       
    } 
    

    산출:
    대체 텍스트

노트 :

  • 자세한 내용 man dir_colors은 터미널에 입력하십시오 .

28
즉, eval각 유형에 대한 출력 색상 표현을 보여주는 스크립트는 훌륭합니다 ... 감사합니다!
Russ

2
순수 출처;)
Homunculus Reticulli

5
eval스크립트 의 더 읽기 쉬운 버전 은 다음과 같습니다 : github.com/gkotian/gautam_linux/blob/master/scripts/colours.sh
Gautam

3
레드는 또한 죽은 심볼릭 링크입니다.
토마스 워드

1
일반 흰색 텍스트 파일은 어떻습니까?
S ..

98

변수 ls를 보면 색상이 사용하는 것을 알 수 있습니다 $LS_COLORS.

  • 청록색 : 오디오 파일 1
  • 밝은 빨간색 : 아카이브 및 압축 파일 2
  • 퍼플 : 이미지 및 비디오 3

또한 파일은 속성별로 색상이 지정됩니다.

대체 텍스트


  1. aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.

  2. tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, 동물원, cpio, 7z, rz.

  3. jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, anx, ogv, ogx.


이 모든 정보는의 출력에 포함되어 dircolors --print-database있지만 형식을 읽을 수는 없습니다.

진행 상황에 대한 기술적 인 설명은 다음과 같습니다.

예:

CHR 40;33;01

색상 코드는 세 부분으로 구성됩니다.

  • 세미콜론 앞의 첫 부분은 텍스트 스타일을 나타냅니다.

    • 00 = 없음, 01 = 굵게, 04 = 밑줄, 05 = 깜박임, 07 = 후진, 08 = 숨김.
  • 두 번째와 세 번째 부분은 색상과 배경색입니다.

    • 30 = 검정, 31 = 빨간색, 32 = 녹색, 33 = 노란색, 34 = 파란색, 35 = 자홍색, 36 = 청록색, 37 = 흰색.

왼쪽에서 시작한다고 가정하면 각 부분을 생략 할 수 있습니다. 즉, "01"은 굵은 체, "01; 31"은 굵은 체, 빨간색 그리고 당신은 당신의 터미널로 명령을 탈출하여 컬러로 인쇄 할 얻을 것 \33[와 함께 종료 m. 33 또는 16 진의 1B는 ASCII 부호 "ESCAPE"(ASCII 문자 세트의 특수 문자)입니다. 예:

"\33[1;31mHello World\33[m"

"Hello World"를 밝은 빨간색으로 인쇄합니다.

ls인수가 있는 명령 --color=auto(Ubuntu에서 ls별명입니다 ls --color=auto)은 모든 파일 이름을 거치고 먼저 Executable, Pipe 등과 같은 다른 유형과 일치하려고 시도합니다. 그런 다음 * .wav와 같은 정규 표현식을 일치시키고 bash에 대한 색상 변경 지침으로 묶인 결과 파일 이름을 인쇄합니다.


감사! Git 토폴로지 시각화 질문 을보고 일부 문자가 인쇄되는 이유가 궁금했습니다.
pdp

27

명령 행에서 입력 dircolors( echo $LS_COLORS작동)하면 한 줄에 많은 파일 유형에 대한 코드 및 색상 목록이 표시됩니다. dircolors --print-database한 번에 한 줄씩 보여줍니다. 여기에 짧은 목록이 있습니다 (가장 중요한 것을 넣으려고했습니다). 맨 아래에는 각 줄 끝의 다른 코드가 무엇을 나타내는 지에 대한 설명이 있습니다.

NORMAL 00 # 전역 기본값이지만 모든 것이 무언가 여야합니다.
FILE 00 # 일반 파일
디렉토리 01; 34 # 디렉토리
LINK 01; 36 # 기호 링크. (이 대신 '타겟'으로 설정하면
 # 숫자 값, 색상은 파일이 가리키는 것과 같습니다.)
FIFO 40; 33 # 파이프
양말 01; 35 # 소켓
문 01; 35 # 문
BLK 40; 33; 01 # 블록 장치 드라이버
CHR 40; 33; 01 # 문자 장치 드라이버
ORPHAN 40; 31; 01 # 존재하지 않는 파일 또는 통계 할 수없는 파일에 대한 심볼릭 링크
SETUID 37; 41 # setuid (u + s) 인 파일
SETGID 30; 43 # setgid 파일 (g + s)
STICKY_OTHER_WRITABLE 30; 42 # 끈적 거리고 쓰기 가능한 다른 디렉토리 (+ t, o + w)
OTHER_WRITABLE 34; 42 # dir 쓰기 가능 (o + w)이고 고정되지 않는 dir
STICKY 37; 44 # dir 스티커 비트 세트 (+ t)이며 다른 쓰기 가능하지 않음
아카이브 또는 압축 (밝은 빨간색)
.tar 01; 31
.tgz 01; 31
# 이미지 형식
.jpg 01; 35
.jpeg 01; 35
.gif 01; 35
.bmp 01; 35
# 오디오 형식
.aac 00; 36
.flac 00; 36
.ogg 00; 36
  • 속성 코드 : 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
  • 텍스트 색상 코드 : 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
  • 배경색 코드 : 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

이 문제를 해결하려면 파일의 색상을 설정하는 방법에 대한 예가 있습니다.

export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"  

이 설정합니다 *.ogg.mp3bold magenta. 그리고 .bashrc파일에 넣으면 영구적이됩니다.


2
어쩌면 다른 사람이 더 나은 답변을 얻을 수 있습니다. Btw 당신은이
공짜로

바위에! 당신은 거기에 자신이있어 ... 다시 한번 감사하지만, 내가 확신하지
못한

날짜에 대해 궁금한 경우를 대비 하여이 (우수한) 답변이 병합되었습니다 . :-)
Stefano Palazzo

@Rinzwind, pdf파일 의 색상을 설정 하려면 프로세스를 사용하는 것 export입니까? 기본 LS_COLORS 변수 에 단순히 하나의 확장을 추가 할 수 있습니까?
Sigur

23

이것은 Karthick87의 답변 에서 확장됩니다 .


기본 설정으로

  • 색상이없는 (흰색) : 파일 또는 파일 이름이 아닌 텍스트 (예 :의 출력 권한 ls -l)
  • 굵은 파란색 : 디렉토리
  • 굵은 청록색 : 심볼릭 링크
  • 굵은 녹색 : 실행 파일
  • 굵은 빨간색 : 보관 파일
  • 굵은 마젠타 : 이미지 파일, 비디오, 그래픽 등 또는또는 소켓
  • 청록색 : 오디오 파일
  • 검정색 배경의 노랑색 : 파이프 (AKA FIFO)
  • 검정색 배경의 굵은 노란색 : 블록 장치 또는 문자 장치
  • 검정색 배경의 굵은 빨간색 : 고아 심볼릭 링크 또는 파일 누락
  • 빨간색 배경으로 채색되지 않은 : set-user-ID 파일
  • 노란색 배경의 검은 색 : set-group-ID 파일
  • 빨간색 배경의 검은 색 : 기능이있는 파일
  • 파란색 배경의 흰색 : 스티커 디렉토리
  • 녹색 배경의 파란색 : 다른 쓰기 가능 디렉토리
  • 녹색 배경의 검은 색 : 끈적임 및 기타 쓰기 가능한 디렉토리

색상을 표시하는 스크립트

#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.

IFS=:
for ls_color in $LS_COLORS; do
    color="${ls_color#*=}"
    type="${ls_color%=*}"

    # Add descriptions for named types.
    case "$type" in
    bd) type+=" (block device)" ;;
    ca) type+=" (file with capability)" ;;
    cd) type+=" (character device)" ;;
    di) type+=" (directory)" ;;
    do) type+=" (door)" ;;
    ex) type+=" (executable file)" ;;
    fi) type+=" (regular file)" ;;
    ln) type+=" (symbolic link)" ;;
    mh) type+=" (multi-hardlink)" ;;
    mi) type+=" (missing file)" ;;
    no) type+=" (normal non-filename text)" ;;
    or) type+=" (orphan symlink)" ;;
    ow) type+=" (other-writable directory)" ;;
    pi) type+=" (named pipe, AKA FIFO)" ;;
    rs) type+=" (reset to no color)" ;;
    sg) type+=" (set-group-ID)" ;;
    so) type+=" (socket)" ;;
    st) type+=" (sticky directory)" ;;
    su) type+=" (set-user-ID)" ;;
    tw) type+=" (sticky and other-writable directory)" ;;
    esac

    # Separate each color with a newline.
    if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
        echo
    fi

    printf "\e[%sm%s\e[m " "$color" "$type"

    # For next loop
    color_prev="$color"
done
echo

기본 설정으로 출력 :

그놈 터미널 스크린 샷

내 설정으로 출력 (사용자 정의 dircolor 및 사용자 정의 Solarized 터미널 테마) :

그놈 터미널 스크린 샷

나는로부터 설명을 가지고 dircolors -p하고 man dir_colors, 내 자신의 연구 격차에 가득 찼다.

색상과 설명은 14.04에서 17.10까지 동일합니다.


rs수단 RESET, mh수단 MULTIHARDLINK, ca수단 CAPABILITY등을 어떻게 알았 습니까?
Fredrick Gauss

@FredrickGauss 답변에 썼을 때 설명이 실행되었습니다 dircolors -p.
wjandrea

dircolors -prsRESET 0 이라고 말하지 않습니다. # "정상"색상으로 재설정됩니다 .
프레드릭 가우스

@FredrickGauss 명시 적으로는 아니지만 "RESET"만이 "rs"로 축약 될 수 있으며 색상 (0)과 일치합니다.
wjandrea

18

여기에 대한 답변 중 최신 버전의 Ubuntu에는 256 색상 옵션이 포함되어 있지 않습니다. 나는 색상이 부족합니다 (일부 색상은 서로 가까이에서 문제를 일으킴). 검은 색의 기본 파란색 디렉토리는 실제로 읽기가 어렵습니다. 다음은 그것을 바꾸려는 나의 연구입니다.

dircolors -p |less현재 색상 코드를 보려면 입력 하십시오.

기본 .bashrc는 이미 시스템 색상 코드뿐만 아니라 ~ / .dircolors에도 사용되도록 구성되어 있으므로 dircolors 출력을 .dircolor로 덤프하여이 명령을 사용하여 시작할 수 있습니다. dircolors -p > ~/.dircolors

대안 : seebi의 태양 광 프로젝트 에서 매우 유사한 256 색 dircolor를 선택하십시오 .

색상 테스트 스크립트를 잡고 명령으로 실행하여 colortest -w모든 색상을 한 번에 볼 수 있습니다. 색상을 선택하십시오. 나는 오렌지 # 208을 좋아한다. 확장 색상 코드 에서이 정보를 사용하여 텍스트 색상이되도록하고 싶습니다.

그래서 당신은 색깔을 가지게되었습니다. 먼저 문자열을 만들어야합니다.

첫 번째 숫자는 속성 코드이며 대부분 00이 될 것입니다.하지만 깜박이려면 05와 함께 진행하십시오.

속성 코드를 선택하십시오. 00 = 없음 01 = 굵게 04 = 밑줄 05 = 깜박임 07 = 후진 08 = 숨겨 짐

다음 ;38;5;으로 해당 속성 코드에 추가 하여 00; 38; 5; 그런 다음 색상을 추가하십시오. 나는 208을 골랐다 00;38;5;208.

배경을 넣고 싶다면 colortest 스크립트와 ;48;5;배경을 추가 하고 56을 사용하여 다른 문자열 ( 56)을 골라 총 문자열을 얻으십시오 00;38;5;208;48;5;56.

이제 당신은 그것을 가지고, 당신은 그것으로 무엇을합니까?

vim ~/.dircolors 위에서 "00; 38; 5; 208"으로 결정한 문자열로 변경하려는 섹션을 찾으십시오 (DIR 인 경우).

이것은 즉시 적용되지 않으므로 구성을로드해야합니다. dircolors ~/.dircolorsget 코드에 LS_COLORS 변수를 설정하는 데 사용하십시오 . 터미널 세션에 붙여 넣거나 터미널을 닫았다가 다시 열 수 있습니다. 파일로 파이프하고 셸 스크립트로 실행할 수도 있습니다.

16 가지 색상으로 동일한 절차를 수행 할 수 있습니다. 특별한; 38; 5 또는; 48; 5 물건이 필요하지 않습니다. 문자열에 숫자를 던져 단순성을 즐기십시오.

Danseebi 에게 감사의 말 과 코드를 보내 주셔서 감사합니다 .


256 색이 xterm 호환 터미널 에서만 작동하는지 확인하십시오 . 따라서 Konsole 에서는 256 색상이 작동하지 않지만 xtermrxvt-unicode 에서는 작동 합니다.
DK Bose

1
Konsole은 자체 작업을 수행합니다. 멋진 색상 구성표를 보려면 draculatheme.com/konsole 또는 techoverflow.net/2013/11/08/installing-konsole-solarized-theme 를 확인하십시오 .
깜박임
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.