Profile picture

[Linux] 우분투(Ubuntu)에 Oh My Zsh 설치하기

JaehyoJJAng2024년 02월 01일

▶ 사전 준비

설치에 필요한 wget, curl, git을 설치

sudo apt-get install -y wget curl git

▶ zsh 설치

sudo apt-get install -y zsh

▶ 기본 셸 변경

# 현재 셸 확인
$ echo $SHELL
/bin/bash

# bash -> zsh 변경
$ chsh -s $(which zsh)

reboot 또는 ssh 재접속 후 아래와 같은 화면이 보이면, 2번을 클릭하도록 하자.
image


▶ Oh My Zsh 설치

# curl로 설치하는 경우
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# wget로 설치하는 경우
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

▸ 플러그인 설치

1. 테마 설정
테마를 바꾸기 위해 ~/.zshrc 파일을 열어서 ZSH_THEME= 부분을 수정해야 한다.

{% include codeHeader.html name="~/.zshrc" %}

...
ZSH_THEME="agnoster"
...

2. 폰트 설정
agnoster 테마를 사용하기 위해서는 Powerline 폰트를 설치해야 한다. 아래의 명령어를 실행하여 폰트를 설치하도록 하자.

sudo apt-get install -y fonts-powerline

3. 플러그인 설치
많이 사용하는 플러그인들은 다음과 같다.

  • zsh-syntax-highlighting
  • zsh-autosuggestions
# zsh-syntax-highlighting
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

설치가 완료되었으면 이제 해당 플러그인들을 사용하겠다고 명시해주어야 한다.
/.zshrc 파일을 열어 plugins=(git)이 작성된 부분을 찾아 아래와 같이 변경해주자.
{% include codeHeader.html name="
/.zshrc" %}

plugins=(
git
sudo
zsh-syntax-highlighting
zsh-autosuggestions
)

4. 적용

source ~/.zshrc

▶︎ 설치 스크립트

'Zsh'와 'oh my zsh'를 설치하는 자동화 스크립트를 배쉬로 작성해보자.

{% include codeHeader.html name="install_zsh.sh" %}

#!/usr/bin/bash

if [[ ! -x "$(command -v zsh)" ]]; then
  echo "1. Installing zsh ..."
  sudo apt update -y
  sudo apt install -y zsh

  echo "2. change $SHELL -> $(which zsh)"
  chsh -s $(which zsh)
fi

if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
  echo "3. Installing oh my zsh ..."
  sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
fi

# 기본 테마 변경
echo "4. changing zsh theme ..."
sed -i 's/ZSH_THEME=\"robbyrussell\"/ZSH_THEME=\"agnoster\"/' ~/.zshrc

Loading script...