본문으로 건너뛰기

zsh 설치 및 플러그인 설치 (with oh my zsh)

 · reading-time-plural

zsh 에 oh my zsh 를 적용하고 Powerlevel10k 를 이용해 Terminal 을 이쁘게 꾸며보겠습니다. 또한, 플러그인을 설치하여 생산성까지 강화해 보도록 하겠습니다.

각각의 어떤 것을 의미하나요?​

Terminal 좀 이쁘게 바꿔보려고 하는데 뭐 이리 많은 것을 설치해야 되는지 헷갈립니다. 우선 정리를 하고 가볼까요?

zsh​

bash와 같은 shell 프로그램입니다. bash에 비해 강력한 기능과 여러 가지 플러그인을 제공하고 있습니다.

oh my zsh​

zsh 설정을 관리하기 위한 프레임워크입니다. 현재를 기준으로 200개가 넘는 플러그인과 140개 이상의 테마를 제공합니다.

Powerlevel10k 와 함께 사용할 경우 예쁘고 편리한 shell 사용 환경을 쉽게 갖출 수 있습니다.

Powerlevel10k​

zsh의 이쁜 테마를 제공합니다.

zsh 설치​

우선 Terminal 꾸미기 및 기능을 추가하려면 근간이 되는 shell이 먼저 필요하겠죠? 아래의 명령어로 zsh 을 설치하도록 합니다.

sudo apt-get install zsh

oh-my-zsh 설치​

아래의 명령어로 oh-my-zsh 를 설치하도록 합니다.

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
tip

oh-my-zsh 설치 시 기본 셀을 zsh 으로 설정할 수 있지만 chsh -s (which zsh) 을 통해서도 변경이 가능합니다.

zsh 이 기본이면 안 해도 됩니다.

power level 10k(p10k) theme 설치​

아래의 명령어로 Powerlevel10k 를 설치하도록 합니다.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

theme 적용​

code ~/.zshrc 또는 nano ~/.zshrc 으로 접속해서 아래와 같이 수정하도록 합니다.

- ZSH_THEME="robbyrussell"
+ ZSH_THEME="powerlevel10k/powerlevel10k"
VSCode를 사용 중이면 아래와 같이 수정해보세요.

VSCode 가 없다면 텍스트 편집기 로 열어서 수정만 하면 됩니다.

아니면 어썸하게 vim 으로!

font 설치 및 적용​

font 설치의 경우 Terminal Client Program 마다 조금 씩 다른데 Mac 에서 많이 사용되는 iTerm2 과 Windows 에서 많이 사용되는 Windows Terminal 애 대해서 가이드 하겠습니다.

iTerm2​

power level 10k 셋팅 시 폰트 설치 여부에 따라 시작화면에 설치방법을 가이드합니다.

Meslo Nerd Font 설치 여부를 묻는 메시지가 표시되면 입력 p10k configure하고 대답 Yes합니다.

Windows Terminal​

Windows Terminal에서 폰트가 깨지기 때문에 필요한 폰트를 다운받습니다.

Windows Terminal에서 Ctrl + , 으로 들어가 설치한 폰트 적용해줍니다.

"fontFace": "MesloLGS NF"

theme setting​

p10k configure 을 입력하면 테마를 재설정 할 수 있습니다.

info

저의 경우 아래와 같이 설정했습니다.

Prompt Style        : (3)  Rainbow
Character Set : (2) ASCII
Show current time? : (3) 12-hour format
Prompt Separators : (1) Angled
Prompt Heads : (1) Sharp
Prompt Tails : (1) Flat
Prompt Height : (1) One line
Prompt Spacing : (2) Sparse
Icons : (2) Many icons
Prompt Flow : (1) Concise
Enable Transient Prompt?: (n) No
Instant Prompt Mode     : (1)  Verbose (recommended)
Apply changes to ~/.zshrc? : (y) Yes (recommended)

zsh + oh my zsh + Powerlevel10k 적용 완료​

최종적으로 모두 적용되면 아래와 같은 모습을 살펴볼 수 있습니다.

이외로 Windows Terminer에 WSL 을 기본 프로필로 사용하면 Windows에서 더욱 Linux 를 사용하는 느낌을 낼 수 있습니다.

플러그인 활성화 하기​

이제 zsh 를 설치했으니 플러그인을 설치하여 강력한 zsh 의 기능을 사용해봅시다.

플러그인 활성화는 .zshrc 에서 할 수 있습니다. 저는 아래의 플러그인을 기본적으로 활성화시켜 놓았습니다.

plugins=(
git
yarn
node
brew
docker
)

하이라이팅, 자동완성 플러그인 설치​

기본 플러그인 외에 명령어 하이라이팅 플러그인 zsh-syntax-highlighting 과 자동완성 플러그인 zsh-autosuggestions 설치합니다.

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

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

code ~/.zshrc 파일을 열고 plugins 항목에 플러그인을 추가합니다.

plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)

설정 파일을 수정했으면 터미널을 재시작하거나 source ~/.zshrc 명령어를 실행하여 설정을 다시 불러와야 합니다.

이제 명령어를 입력할 때 존재하지 않는 명령어는 빨간색으로 뜨고 한번 입력했던 명령어를 흐릿하게 표현해 주는 걸 확인을 통해 적용된 것을 확인할 수 있습니다.

lsd​

lsd 는 ls 명령어시 파일 아이콘이 보여주는 이쁜 플러그인 입니다. 확장자에 따라서 파일 아이콘도 바뀌니 가독성도 개선될 것 입니다.

자세한 것은 Peltoche/lsd 의 Repo에서 확인하실 수 있습니다.

macOS 설치 방법​

정말 간단합니다.brew install lsd 으로 설치하면 끝입니다. lsd 명령어를 통해서 동작 여부를 확인할 수 있습니다.

linux 설치 방법 (feat. WSL)​

Peltoche/lsd 에서 release file을 다운받습니다.

다운받은 파일 경로 입니다.

sudo dpkg -i lsd_0.18.0_amd64.deb 명령어를 이용해 설치합니다.

note

Downloads 으로 이동하는 이유는 해당 디렉터리가 아까 설치한 lsd가 있기 때문입니다.

단축기 설정​

code ~/.zshrc 에서 사용하기 쉽게 단축키를 맵핑해주도록 합니다.

alias ls="lsd --no-symlink"
alias ll="lsd -l --no-symlink"
alias lt="lsd --tree --no-symlink"

적용된 것을 확인할 수 있습니다.

bat​

cat 명령어에 코드 하이라이팅 + more 기능이 추가된 버전입니다.

macOS 설치 방법​

아래의 명렁어 실행 후 bat 를 실행해서 잘 적용됐는지 확인하도록 합니다.

brew install bat

파일 이름이랑 코드 줄까지 이쁘게 표시되는 것을 볼 수 있습니다.

단축키 설정​

code ~/.zshrc 에 cat 대신 사용하도록 설정하면 더 편리합니다.

alias cat="bat"

마무리​

Terminal 꾸미기 등 시리즈로는 제 글 이외 많은 자료가 존재합니다. 그만큼 아무래도 개발자라면 Terminal 을 이쁘게 꾸미고 생산성을 강화하고 싶어 합니다.

문제는 Terminal 커스텀의 끝이 참으로 없다는 것인데 너무 꾸미는 데에만 집중하느라 본질을 놓치지 않았으면 좋겠습니다. 적당한 타협해서 커스텀 해주면 이뻐서 자주 들어가고 가독성 개선 및 생산성 향상이 될 거 같아요.

읽어주셔서 감사합니다.


parkgang