zsh로 터미널 사용하기

2018/03/19
terminal

처음 개발 공부를 하면서 어려운 점은 바로 터미널을 사용하는 것이라고 생각한다.

고등학생 때 검둥이 맥북을 조금이라도 더 효율적으로 사용해보려고 쉘 공부를 하려고 했었다. 하지만 게임하느라 매일 붓캠만 켜서 제대로 해보지도 않았고 결국 실제로 쉘을 제대로 사용해보려고 한 건 대학교 2학년 이후 였던 것 같다. 어거지로 여러 기능을 써보다 말다를 반복하던 중 별 생각없이 쉘 꾸미기를 알아보던 중 zsh라는 다른 쉘의 존재를 알았다.

일단 처음 사용하기 시작한건 oh-my-zsh의 테마 기능으로 쉘을 좀 더 이쁘게 쓸 수 있는 걸 알고 zsh사용을 시작했다.

사실 테마라고 해도 그냥 PS1 값을 미리 정해놓은 템플릿 같은 느낌이다.
물론 테마에 따라 부가기능이 있는 경우도 있다.

플러그인을 통해 좀 더 다양한 기능을 쓸 수 있는건 그 이후 였다. 사실 oh-my-zsh만으로는 플러그인을 설치하고 사용하기가 여간 귀찮은게 아니다. 플러그인 소스가 있는 github 소스를 oh-my-zsh에 지정된 폴더에 클론해서 .zshrc에 등록해야 하는데 여간 귀찮은 일이 아니었다. 그러던 중 antigen라는 zsh용 플러그인 매니저의 존재를 알고 더 제대로 사용해보기 시작했다. 그리고 플러그인 내부에 선언된 alias의 존재를 알고 정말 신세계를 경험할 수 있었다.

이 글을 통해 내가 어떻게 zsh를 사용하고 있는지 공유하려고 한다.

zsh 설치하기

설치는 상당히 간단하다. 기본적인 패키지 매니저라면 패키지를 제공하기 때문에 그냥 패키지 매니저를 통해 설치하면된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 본인 os에 맞게 사용

# ubuntu
sudo apt-get install zsh git
# ubuntu
sudo apt install zsh git

# fedora
sudo dnf install zsh git
# fedora
sudo yum install zsh git

# osx with homebrew
brew insatll zsh git

# make zsh default shell
chsh -s $(which zsh)

git을 추가로 설치 했는데 이는 antigen을 사용하기 위해서다.
OSX는 brew를 설치하지 않았다면 brew 부터 설치하자.

antigen

antigen은 zsh의 플러그인 매니저다.

oh-my-zsh는 추가 플러그인 혹은 테마를 설치하기 위해서는 지정된 경로에 직접 클론을 받아야하는 귀찮은 작업이 필요한데, antigen은 이를 run configuration에 한 줄 적는 걸로 끝내버린다.

설치는 아래와 같이 진행한다.

1
2
3
4
cd ~
curl -L git.io/antigen > antigen.zsh

# 출처 : https://github.com/zsh-users/antigen#installation

이렇게 하면 계정 홈 폴더에 antigen.zsh라는 쉘파일이 다운받아진다.

그리고 아래와 같은 내용을 .zshrc에 적용하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
source /your/home/path/antigen.zsh

# oh-my-zsh 활성화
antigen use oh-my-zsh

# oh-my-zsh의 기본 플러그인 활성화
antigen bundle git
antigen bundle heroku
antigen bundle pip
antigen bundle lein
antigen bundle command-not-found

# zsh의 syntax highlight 플러그인 사용
antigen bundle zsh-users/zsh-syntax-highlighting

# theme 설정
antigen theme robbyrussell

# 위 설정 적용
antigen apply

# 출처 : https://github.com/zsh-users/antigen#usage

위 설정 파일의 주석만 보더라도 기본적인 내용은 파악이 된다.

중요한 점은 zsh-syntax-highlighting을 설정하는 부분인데, 원래 antigen을 사용하지 않았다면 저 플러그인을 oh-my-zsh 플러그인 폴더에 직접 다운받아 적용해야 한다. 하지만 antigen을 통해 한번에 처리하는 걸 알 수 있다.

저장 후 source ~/.zshrc 혹은 터미털을 다시 열면 설정이 적용되는 걸 알 수 있다.

내 zshrc

내가 설정한 zshrc를 마지막으로 이 글을 마무리한다.

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
source ~/antigen.zsh
source `which activate.sh`

antigen use oh-my-zsh
# antigen bundle robbyrussell/oh-my-zsh plugins/ruby

antigen bundle git
antigen bundle pip
antigen bundle fedora # antigen bundle ubuntu
antigen bundle dnf # antigen bundle brew
antigen bundle tmux
antigen bundle tmuxinator
antigen bundle command-not-found
antigen bundle common-aliases
antigen bundle gradle
antigen bundle mvn
antigen bundle python
antigen bundle virtualenv
antigen bundle autoenv


antigen bundle djui/alias-tips # 현재 사용한 커맨드의 축약된 알리아스를 알려줌
antigen bundle zsh-users/zsh-syntax-highlighting

antigen theme dannynimmo/punctual-zsh-theme punctual

antigen apply

기본 oh-my-zsh 플러그인은 여기에서 찾아보자