Ubuntu/기타

[Ubuntu]zsh, oh-my-zsh 사용하여 터미널 꾸미기(powerlevel10k 테마)

테서르 2021. 11. 27. 17:59
반응형

📢 이 게시글은 아래의 사양에서 진행되었습니다.

Server OS : Ubuntu 20.04.3 LTS on WSL2
SSH Client : MobaXterm v21.3

 

우분투를 처음 설치한 후 터미널을 실행하면 아주 투박한 bash가 반겨준다. 기능에 문제는 없지만 여러가지로 눈에 들어오는 디자인은 아니다.

 

물론 bash도 테마를 적용할 수 있지만 zsh가 bash를 포함하여 기능 개선이 이루어졌고 플러그인도 많이 지원하고 있다. 그래서 이 글에서는 zsh와 플러그인을 관리하는 oh-my-zsh를 설치하고 powerlevel10k 테마를 적용해 보았다.

powerlevel10k 테마 예시

 

 

zsh 설치 및 기본 셸 변경

# zsh 설치
sudo apt install zsh

# 터미널 기본 셸 변경
chsh -s $(which zsh)

zsh을 설치한 후 chsh 명령어를 통해 기본 셸을 변경한다. 셸 변경시 패스워드를 요구하는데 사용자의 패스워드를 입력하면 된다.

 

변경사항을 적용하기 위해 터미널을 재시작 하면 자동으로 zsh 설정화면이 나온다. 여기서는 0을 입력하여 .zshrc 파일을 생성만한다.

zsh 초기 설정화면. 0을 눌러 파일만 생성한다.

 

 

oh-my-zsh 설치하기

.zshrc 파일이 생성되고 투박한 zsh 화면이 우리를 반겨준다. 이제 테마를 적용하기 위해 oh-my-zsh를 설치한다.

# oh-my-zsh 설치
# wget 사용
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# curl 사용
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

wget과 curl중 원하는 방식으로 설치파일을 다운받아 실행한다. 자동으로 설치를 시작한 후 완료되면 완료화면을 출력한다.

 

 

 

powerlevel10k 테마 적용하기

powerlevel10k를 사용하기 위해서는 추가 폰트가 필요하다. 공식 github페이지에 보면 필요한 폰트의 링크가 있다.

링크:  https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k

 

GitHub - romkatv/powerlevel10k: A Zsh theme

A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.

github.com

 

폰트를 설치한 후 바로 아래에 있는 터미널 환경에 따라 설정을 해 준다. 폰트 설정을 하지 않으면 아이콘 등이 깨져서 출력되므로 반드시 폰트를 설정해야 한다.

 

폰트 설정 후 저장소에서 테마 파일을 clone한다.

# 저장소에서 테마 복사
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

 

테마를 적용하기 위해 zsh 설정파일을 수정한다.

# zsh 설정 파일 수정
sudo vi ~/.zshrc

# 파일 내 ZSH_THEME 값 변경
# 기본값이 ZSH_THEME="robbyrussell"로 되어 있다
ZSH_THEME="powerlevel10k/powerlevel10k"

 

ZSH_THEME 값을 변경해야하는데 기본값이 "robbyrussell"로 되어 있을 것이다. 이걸 "powerlevel10k/powerlevel10k"로 변경하여 저장 후 터미널을 재시작 하면 테마가 적용되며 설정이 실행된다.

설정화면. 폰트가 잘 적용되었다면 위처럼 로고가 잘 보인다.

 

 

필자는 Rainbow스타일이 마음에 들어서 Rainbow와 multiline으로 구성을 하였다.

 

만약 스타일을 바꾸고 싶다면 홈 디렉토리에서 p10k configure를 입력하면 설정을 다시 할 수 있다.

 

 

※ Prompt Style 목록에 Rainbow가 없을 경우

필자는 SSH 프로그램으로 MobaXterm을 사용하고 있는데 Rainbow Style이 목록에 없어서 터미널에 문제가 있나 해서 vscode에 있는 터미널로 실행을 해 보니 Rainbow Style이 목록에 생겼다.

 

그래서 찾아보니 터미널의 환경변수가 문제였다. powerline10k 공식 문서에는 터미널이 256 colors를 지원해야 한다고 되어있다. 그런데 MobaXterm은 8 colors로 설정이 되어 있었다.

 

환경 변수 확인.
공식 문서의 지원 색상 확인법. 8개의 색상만 출력되었다.

 

# 현재 터미널 지원 색상 확인
env | grep TERM

# 터미널 지원 색상 출력
for i in {0..255}; do print -Pn "%K{$i}  %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done

 

해결방법은 간단했다. 환경변수를 변경해 주는 명령어를 입력하기만 하면 되었다.

# 터미널 지원 색상 변경
export TERM=xterm-256color

 

변경 후 지원 색상 출력. 모든 색상이 출력되는 것을 볼 수 있다.

 

위 방법으로 하면 터미널 재 접속시 원래대로 돌아오는 문제가 발생한다. 이 문제를 해결하기 위해 zsh이 실행될 때 자동으로 터미널 색상을 변경하도록 하면 된다.

# zsh 설정 파일 수정
sudo vi ~/.zshrc

# ZSH_THEME 값 아래에 추가
export TERM=xterm-256color

 

터미널이 실행될 때 자동으로 명령어가 실행되므로 터미널 재 접속시에도 색상 설정이 유지가 된다.

반응형

'Ubuntu > 기타' 카테고리의 다른 글

우분투 vi 명령어  (0) 2021.01.29