예전에 누가 맥북에서 zsh을 사용하는 걸 봤는데 bash만 써봤던 나에겐 굉장한 충격이었다. 뭐 딱히 셸을 자주 쓰진 않아서 그냥 구경만 하고 말았었는데 이번에 인턴을 하게 되면서 개발환경이 맥이 됐다. 맥을 체험하는 도중 zsh이 생각나서 iTerm2도 설치하고 세팅했다.

집에서도 비슷하게 구축하고 싶지만, 집에는 맥북이 없는 관계로(...) 우분투에다가 zsh를 세팅해봤다.


sudo apt install zsh

먼저 위 명령어로 zsh을 설치한다.


sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

다음으로 Oh My Zsh을 설치한다. Oh My Zsh은 zsh을 쉽게 사용할 수 있게 해 주는 프레임워크이다.

설치 도중에 기본 셸을 zsh로 바꿀 거냐고 물어보는데 바꿔주자. 굳이 여기서 안 바꿔도 나중에 chsh -s `which zsh` 명령어로 바꿀 수 있긴 하다.

zsh의 첫모습은 상당히 밋밋하다. 테마를 바꿔서 화려하게 만들어보자.

ll ~/.oh-my-zsh/themes라고 쳐보면 기본 제공되는 다양한 테마들을 확인해 볼 수 있다. 기본 테마 중에서는 "agnoster"를 많이 쓰는 듯하고 아니면 Powerlevel10k라는 강력한 테마가 있어서 이걸 설치해서 많이들 쓰는 것 같지만 나는 설치&세팅이 귀찮아서 그냥 기본 제공 테마인 "agnoster"를 사용하기로 했다.


vim ~/.zshrc

.zshrc 파일을 열고 ZSH_THEME="robbyrussell" 부분을 ZSH_THEME="agnoster"로 바꿔준다.

. ~/.zshrc로 설정을 적용하면 뭔가 글씨가 깨져서 나온다.

폰트가 Powerline을 지원하지 않아서 그렇다. Powerline을 지원하는 D2Coding으로 바꾸면 해결된다.

폰트가 살짝 굵었으면 좋겠는데 지금 사용 중인 Windows Terminal이 아직 해당 기능을 지원하지 않는다. (프리뷰 버전에서는 지원한다니 곧 업데이트될 듯)

사용자 이름 옆에 컴퓨터 이름도 나오는데 쓰잘대기 없는 부분이므로 없애보겠다.


prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

다시 .zshrc 파일을 열고 맨 아랫줄에 위 내용을 추가한다.

. ~/.zshrc로 설정을 적용하고 나면 깔끔하게 사라진 모습을 볼 수 있다.

이제 zsh의 꽃인 플러그인을 설치해보자.

나는 일단 syntax-highlightingautosuggestions을 설치했다.

syntax-highlighting은 타이핑할 때 구문 강조를 해주는 플러그인이고 autosuggestions은 히스토리 기반으로 명령어를 추천해주는 플러그인이다. 명령어를 까먹어도 적당히 기억나는 대로 입력하다 보면 명령어를 칠 수 있다.


git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

위 명령어로 각각 플러그인을 다운받는다.

또다시 .zshrc 파일을 열고

plugins 변수에 다운로드한 플러그인을 추가한다. zsh-syntax-highlighting zsh-autosuggestions

셸을 종료했다가 다시 열거나 . ~/.zshrc 명령어를 실행하면 아래 사진처럼 구문 강조와 명령어 추천을 해주는 모습을 볼 수 있다.

+ Recent posts