• 본 포스팅은 2021년 12월 26일에 수정되었습니다.

최종 모습

스크린샷

zsh을 사용하게 된 계기

  • bash sh을 아주 잘쓰고 있었음
  • 실수로 rm -rf ~를 입력
  • 혼돈의 카오스
  • 닷으로 시작하는 설정 파일들이 날라감 (.bash* 등등)
  • 이렇게 된 이상 그 좋다던 zsh을 사용해보자.

셋업 환경

  • mac
  • iTerm2

zsh 설치하기

mac은 기본적으로 zsh이 깔린 듯 하다. 아래를 실행시켜 확인해본다.

zsh --version

만약 없다면 아래의 커맨드를 실행시켜 설치한다.

brew install zsh

설치가 끝났다면 chsh을 사용해서 기본 쉘을 바꾼다.

chsh -s `which zsh`

oh my zsh

  • 사용 안함 (*update)

zplug 설치하기

일반적으로는 oh my zsh을 이용하여 사용하는 데에는 지장이 없을 것이다. 개인적으로 oh my zsh을 커버할 수 있는 프레임워크를 원했고 찾아보니 일본 냄새 풀풀 나는 zplug이라는게 있었다.

사실 이것 말고도 여러 가지가 있었으나 범용성이 떨어졌다. oh my zsh에 너무 의존적이거나 사용하기 불편하거나 느리거나 세 가지 중 하나여서 모든 zsh의 라이브러리를 커버할 수 있으면서 속도도 괜찮은 zplug를 선택하였다. zplug에서는 아래 목록을 사용할 수 있다. (사실상 거의 모든 것)

  • Zsh plugins/UNIX commands on GitHub and Bitbucket
  • Gist files (gist.github.com)
  • Externally managed plugins e.g., oh-my-zsh and prezto plugins/themes
  • Binary artifacts on GitHub Releases
  • Local plugins
  • etc. (you can add your own sources!)

그럼 이제 zplug을 설치해보자.

export ZPLUG_HOME=~/.zplug
git clone https://github.com/zplug/zplug $ZPLUG_HOME

설치는 끝났고 사용하는 법만 남았다. 기본적으로 oh my zsh에서 사용 가능한 플러그인과 테마가 모두 사용이 가능하다. 또한 외부테마도 사용할 수 있다. 필자는 spaceship이라는 어여쁜 외부 테마를 사용할 예정이다.

아래 내용을 copy 해서 ~/.zplugsetting 파일을 생성한다.

##################
# ZPLUG LOAD
##################
source ~/.zplug/init.zsh

##################
# ZPLUG START
##################
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-history-substring-search"
zplug "zsh-users/zsh-syntax-highlighting"
zplug "robbyrussell/oh-my-zsh", use:"lib/*.zsh"
zplug "plugins/git", from:oh-my-zsh
zplug "plugins/macos", from:oh-my-zsh, if:"[[ $OSTYPE == *darwin* ]]"
zplug "plugins/colorize", from:oh-my-zsh
zplug "plugins/docker", from:oh-my-zsh
# zplug "themes/robbyrussell", from:oh-my-zsh

# theme
zplug "denysdovhan/spaceship-zsh-theme", use:spaceship.zsh, from:github, as:theme

# install & load
zplug check || zplug install
zplug load

아래 커맨드를 실행시켜 라인을 추가한다.

echo ". $HOME/.zplugsetting" >> ~/.zshrc

아래 커맨드로 zplug를 적용시킨다.

source ~/.zshrc

zplug를 통해 oh my zsh의 플러그인과 github에 있는 외부테마가 콜라보를 이루며 잘 적용된다.

자세한 사용법은 zplug를 참조하는게 좋을것 같다. (아직 필자도 잘 모르기 때문에..)

폰트 깨짐 해결

막상 spaceship theme를 적용하면 터미널 내에서 폰트가 깨진다. https://github.com/powerline/fonts에 가면 터미널을 위한 특수 폰트가 준비되어 있다. 설치한다.

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
  • iTerm2 > Preferences > Profiles > Text 설정에 들어간다.
  • Font부분에서 Use a different for non-ASCII text에 체크한다.
  • Non-ASCII Font에서 Change Font를 클릭하고 Roboto Mono for Powerline을 선택한다.

해결완료.

iTerm2 꾸미기

http://iterm2colorschemes.com/, 감사하게도 이 사이트에 iTerm에 관련된 테마가 준비되어 있다. 다운 받고 압축을 풀면 schemes 폴더에 수많은 테마들이 존재하고 import를 통해 적용시키기만 하면 된다.

  • iTerm2 > Preferences > Profiles > Colors 설정에 들어간다.
  • 우측 하단 Color Presets... 클릭
  • Imports... 클릭
  • schemes > ayu 테마 적용

적용완료.

모든 설정이 끝났다. 이제 zsh로 즐거운 터미널 생활을 해보자.

docker 컨테이너 내의 locale(로케일) 에러 해결

특정 docker image를 컨테이너로 만들고 접속해보니 아래와 같은 locale 에러 메세지가 발생했다. 무시하고 작업을 해도 되지만 매우 거슬려서 아래와 같이 추가 설정을 하였다. bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory bash: warning: setlocale: LC_COLLATE:...

더보기