오류 "dircolors: SHELL 환경 변수가 없고 쉘 유형 옵션이 지정되지 않았습니다."

오류 "dircolors: SHELL 환경 변수가 없고 쉘 유형 옵션이 지정되지 않았습니다."

Linux Mint 17.3 Cinnamon 실행

얼마 전에 터미널 색상을 변경하는 스크립트가 생성되었습니다(내가 따르는 튜토리얼과 일치하도록).

그러나 다른 계정으로 터미널을 열면 다음 오류가 발생합니다.

dircolors: no SHELL environment variable, and no shell type option given

이 스크립트가 더 이상 필요하지 않습니다. 그러면 이 스크립트가 어디에 있는지 어떻게 찾아 제거할 수 있습니까?

답변1

할 수 있는 곳이 여러 군데 있어요할 수 있다~/.bashrcOR 외에 스크립트가 사용되었습니다 /etc/profile. 변경 사항에 대한 세부 정보를 제공하지 않으면 일반적인 제안만 제공됩니다. 예를 들어 다음과 같은 경우가 있을 수 있습니다.

  • 파일 수정 또는 추가/etc/profile.d
  • ~/.profile또는 수정~/.bash_profile
  • 스크립트(또는 데스크탑 "실행기")를 통해 터미널 실행

grep을 사용하여 가능한 위치를 찾을 수 있습니다. 예를 들어,

$ grep -r -l dircolors /etc ~ 2>/dev/null
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh
/etc/DIR_COLORS
/etc/DIR_COLORS.lightbgcolor
/etc/DIR_COLORS.256color

오류 메시지는 dircolors(소스 코드 보기), SHELL환경 변수가 설정되지 않았거나 비어 있는 경우(소스 코드 보기검사를 위해).

답변2

SHELL이 설정되지 않았을 때 dircolors("ls"의 색상 출력)가 필요하지 않은 경우 eval dircolors 명령을 "if"로 묶습니다.

항상 /bin/bash를 사용한다면 다음과 같이 하십시오:

# enable color support of ls and also add handy aliases
if [ $SHELL = "/bin/bash" -a -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

관련 정보