Backend/Ubuntu&Linux

Ubuntu - zsh 설치 및 oh my zsh를 이용한 테마/플러그인 적용

둉이 2022. 3. 30. 04:05

오늘은 못생긴 bash를 버리고 zsh을 설치하여 사용해 보자.

 

zsh은 macOS의 기본 쉘이며, bash와 거의 비슷하지만 다음과 같은 장점을 갖고 있다.

 

 

자동 완성 및 탭(tab)으로 이동 가능

zsh는 자주 사용하는 명령어에 대한 자동 완성(추천) 기능을 제공한다.

 

zsh-autosuggestions 플러그인을 설치하면 사용할 수 있다.

zsh 자동 완성

 

또한 bash는 사용 가능한 목록만 보여주는 정도로만 자동 추천을 제공하지만, zsh은 tab 키를 이용하여 리스트를 탐색하고 선택할 수 있는 옵션을 제공한다.

bash 자동완성

 

zsh 자동완성

 

다양한 플러그인 및 테마 지원(oh my zsh)

zsh은 oh my zsh라는 커뮤니티를 통해 다양한 플러그인과 테마를 제공한다.

 

사용자가 원하는 작업 환경을 설정하여 사용할 수 있는 다양성을 누릴 수 있다.

 

 

zsh 설치 및 실행

1. zsh 설치

sudo apt install zsh

 

2. zsh을 기본 실행 쉘로 설정

chsh -s /usr/bin/zsh

 

3. oh my zsh 설치 후 테마 적용

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
// 혹은
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

 

 

이제 테마를 변경해 보자.

 

아래 주소를 통해 oh my zsh를 통해 변경 가능한 zsh 테마 목록을 조회할 수 있다.

 

GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh config

🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, pyth...

github.com

 

가장 많이 사용되는 테마는 agnoster이다.

 

테마 적용 방법은 간단하다. 그냥 위키에 나와 있는 이름을 .zshrc 파일 내의 ZSH_THEME에 반영해주면 된다.

nano ~/.zshrc
source ~/.zshrc  # 변경사항 바로 적용

 

.zshrc 내 ZSH_THEME

 

위 테마 목록 외에도 외부 플러그인을 통한 테마 적용도 가능하다.

 

GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh config

🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, pyth...

github.com

 

난 여기서 headline 테마가 제일 이뻐 보이길래 해당 테마로 적용해보기로 결정했다.

 

외부 플러그인 테마 적용도 일반 테마 적용 방식과 비슷하다.

 

아래와 같이 명령어를 입력하여 원하는 커스텀 테마를 다운받은 후, 해당 파일을 링크해 준다.

git clone https://github.com/moarram/headline.git $ZSH_CUSTOM/themes/headline
ln -s $ZSH_CUSTOM/themes/headline/headline.zsh-theme $ZSH_CUSTOM/themes/headline.zsh-theme

nano ~/.zshrc
source ~/.zshrc

 

이후 과정은 동일하다. 적용하고자 하는 테마를 .zshrc 내 ZSH_THEME에 반영한 후 저장하면 된다.

 

 

플러그인 추가

oh my zsh를 이용하여 간단하게 유용한 zsh 플러그인 추가가 가능하다.

 

사용 가능한 플러그인 목록은 zsh wiki - plugins를 참고하면 된다.

 

GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh config

🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, pyth...

github.com

 

나는 zsh-autosuggestions과 zsh-syntax-highlighting 플러그인을 추가하기로 했다.

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

nano ~/.zshrc
source ~/.zshrc

 

플러그인 추가도 간단하다. 원하는 플러그인을 다운로드한 후, 아래와 같이 .zshrc 내 plugins 목록에 추가하면 된다.

.zshrc 내 plugins

 

 

오류 해결

zsh 적용 후 bash 환경에서 설치한 nvm이 zsh에서는 실행이 안되는 문제가 발생했다.

nano ~/.zshrc
# 하단에 코드 추가 후 저장
source ~/.zshrc

 

사용하는 에디터로 zsh 설정 파일을 열어준 후, 아래 코드

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

을 추가한 후 저장하면 정상적으로 nvm이 동작한다.