오늘은 못생긴 bash를 버리고 zsh을 설치하여 사용해 보자.
zsh은 macOS의 기본 쉘이며, bash와 거의 비슷하지만 다음과 같은 장점을 갖고 있다.
자동 완성 및 탭(tab)으로 이동 가능
zsh는 자주 사용하는 명령어에 대한 자동 완성(추천) 기능을 제공한다.
zsh-autosuggestions 플러그인을 설치하면 사용할 수 있다.
또한 bash는 사용 가능한 목록만 보여주는 정도로만 자동 추천을 제공하지만, zsh은 tab 키를 이용하여 리스트를 탐색하고 선택할 수 있는 옵션을 제공한다.
다양한 플러그인 및 테마 지원(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 테마 목록을 조회할 수 있다.
가장 많이 사용되는 테마는 agnoster이다.
테마 적용 방법은 간단하다. 그냥 위키에 나와 있는 이름을 .zshrc 파일 내의 ZSH_THEME에 반영해주면 된다.
nano ~/.zshrc
source ~/.zshrc # 변경사항 바로 적용
위 테마 목록 외에도 외부 플러그인을 통한 테마 적용도 가능하다.
난 여기서 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를 참고하면 된다.
나는 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 목록에 추가하면 된다.
오류 해결
zsh 적용 후 bash 환경에서 설치한 nvm이 zsh에서는 실행이 안되는 문제가 발생했다.
nano ~/.zshrc
# 하단에 코드 추가 후 저장
source ~/.zshrc
사용하는 에디터로 zsh 설정 파일을 열어준 후, 아래 코드
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
을 추가한 후 저장하면 정상적으로 nvm이 동작한다.
'Backend > Ubuntu&Linux' 카테고리의 다른 글
WSL - WSL 1에서 WSL 2로 변경(업그레이드) (0) | 2022.09.02 |
---|---|
WSL - 2. Windows에서 WSL2 ubuntu 데스크톱 모드로 사용 (8) | 2022.03.24 |
WSL - 1. Windows에서 Ubuntu 개발 환경 설정을 위한 WSL2 설치 및 VSCode 연동 (1) | 2022.03.01 |