Post

Ubuntu에 zsh쉘 설치하기

쉘이란 명령어를 입력받아 실행시켜주는 명령어 해석기 입니다. 터미널에 탑재되어 실행되며 bash, bsh, csh 등 다양한 종류가 있습니다. 그 중에서 최근에는 여러가지 편의 기능을 위한 플러그인의 설치가 가능하고 테마도 적용할 수 있는 zsh 쉘이 널리 사용되고 있습니다.

Ubuntu에 zsh쉘 설치하기

Ubuntu에 zsh쉘 설치하기

#01. 프로그램 설치

zsh 쉘과 curl, git 클라이언트를 설치한다.

프로그램 설치는 root 권한으로만 가능하기 때문에 sudo 명령을 사용하여 root의 권한을 임대한 상태로 설치해야 한다.

1
sudo apt-get -y install zsh curl git

만약 CentOS나 RedHat 계열이라면 agt-get 대신 yum명령을 사용한다.

1
sudo yum -y install zsh curl git

맥OS의 경우 homebrew를 사용한다. homebrewbrew ~명령으로 실행한다.

맥에서는 일단 sudo없이 실행하고 Permission 에러(권한에러)가 발생할 경우에만 sudo옵션을 사용하자.

1
brew -y install zsh curl git

#02. 현재 사용자의 쉘을 zsh로 변경

1. 쉘 변경하기

아래의 명령을 사용하여 쉘을 변경한 후 재로그인해야 적용된다.

1
chsh -s $(which zsh)

chsh는 change shell의 약자

2. 쉘 적용하기

재로그인 후 아래와 같이 쉘 초기 설정에 대한 선택항목이 표시된다. 이후 과정에서 oh-my-zsh를 설치하여 설정을 진행할 것이므로 여기서는 q를 입력하여 아무런 설정도 진행하지 않음을 선택한다.

plugin1

3. 재로그인 후 쉘 확인하기

1
2
$ echo $SHELL
/usr/bin/zsh

#03. oh-my-zsh 설치하기

oh-my-zsh는 zsh쉘의 설정을 좀 더 손쉽게 할 수 있도록 하는 보조 도구이다.

1
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

oh-my-zsh 설치 완료시 화면

설치 완료 후 재로그인해야 적용된다.

#04. 플러그인 설치

1. 문법 강조 플러그인 설치

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

plugin1

2. 명령어 자동 완성 플러그인 설치

1
git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

plugin2

#05. 초기화 파일 수정하기

설치 완료 후 vi에디터로 zsh 설정파일을 연다.

1
vi ~/.zshrc

1. theme 변경

아래와 같이 표시되는 곳을 찾아 사용하고자 하는 테마로 변경한다.

theme

변경후

1
ZSH_THEME="af-magic"

그 밖에 다양한 테마를 확인하기 위해서는 아래의 URL에 방문해 보도록 하자.

https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

2. 설정 파일의 플러그인 설정 추가

아래와 같이 표시되는 곳을 찾아 설치한 플러그인들의 이름을 추가한다.

plugin

변경 후

1
2
3
4
5
plugins=(
	git
	zsh-syntax-highlighting   ## 추가
	zsh-autosuggestions       ## 추가
)

3. 저장하기

ESC키를 눌러 명령어 모드로 전환한 후 wq를 입력하고 엔터를 누른다

save

#06. 설정내용 반영하기

설정 완료 후 다음의 명령어로 설정내용을 반영한다.

1
source ~/.zshrc

#07. Powerlevel10k 테마 설치 (고급)

1. Powerlevel10k 설치

1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

2. 테마 적용

1
2
# ~/.zshrc 파일에서 테마 변경
ZSH_THEME="powerlevel10k/powerlevel10k"

3. 폰트 설치 (선택사항)

폰트파일 내려받기

1
2
# Nerd Fonts 설치 (터미널에서 아이콘 표시용)
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/FiraCode.zip

압축 해제

1
2
3
4
5
# 압축 해제 폴더 생성하기
mkdir -p ~/.local/share/fonts

# 폰트 압축 해제
unzip FiraCode.zip -d ~/.local/share/fonts/

unzip 명령을 사용할 수 없을 경우 아래 명령으로 zip 명령어 설치

1
sudo apt-get install -y zip

폰트 인식시키기

1
2
# 폰트 캐시(fontconfig cache)를 새로 생성/갱신
fc-cache -fv

위 명령을 사용할 수 없을 경우 아래 명령을 실행하여 명령어를 설치해야 함

1
sudo apt update && sudo apt install fontconfig

4. Powerlevel10k 설정

1
2
# 설정 마법사 실행
p10k configure

마법사 실행 후 제시되는 항목에 따라 설정을 진행한다.

5. Windows 명령 프롬프트로 원격 접속을 수행하는 경우

윈도우 명령프롬프트를 사용해서 원격 접속을 하는 경우 NerdFont를 내려받아 설치해야 한다.

https://www.nerdfonts.com/font-downloads

Font를 내려 받은 후 명령프롬프트의 환경 설정에서 폰트를 지정해 준다.

#8. .zshrc에 추가할 수 있는 유용한 함수

아래 내용 추가 후 각 함수를 명령어로 사용할 수 있다. $1은 명령어 뒤에 전달하는 파라미터임.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ~/.zshrc 파일에 추가

# 디렉토리 생성 후 이동
# 사용예 : mkcd hello
mkcd() {
    mkdir -p "$1" && cd "$1"
}

# 파일 백업복사
# 사용예 : backup 원본파일이름
backup() {
    cp "$1" "$1.backup.$(date +%Y%m%d_%H%M%S)"
}

# 프로세스 찾기
# 사용예 : psgrep 검색어
psgrep() {
    ps aux | grep "$1" | grep -v grep
}

# IP 주소 표시
# 사용예 : myip
myip() {
    curl -s http://checkip.amazonaws.com
}

# 시스템 정보 요약
# 사용예 : sysinfo
sysinfo() {
    echo "System Information:"
    echo "==================="
    echo "Hostname: $(hostname)"
    echo "OS: $(lsb_release -d | cut -f2)"
    echo "Kernel: $(uname -r)"
    echo "Uptime: $(uptime -p)"
    echo "Memory: $(free -h | awk '/^Mem:/ {print $3 "/" $2}')"
    echo "Disk: $(df -h / | awk '/\// {print $3 "/" $2 " (" $5 ")"}')"
    echo "Load: $(uptime | awk -F'load average:' '{print $2}')"
}
This post is licensed under CC BY 4.0 by the author.