답변:
ls
현재 대부분의 배포판에서에 대한 색상 출력 은 일반적으로 별칭을 통해 활성화됩니다.
$ alias ls
alias ls='ls --color=auto'
별칭 앞에 백 슬래시를 붙여서 별칭을 일시적으로 비활성화 할 수 있습니다.
$ \ls
위의 작업을 수행하면이 호출에 대한 별칭이 단락됩니다. 별칭을 비활성화하려는 경우 언제든지 사용할 수 있습니다.
command ls
물론 사용할 수도 있지만 조금 더 빠릅니다.
GNU ls
를 사용하면 ls --color=never
색상 출력을 명시 적으로 비활성화하도록 지정할 수 있습니다 . (가있는 경우에도 alias ls='ls --color=auto'
를 실행 ls --color=never
하면로 확장되고 ls --color=auto --color=never
이후 옵션이 우선합니다.)
alias ls=ls
또는
unalias ls
이것은 착색을 영구적으로 비활성화합니다.
ls
별칭에 추가 한 다른 모든 옵션 을 잃어 버리고 단일 명령 대신 전체 세션에 대해 옵션 을 잃게됩니다.
Centos7 에서이 설정은 /etc/profile.d/colorls.sh
...이 스크립트의 마지막 3 줄은 다음과 같습니다.
alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d .* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null
욕망과 권한이 있다면 ... 원치 않는 줄을 주석 처리하면 트릭을 수행해야합니다.
unalias ls ll l
당신을 .bashrc
당신은 권한이없는 경우
다른 일이있을 수 있습니다. ls
대화 형으로 연결된 것으로 생각되지 않는 한 색상을 사용해서는 안됩니다. 다른 프로그램으로 파이프 할 때 색상을 지정해서는 안됩니다.
별명은 일반적으로 해당 옵션을 제거 할 수 없으며 작업해야하는 다른 기계로는 가지고 다닐 수없는 개인 설정에 익숙해지기 때문에 일반적으로 나쁜 생각입니다. 다른 것으로 파이프하기 위해 전원을 꺼야하는 경우 해당 파이프의 스위치를 사용하십시오. 그러나 파이프에는 색상이 없어야합니다.
의 ls
경우 LS_COLORS
환경 변수를 지원하는지 확인하십시오 . trapd00r은 / LS_COLORS는 당신에게 어떻게 THT 작품을 보여줍니다. dircolors를 사용하면 매분 및 파일 유형별로 색상을 조정할 수 있습니다. 설정하지 않고 LS_COLORS
채색 기능을 설정 ls
한 경우 파일 유형 및 속성을 파악하기 위해 여러 가지 시스템 호출을 수행하여 색상을 지정할 대상을 파악할 수 있습니다. Sherlock의 배후에있는 사람들은이 설정 LS_COLORS
이 모든 것을 피할 수 있고 속도 가 40 배 향상 된다는 것을 발견했습니다 . 그들이 찾은 것을보기 위해 그들의 gory 세부 사항을 읽으십시오.
모든 파일 형식이 기본 색상을 사용하도록합니다.
$ export LS_COLORS='bd=0:ca=0:cd=0:di=0:do=0:ex=0:pi=0:fi=0:ln=0:mh=0:no=0:or=0:ow=0:sg=0:su=0:so=0:st=0:tw=0:'
dircolor에 공급 한 LS_COLORS 파일은 다음과 같습니다.
BLK 0
CAPABILITY 0
CHR 0
DIR 0
DOOR 0
EXEC 0
FIFO 0
FILE 0
LINK 0
MULTIHARDLINK 0
NORMAL 0
ORPHAN 0
OTHER_WRITABLE 0
SETGID 0
SETUID 0
SOCK 0
STICKY 0
STICKY_OTHER_WRITABLE 0
들어 grep
당신이 지원하는 경우, 참조 GREP_COLORS
또는 GREP_OPTIONS
.
ls
하면 선택한 색상에 대한 GNU 출력 이스케이프 시퀀스가 생성됩니다. 이 설정 ls --color=always | od -a
과 의 출력을 비교합니다 . ls --color=never | od -a
LS_COLORS
ls | od -a
탈출구를 방출하지 않으며 그것이 내가 원하는 것입니다. 는 ls
이 단자에 출력을 전송하는 때 만 서열을 방출한다. 그러나 당신이 그것을 말하면, 그렇게 할 것입니다. 그러니 그렇게하지 마십시오.
@ brian-d-foy의 대답에 덧붙여 대부분 의 경우 디렉토리 의 보이지 않는 파란색 또는 "OTHER_WRITABLE"의 화려한 녹색 을 변경하려는 간단한 성가신 색상이 있으므로 24를 사용하십시오. 비트 표시 :)
export LS_COLORS='di=04;01;38;5;33:ow=04;01;38;5;33;48;2;60;10;0'
디렉토리 색상과 다른 쓰기 가능한 색상 만 재정의
04: underline;
01: bold/brighter;
38;5;33: redifined-blue;
48;2;60;10;0: dark red background
ANSI 코드 에 대해 더 읽어보기
ls
개별 색상을 변경하는 방법이 아니라 GNU 출력에서 모든 색상을 제거하는 것 입니다.
ls
와grep
파이핑 할--color=auto
때 출력이 파이프 일 때 또는 실제로 tty가 아닌 경우 이미 색상이 꺼 지므로 아무것도 할 필요가 없습니다 . 그것이 '자동'의 의미입니다. 마찬가지로ls -G
, CLICOLOR_FORCE ...가 아닌 한 출력이 터미널로 보내지지 않으면 FreeBSD 또는 'CLICOLOR'는 비활성화됩니다.