본문 바로가기
Linux/Linux Shell Command

zsh 설치하기 - 리눅스 쉘(Shell)을 예쁘고 고급스럽게

by 드로니뚜벅이 2022. 4. 8.

우분투를 설치하면 기본 쉘(shell)로 클래식한 느낌이 물씬 풍기는 bash 쉘이 설치됩니다. (정확히는 dash 입니다.)

그런데, 맥OS에서는 주로 zsh 쉘을 사용합니다. bash 쉘에 비해 뭔지 모르게 예뻐 보이기도 하고 고급스러워 보여서 이번 기회에 zsh로 변경해 보았습니다. 설치하고 나니 새로운 OS로 바꾼 것 같은 느낌이 들어 200% 만족하며 잘 사용하고 있습니다. 그 동안 bash 쉘에 식상해 하셨다면 zsh을 한번 사용해 보시기를 추천드립니다.

 

zsh 설치하기

$ sudo apt install zsh -y

 

쉘 변경하기

$ which zsh
/usr/bin/zsh
$ chsh -s $(which zsh)

변경 후에 다시 로그인을 하셔야 적용이 됩니다.

로그인 하면 아래와 같은 창이 뜨는데 그냥 <Enter> 키를 누르시고 진행해도 됩니다.

This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

(2)  Populate your ~/.zshrc with the configuration recommended
     by the system administrator and exit (you will need to edit
     the file by hand, if so desired).

--- Type one of the keys in parentheses ---

쉘이 Zsh로 정상적으로 변경되었는지 확인해 주세요.

$ echo $SHELL
/user/bin/zsh
$

 

Oh My Zsh  설치

- Zsh 쉘에 플러그인과 테마(theme)를 손쉽게 적용하려면 Oh My Zsh 를 설치하셔야 합니다.

- git과 wget 혹은 curl을 통해 설치해야 하기 때문에 설치여부 확인하고 설치되어 있지 않으시면 아래처럼 설치해 주세요.

$ sudo apt update
$ sudo apt install git curl wget -y

 

▷ wget 으로 설치하기

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

 

▷ curl 로 설치하기 (이걸로 설치해 보겠습니다)

$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

or

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
 
설치가 완료되면 뭔가 다른 프롬프트가 출력되는 걸 확인할 수 있습니다. 일단 달라 보이니 새로워서 좋습니다.

이걸로는 2% 부족하다 싶으시면 아래에 설명된 테마 중 본인이 선호하는 걸로 설치해 주세요.

 

zsh 테마 변경

oh-my-zsh 테마는 zsh의 쉘 환경을 보기좋게 꾸밀 수 있도록 해 줍니다. 테마를 변경하기 위해서는 .zshrc(~/.zshrc) 파일을 수정해야 합니다. oh-my-zsh를 설치하면 "robbyrussell"테마가 기본으로 설치되어 있습니다. (robbyrussell 은 개발자 이름이라고 하네요)

"robbyrussell"을 "bullet-train"으로 테마를 변경하려면, .zshrc 파일에서 11번째 라인에 설정된 ZSH_THEME="robbyrussell"을 ZSH_THEME="agnoster"으로 수정하고 스크립트를 다시 실행해 주세요.

$ source .zshrc

zsh를 설치하고 테마를 변경한 후 폰트가 깨질 경우 아래처럼 폰트를 설치합니다.

$ sudo apt install fonts-powerline -y

여기까지 따라 오셨으면 zsh 을 사용하시는데 큰 문제는 없습니다. 테마가 본인의 취향이 아니시면 다른 걸로 바꿔보시는 것도 가능합니다. 아래 추천 테마를 참고하세요.

 

● 추천 테마

- agnoster

 

- Dracura theme

 

- bullet-train

모양은 agnoster 테마하고 비슷하긴 하지만 색감이 맘에 들어 저는 bullet-train을 주로 사용합니다.

추가로, 더 멋지게 꾸미시고 싶으시다면 아래 플러그인을 설치하시면 좋습니다.

 

플러그인(plugin) 설치

각 플러그인에 대한 설명은 Oh My Zsh Wiki를 참고해 주세요.

현재 설치되어 있는 플러그인은 .zshrc파일에서 plugins=( ... ) 항목을 확인하시면 됩니다.

zsh-syntax-highlighting

이 플러그인은 zsh 쉘에 대해 fish shell과 같은 구문 강조 표시를 제공합니다. zsh 프롬프트에서 대화형 터미널에 입력하는 동안 명령을 강조하여 표시할 수 있습니다. 특히 구문 오류를 잡을 때 명령을 실행하기 전에 검토하는 데 많은 도움이 됩니다.

$ 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
remote: Enumerating objects: 2435, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 2435 (delta 21), reused 21 (delta 7), pack-reused 2385
오브젝트를 받는 중: 100% (2435/2435), 566.38 KiB | 1.01 MiB/s, 완료.
델타를 알아내는 중: 100% (1552/1552), 완료.

 

설치한 플로그인을 적용하려면 아래 내용처럼 .zshrc 파일을 업데이트하셔야 합니다.

$ vim .zshrc

파일을 저장하셨으면 스크립트를 다시 실행해 주세요.

$ source .zshrc

 

폰트 설치

파워라인(powerline) 폰트가 맘에 들지 않으시면 네이버에서 배포한 D2Coding 폰트를 설치해 보시는 것도 괜찮을 듯 합니다.

1) 다음 URL(https://github.com/naver/d2codingfont)을 클릭하신 후 1.3.2 최신 폰트를 다운로드 받아주세요.

2) 압축을 풀어서 더블 클릭하시면 설치됩니다.

  - 추가 설명이 필요하시면 아래 참고 사이트를 참고해 주세요.

 

아직도 배고프다 더 예뻐졌으면...

WSL에서 테마를 bullet-train로 설정하면 좀 느린 문제가 있어 여기저기 구글링 하다 보니 아래 방법이 있어 적용시켜봤는데 제법 괜찮은 것 같습니다. 그래서 다음 내용은 WSL2에만 해당될 수 있습니다. 

WSL2에서 터미널을 실행하면 아래 이미지처럼 디렉토리와 파일 리스트가 별로 안예쁩니다. 이걸 좀 예쁘게 해 보겠습니다.

안 이쁘네~

colorls 설치

$ sudo apt install ruby ruby-dev ruby-colorize
$ sudo apt install build-essential
$ sudo apt install libncurses5-dev
$ sudo gem install colorls

설치하고 나면

좀 이쁘나?!

ls 명령어나 ll 명령어 실행 시 적용하려면 .zshrc 혹은 .bashrc 파일에 alias로 변경해 줍니다.

alias ls='colorls --color=auto --time-style=long-iso'
alias ll='colorls -Al --sd'

 

참고 사이트