마사키군의 다락방

끄적끄적할게 있을때 끄적거려 보관해두는 다락방

맥에서 zsh 사용하기

잡설: 4DOS

(이 부분은 정말로 관계없는 잡설이므로, 그냥 본론으로 건너뛰어도 상관없다-_-)

잠깐 딴 이야기를 시작해보자면, 십수년 전에 MS-DOS를 사용할 때에는 명령 쉘을 기본 제공되는 COMMAND.COM 대신에 JP Software의 4DOS를 사용했었다.

이건 물론 COMMAND.COM이 원체 구렸(…)고, 4DOS가 그런 기능적 부족함을 메꿔줬기 때문에 사용했던 것이지만, 개인적으로 그 중에서 제일 좋아했던 기능은 뭐니뭐니해도 파일의 종류에 따라 파일 목록을 컬러풀하게 보여주는 기능이었다.

그러니까 이런식. 지금같은 시대에 4DOS를 구해서 설치하는 것은 좀 버거웠고-_- 이 스크린샷의 출처는 WPUs Power-MsDOS/4DOS

물론 기본적으로 저렇게 나온다는건 아니고, 저렇게 표시를 하도록 설정을 미리 해줘야 하기는 하지만 그런 부분은 일단 넘어가도록 하자-_-;;;

어느 시점부터는 운영체제들이 점점 CLI를 버리고 GUI를 도입하면서 결국 4DOS도 쇠퇴하였고, JP Software는 GUI의 파일 관리자와 CLI를 조합한 Take Command라는 것을 개발해서 재기를 노리는 것 같지만 잘 안되는 것 같다(사실 그바닥에는 역사와 전통의 Total Commander라는 터줏대감이 버티고 있는데다가, 이녀석이 팬도 엄청나게 많아서…).

어차피 이제는 JP Software 홈페이지에서도 4DOS는 찾을 수 없으니, 굳이 궁금한 사람은 위키백과의 4DOS 항목을 참고하도록 하자.

그래도 4DOS.INFO라는 사이트에서 다운로드 가능한 4DOS 바이너리를 발견할 수 있으니 관심있는 사람은 참고하자. 도스 시절에 사용하던 프로그램이기 때문에 확장자가 .com 이라는게 사람에 따라서는 함정이라면 함정이지만 (…)

본론: zsh

4DOS 얘기를 하다 보니 잡설이 길어졌는데, 본론으로 돌아와서 맥의 Bash 쉘을 쓰면서 가장 아쉬웠던게 ls 실행시 단색으로 표시되는 파일 목록이었다.

Bash 쉘에서 ls 명령어를 실행한 모습. 흑백으로 나온다.

Bash 쉘에서 ls 명령어를 실행한 모습. 흑백으로 나온다.

그게 무슨 배부른 소리냐고 할지 모르겠지만, 사실 흑백으로 나오면 파일 구분하기가 정말 어렵다. 한 디렉토리 안에 파일이 10개 가량만 있어도 뭔가 헷갈리고, 특히 지금은 8.3 파일명의 시대가 아니기 때문에 파일명도 제법 길어서 더더욱 혼란스럽다. 이럴때 파일을 구분할 수 있는 색상만이라도 표시된다면 정말 구분하기 좋을 것이다.

사실 우분투 데스크톱은 터미널을 띄워서 ls 실행해보면 어느 정도 컬러를 입혀주는걸 봐서는 못하는건 아닌것도 싶다.

우분투에서 ls를 실행해보면, 어느 정도는 컬러를 입혀준다

우분투에서 ls를 실행해보면, 어느 정도는 컬러를 입혀준다

사실 우분투에서 ls의 결과로 나오는 목록은 파일 종류에 따른것이 아닌, 디렉토리/파일 구분에 따라서 색상을 입혀주는 것 같지만… 꿩 대신 닭이라고… 어쨌든…

그러다가 언젠가 페이스북에서 컬러풀한 터미널의 스크린샷을 보았던 기억이 나서, 적당히 인터넷을 검색해본 뒤 zsh를 사용해보게 되었다.

zsh는 Bash 쉘을 대체할 수 있는 쉘로써, 단순히 Command Line이 컬러풀하게 되는 것으로 끝(…)이 아니라 filename auto complete 및 arguments auto complete 등 Bash 쉘 이상으로 편리한 기능들도 들어있는 것 같다.

하지만 지금은 zsh에 어떤 기능이 있는지까지는 알아보지 않았고, 그저 파일 목록에 컬러를 입혀줬다는 것만으로도 만족하면서 쓰고 있고, 그 외에 와닿는 기능이 filename auto complete 기능이 있다. 이건 여기서는 생략.

zsh 설치 및 설정

아래 내용은 코딩 코리아(Coding Korea): zsh 갖고 놀기라는 웹문서를 참고했으며, 시스템에는 이미 홈브류가 설치되어 있다고 가정한다. 만약 홈브류가 설치되어 있지 않다면 Homebrew 홈페이지를 참고해서 홈브류를 설치하자.

