새소식

운영체제/Linux

[Ubuntu] zsh 및 oh-my-zsh 플러그인 설치와 테마 적용

  • -

zsh는 개발자, 시스템 관리자, 데이터 과학자 등 다양한 사용자들 사이에서 많은 인기를 끌고 있으며, 많은 리눅스 배포판 및 macOS에서 기본 쉘로 제공되고 있습니다. 명령어 힌트, 자동완성, 히스토리 관리, 복잡한 명령어의 단축키, 강력한 패턴 매칭, 플러그인 시스템, 다양한 테마 등이 포함되어 있고, 다양한 환경 설정과 커스터마이징 옵션을 제공하여 사용자가 자신만의 개성적인 쉘 환경을 구성할 수 있습니다. 이러한 zsh를 설치해보고 테마를 설정하는 방법을 알아보겠습니다.

본 포스팅에서는 WSL의 Ubuntu 환경에서 진행하였습니다. WSL 설치는 아래 포스팅을 참고해주세요!😎

[운영체제/Windows] - [WSL] Windows 11에서 Linux 사용 방법

zsh(Z Shell) 설치

zsh는 다양한 고급 기능과 편리한 사용자 인터페이스를 제공하며, Bash(Bourne Again SHell)와 함께 가장 인기 있는 쉘 중 하나로 개발자 및 시스템 관리자를 포함한 다양한 사용자들에게 많은 인기를 끌고 있습니다. 

먼저 zsh를 설치해봅시다.

$ sudo apt update
$ sudo apt install zsh

설치가 다 되었으면 사용할 수 있는 로그인 쉘 중 zsh가 있는지 확인해보겠습니다.

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

다음 chsh 명령을 통해 기본 쉘을 zsh로 변경할 수 있습니다.

$ sudo chsh -s $(which zsh)

기본 쉘을 zsh로 변경하고 나서 터미널을 다시 실행하거나 zsh 명령을 입력하면 zsh 쉘을 사용할 수 있습니다.

$ echo $SHELL
/usr/bin/zsh

 

oh-my-zsh 설치

oh-my-zsh는 zsh 쉘의 다양한 설정과 커스터마이징을 도와주는 프레임워크 입니다.

다음 명령을 통해 oh-my-zsh Git에서 프레임워크를 다운로드 받아 실행시킵니다.

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

다운로드 받자마자 바로 oh-my-zsh 설치 스크립트가 실행되어 다음 [그림 1]과 같은 화면을 볼 수 있습니다.

[그림 1] oh-my-zsh 설치 및 실행 화면

zsh oh-my-zsh가 정상적으로 설치되긴 했지만, 명령 줄에 보이는 정보도 별로 없고 기본 테마가 보기 좋지가 않습니다.

한번 바꿔봅시다!

 

oh-my-zsh 테마 변경

zsh 테마 종류나 자세한 내용은 해당 Git에서 확인할 수 있습니다.

필자는 기존의 robbyrussell 테마를 명시한 11라인을 주석처리 하고, agnoster라는 테마를 사용하도록 설정하였습니다.

$ vim ~/.zshrc
...
#ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"

$ source ~/.zshrc

[그림 2] .zshrc에서 테마 변경

필자가 agnoster 테마를 사용하는 이유는 AWS CLI에서 AWS_PROFILE 환경 변수에 어떤 값이 세팅되어 있는지 편하게 확인할 수 있다는 장점이 있어 사용하고 있습니다. 

[그림 3] agnoster 테마를 통해 AWS_PROFILE 값 확인 화면

AWS CLI에서 Multi Profile을 사용해야 하는 경우에 어떤 프로필로 설정 되어있는지 한 눈에 확인할 수 있습니다.

 

zsh-syntax-highlighting과 zsh-autosuggestions 플러그인 설치

zsh-syntax-highlighting 플러그인은 말 그대로 구문을 강조해주는 플러그인 입니다. 내가 사용할 수 있는 명령어인지 아닌지를 강조를 통해서 보여주는 것입니다. 터미널에서 사용할 수 있는 명령어는 초록색으로, 사용할 수 없는 명령어는 빨간색으로 나타내 줍니다.

[그림 4] zsh-syntax-highlighting 플러그인 효과

zsh-autosuggestions 플러그인은 이전에 사용한 명령어들을 기억하고, 현재 입력 중인 명령어에 대해 자동 완성 제안을 해줍니다. 다음의 [그림 5]와 같이 사진에서 git을 입력하면 이전에 사용했던 명령이 희미하게 보이고, 현 상태에서 →키를 입력하면 제안된 명령어가 자동 입력됩니다.

[그림 5] zsh-auto-suggestions 플러그인 효과

그럼 설치하는 방법을 알아보겠습니다.

$ 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

$ vim .zshrc
...
plugins=(
        git
        zsh-syntax-highlighting
        zsh-autosuggestions
)
...

$ source .zshrc

.zshrc 파일을 편집하면 약 74라인쯤에 plugins 옵션이 보일 것입니다. 초기에는 git만 있을텐데, zsh-syntax-highlighting과 zsh-autosuggestions을 추가해주겠습니다.

[그림 6] .zshrc 파일에 플러그인 등록

그렇게 수정된 .zshrc 설정 파일을 다시 source 해보면 플러그인이 정상적으로 적용되어 있을 것입니다.

 

zsh 단축키 등록

zsh에서 간단한 동작도 원하는 대로 잘 되지 않는 부분이 많습니다. 필자의 경우 home키나 end키 등의 단축키를 자주 사용하는데, 기본적으로 해당 키가 작동하지 않아 단축키를 등록해주어야 했습니다.

방법은 다음과 같습니다.

$ vim .zshrc
...
case $TERM in (xterm*)
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
esac

$ source .zshrc

.zshrc 파일의 마지막 줄에 위와 같이 입력하여 .zshrc 파일을 적용시켜주면 되겠습니다. 위 두 가지 bindkey를 등록하여 적용하면 home 키와 end 키가 원하는 대로 동작하게 될 것입니다!😎

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.