본문 바로가기

Tip and Tech/Ubuntu

터미널 개발 환경 변경하기 for Ubuntu (zsh + oh-my-zsh)

728x90
반응형

 

Photo by Mohammad Rahmani on Unsplash

 

Mac OS X에서 사용하는 터미널 환경을 변경했듯이, Ubuntu에서도 변경하고자 다음과 같은 절차를 진행했다.

참고로, 아래 링크는 Mac OS X에 설치했던 내용을 정리한 포스트이니 참고하기 바란다.

 

[Tip and Tech/Mac OS X] - 터미널 개발 환경 변경하기 for Mac OS X (iTerm2 + oh-my-zsh)

 

터미널 개발 환경 변경하기 for Mac OS X (iTerm2 + oh-my-zsh)

개발자에게 Mac OS X 기본 터미널 앱의 부족함을 채워줄 개발 환경을 iTerm2와 oh-my-zsh를 통해 변경, 구축해 보고자 한다. 참고로, Mac OS X의 기본 쉘이 bash에서 zsh로 변경된 카탈리나 이후 버전의 OS를

davelogs.tistory.com

 


Ubuntu에는 기본적으로 BASH가 설치되어 있다. 사실 딱히 크게 불편하거나 하는 점은 없었지만, 기존 BASH에서는 ~/.bashrc 설정을 바꿨던 것처럼, BASH를 대체할 zsh에서는 ~/.zshrc 파일에서 설정을 변경하면 되고, oh-my-zsh를 통해 입맛에 맞게 바꿀 수도 있다는 장점이 있기에, 같이 사용중에 있는 MacOS에서와 같은 환경으로 맞추는 것도 괜찮겠다 하는 생각에 이 과정을 진행하게 됐다. 

1. zsh 설치

일단 다음 구문을 통해 zsh가 설치되어 있는지를 확인한다.

 

# zsh 설치 버전 확인
$ zsh --version

zsh 설치 여부 및 설치 버전 확인

 

설치된 버전이 낮아도 다음 단계의 oh-my-zsh를 설치할 수 없으니 최신 버전으로 설치하길 권장한다.

https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-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

 

다음 구문으로 zsh를 설치한다.

 

# zsh 설치
$ sudo apt-get install zsh

 

설치가 끝나면, 다음 구문을 통해 기본 쉘을 BASH에서 zsh로 변경한다.

 

# 설정된 기본 쉘 확인
$ echo $SHELL
/bin/bash

# 기본 쉘 변경: BASH에서 zsh로
$ sudo chsh -s $(which zsh)

# 변경된 기본 쉘 확인
$ echo $SHELL
/bin/zsh

 

보통은 이렇게 하면 바로 기본쉘이 zsh로 변경되는데, 바로 확인이 안 될 경우 재부팅을 하면 적용된 것을 확인할 수 있다.

 

zsh 설치 후 최초 실행 화면

 

재부팅 후 터미널을 실행해 보면 위와 같은 최초 설정에 대한 내용이 나오고, 여기선 일반적인 설정으로 하기 위해 "2"를 입력한다.

 

2. oh-my-zsh 설치

이제 다음 구문을 통해 zsh를 보다 유연하고 특별하게 사용할 수 있도록 지원하는 oh-my-zsh를 설치한다. 

 

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

 

아래는 oh-my-zsh를 설치한 화면이다.

 

oh-my-zsh 설치 화면

 

oh-my-zsh에 대한 자세한 사항은 아래 경로에서 확인하기 바란다.

 

https://ohmyz.sh/

 

Oh My Zsh - a delightful & open source framework for Zsh

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with several helpful functions, helpers, plugins, themes, and a few things that make you shout... OH MY ZSH!

ohmyz.sh

 

3. 테마 변경

기존 BASH에서 사용하던 ~/.bashrc 대신 ~/.zshrc 파일을 열고, ZSH_THEME를 "agnoster"로 변경한다.

 

# ZSH_THEME 변경
$ vi ~/.zshrc

# 설정 즉시 적용
$ source ~/.zshrc

ZSH_THEME 변경
변경한 테마가 적용된 화면 (프롬프트 끝 폰트가 깨져있다)

 

4. 폰트 설정 및 변경

폰트가 깨지고 있는 것을 확인할 수 있는데, powerline fonts를 설치하면 해결된다.

 

# 깨진 폰트 문제 해결
$ sudo apt-get install fonts-powerline

 

더불어, 한글 사용을 위해 많은 개발자들이 사용하고 있는 Naver D2 coding 폰트를 설치한다.

출처: https://github.com/naver/d2codingfont

 

아래 경로에서 다운로드 한다.

 

https://github.com/naver/d2codingfont

 

GitHub - naver/d2codingfont: D2 Coding 글꼴

D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.

github.com

 

압축을 풀고, .ttf 파일을 더블 클릭 후 Install 버튼을 눌러 설치한다.

 

D2coding 폰트 설치

 

설치가 끝났다면, 터미널의 설정에서 폰트를 변경해 준다.

 

터미널의 설정화면에서, "Custom font" 체크 후 D2coding 폰트 선택

 

5. 기타

5.1 프롬프트 간소화

다음 구문을 ~/.zshrc에 삽입해 사용자 이름 뒤에 붙는 컴퓨터 이름을 제거하여 프롬프트를 간소화한다.

 

# Prompt customization
prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

프롬프트 간소화

5.2 플러그인

먼저, 다음 구문을 통해 플러그인 폴더에 명령어 하이라이팅 플러그인 zsh-syntax-highlighting과 자동완성 플러그인 zsh-autosuggestions를 설치한다.

 

# 명령어 하이라이팅 플러그인 설치
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# 자동완성 플러그인 설치
$ git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

 

이후 ~/.zshrc 파일을 열고 plugins 부분에 다음과 같이 zsh-syntax-highlighting과 zsh-autosuggestions를 추가한다.

 

 

명령어 하이라이팅과 자동완성 플러그인 추가

 


아래는 위 설정들을 그대로 적용해 사용중인 터미널의 모습이다.

 

설정을 완료한 최종 터미널 화면의 모습

 

검색해 보면 보다 다양한 설정 방법들이 있는 것 같다. 입맛에 맞게 선택, 적용하면 좋을 것으로 보인다.

728x90
반응형