사실, 굳이 zsh를 따로 설치하지 않더라도 맥에 이미 기본으로 zsh가 설치되어 있다고 하는데, 확인 결과 요세미티 기준으로 최신 버전이 아닌 5.0.5 버전이 설치되어 있다고 한다. 참고로 zsh의 최신 버전은 2015년 10월 10일 기준으로 5.1.5이다. 홈브류를 이용해서 새로이 zsh를 설치하자.

정상적으로 설치되었다면 /usr/local/Cellar/zsh/{version formula}에 설치되고, /usr/local/bin/zsh에 링크가 생성될 것이다. 링크가 생성되지 않았다면 Homebrew가 링크를 생성하지 못할때를 참고하자.

설치가 완료되었다면 vim 등의 편집기를 이용해서 /etc/shells 파일 가장 아래쪽에 zsh의 경로를 지정해주자. zsh의 경로는 위 설명대로 홈브류를 이용해서 설치했다면 /usr/local/bin/zsh일 것이다.

이것은 설치된 쉘의 목록을 시스템에게 알려주는 역할을 한다.

vim 등의 편집기를 이용해서 zsh의 경로를 추가한다

vim 등의 편집기를 이용해서 zsh의 경로를 추가한다

zsh의 경로를 추가해 주었다면 chsh 명령어로 기본 쉘을 변경한다.

여기까지 진행되었으면 설치도 끝나고 기본쉘도 설치한 zsh로 변경했으니 그냥 사용해도 되겠지만, 실제로 zsh라고 입력해서 바로 실행해보면 환경설정을 하라는 안내 메시지가 표시된다. 여기서 바로 사용할 수는 없는 것 같고 환경설정을 해 줘야 하는 것 같은데, oh-my-zsh를 설치해서 바로 사용할 수 있다. oh-my-zsh는 커뮤니티 기반의 zsh 환경 관리 프레임워크(community-driven framework for managing your zsh configuration)라고 소개되어 있지만, 사용해본 느낌은 zsh 환경 설정의 프리셋 모음 같은 느낌이었다. 실제로도 zsh에 바로 적용해서 사용할 수 있는 환경설정 프리셋이 테마라는 이름으로 제공된다.

여하튼, 아래 명령어로 oh-my-zsh를 설치한다.

설치가 완료되면 텍스트 아트로 만들어진 oh-my-zsh의 로고가 표시된다.

이렇게 oh-my-zsh의 설치가 완료되었다면, 홈 디렉토리에 자동 생성된 .zshrc 파일을 수정해주면 된다.

전부 살펴보고 자신에게 맞게 수정하면 좋겠지만 지금의 나에게는 그럴 시간은 딱히 없고(…) ZSH_THEME 부분만 고쳐서 사용했다. ZSH_THEME는 oh-my-zsh에서 제공되는 컬러 테마 중 어떤 테마를 적용할 것인지 결정하는 것으로, 테마는 ~/.oh-my-zsh/theme에 저장되어 있다. 각각의 테마들의 미리보기는 oh-my-zsh/themes에서 살펴볼 수 있다.

나는 참고했던 위 문서의 작성자와 동일하게 dpoggi 테마를 사용했다 사실은 테마 살펴보고 고르기도 귀찮았어 . 이 테마는 다른것보다도, 현재 경로가 git 저장소일 경우 git 저장소의 브랜치 정보와 commit해야 할 파일의 유무 여부를 프롬프트로 바로 알려주는게 굉장히 마음에 들었다. 이것이 zsh 자체의 기능인지 테마에서 제공되는 기능인지는 잘 모르겠지만, 아무렴 어때 (…)

dpoggi 테마에서는 현재 경로가 git 저장소일 경우 브랜치 정보를 프롬프트로 바로 알려준다

dpoggi 테마에서는 현재 경로가 git 저장소일 경우 브랜치 정보를 프롬프트로 바로 알려준다

현재 저장소 내에 커밋해야 할 파일이 있다면 프롬프토로 바로 알려준다 (프롬프트 마지막에 있던 ○ 표시가 번개 표시로 바뀐다)

현재 저장소 내에 커밋해야 할 파일이 있다면 프롬프토로 바로 알려준다 (프롬프트 마지막에 있던 ○ 표시가 번개 표시로 바뀐다)

마지막으로 zsh를 설치한 뒤의 터미널의 스크린샷. 실제로 파일이 종류별 컬러로 구분되지는 않았지만, 디렉토리만이라도 구분되니까… ;;; 맨 처음 터미널 스크린샷이랑 비교하면 이쪽이 더 눈에 잘 들어오는건 확실하다.

zsh 설치하고 설정한 뒤의 터미널 화면

zsh 설치하고 설정한 뒤의 터미널 화면

, ,

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다