본문으로 건너뛰기

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

 · reading-time-plural · 

zshoh 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

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

자세한 것은 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