본문 바로가기
기타/Mac

[Mac] 터미널에서 ls 색상을 리눅스처럼 변경하기

by A6K 2023. 3. 29.

리눅스 개발환경에서 작업하는 사용자가 macOS에서 터미널을 사용하면 뭔지모를 위화감이 드는 경우가 있다. 명령어 사용법은 비슷한데 출력되는 화면이 익숙하지 않은 느낌이다. 실제로 리눅스에서 ls 명령어를 실행했을 때와 맥에서 ls 명령어를 실행했을 때의 결과 화면은 차이점이 있다.

mac 스타일의 ls
Linux 스타일의 ls

ls 명령으로 출력되는 현재 디렉토리의 엔트리 리스트를 표현할 때, 리눅스와 맥의 색상이 다르다. 맥과 리눅스 환경을 동시에 사용하기 때문에 일관된 색상 설정으로 맞춰주고 싶었다.

맥과 리눅스의 ls 색상 차이

맥과 리눅스의 ls 명령어 사이에는 약간의 차이점이 있다. 리눅스는 GNU ls 명령을 사용하고, 맥은 BSD 계열의 ls 명령어를 사용한다. 동일한 이름의 명령어이지만 바이너리가 다르기 때문에 출력되는 결과물도 약간씩 다른 것이다.

방법 1 - 맥에 GNU ls 설치

맥의 ls 명령어 색상을 리눅스에 맞추는 첫 번째 방법은 리눅스에서 사용하는 GNU ls 명령을 설치해서 사용하는 것이다. 우선 다음 포스트를 참고하여 Homebrew를 설치하자 (링크 : Homebrew 설치)

다음 명령을 실행해서 GNU ls 가 포함되어 있는 core utilities 패키지를 설치하자.

brew install coreutils

core utilities 패키지가 설치되면 GNU ls 를 사용할 수 있다. 다만 GNU를 뜻하는 알파벳 g가 앞에 붙는다. GNU ls 명령을 실행하고 싶은 경우 gls를 실행하면 된다. 그냥 gls 명령을 실행하면 디렉토리 엔트리가 하얀색으로만 출력된다.

gls 명령의 결과에 색을 칠해보자. GNU coreutils 패키지를 설치하면 dircolors 명령도 함께 설치된다. (맥에서는 물론 gdircolors 명령으로 실행할 수 있다.) dircolors 명령은 ls 명령과 dir 명령을 위한 색상을 설정하는 일련의 명령어들을 출력해준다. dircolors 명령이 출력하는 내용을 그대로 실행하면 ls 명령의 결과 화면 색상을 설정할 수 있다.

.zshrc (bas를 사용한다면 .bashrc) 파일을 열고 다음을 추가하자.

if [[ -x "$(command -v gls)" ]]; then
  alias ls='gls --color=auto'
  if [[ -x "$(command -v gdircolors)" ]]; then
    eval "$(gdircolors -b)"
  fi
fi

gls 명령이 설치되어 있다면 기존에 설치되어 있는 ls 명령 대신 gls --color=auto 명령을 ls로 alias 시킨다. 그리고 gdircolors가 설치되어 있다면 컬러 설정을 가져오도록 한다.

이제 새로 터미널을 열면 리눅스 스타일로 화면이 출력되는 것을 확인할 수 있다.

방법 2 - BSD ls 설정

맥에서 사용하는 BSD ls 명령은 LSCOLORS 환경변수를 참고해서 출력 결과의 색상을 결정한다.(GNU ls 명령은 LS_COLORS 변수를 참고) 리눅스와 비슷한 색상 결과를 출력하려면 LSCOLORS 환경 변수를 다음과 같이 설정하면 된다.

export LSCOLORS="ExGxFxdxCxdadahbadacec"

이 라인을 .zshrc 설정 파일에 추가하면 리눅스와 비슷한 화면이 출력된다.

댓글