-
[Mac 개발환경 설정] 3. zsh 설정하기Mac 2023. 2. 5. 23:34
Shell을 커스텀해보자.
개발자라면 좋든 싫든 쉘 환경을 자주 사용하게 될텐데, 그럭저럭 쓸만한 ubuntu와 달리 mac의 기본 shell은 그냥 사용하기에는 좀 많이 아쉬운 편이다.
보통 맥에서 많이 사용하는 터미널 앱은 기본 Terminal 앱 혹은 iTerm2이다.
둘 중 무엇을 써도 상관 없지만 ITerm2가 좀 더 편하고 이쁘다고 해서 iTerm2를 많이 쓰는 것 같다.
iTerm2 설치는 https://iterm2.com에서 할 수 있다.
맥에서의 기본 shell은 bash였지만 Mac OS Catalina부터는 zsh로 바뀌었다.
보통 '맥 zsh 설정'을 검색하면 나오는 내용은
Oh my Zsh
를 사용하는 내용이다. 그런데Oh my Zsh
는 terminal을 느리게 만들어서 사용을 안 하는 걸 추천한다.하지만 쉽고 빠르게 Shell 설정을 커스텀 할 수 있어서 그럭저럭 괜찮다.
글 마지막 부분에 OMZ를 설치하는 방법을 적어두도록 하겠다.
Using ZSH without OMZ
이 내용은 같은 제목의 글을 참고해서 작성하였다.
Oh my Zsh을 사용하는 이유는 쉬운 테마 적용과 커스텀, 그리고 간단한 플러그인 설치 때문이다.
그런데 zsh 플러그인을 설치하는 방법은 매우 간단한데, 그 플러그인을 zshrc에서 로드해주기만 하면 된다.
source custom_plugin_path
Zsh 폴더 설정
zsh 폴더를 설정해주자.
나는 DEV_SDK 하위 폴더로 zsh 폴더를 만들어서 설정하였는데, 어디든 상관없다.
DEV_SDK 관련해서는 [Mac 개발환경 설정] 1. DEV_ROOT 설정하기 글에 설명되어 있다.
mkdir $DEV_SDK/zsh
그리고 임시로 ZSH 환경변수를 설정해주자.
ZSH=$DEV_SDK/zsh
plugin과 theme를 저장할 폴더를 만들자.
mkdir $ZSH/plugins mkdir $ZSH/themes touch $ZSH/.zshrc
History 설정
먼저 History를 저장할 파일을 만들자.
만약 이전에 Oh My Zsh를 사용한 적이 있으면 기존 history를 복사해오고, 아니면 새로 만들어 주자
# 복사 mv ~/.zsh_history $DEV_SDK/zsh/.zsh_history # 새로 만들기 touch $ZSH/.zsh_history
그리고 아래 내용을 $ZSH/.zshrc 파일에 추가해주면 된다.
# >>> Zsh History >>> export HISTFILE=$ZSH/.zsh_history # How many commands zsh will load to memory. export HISTSIZE=50000 # How many commands history will save on file. export SAVEHIST=50000 # History won't save duplicates. setopt HIST_IGNORE_ALL_DUPS # History won't show duplicates on search. setopt HIST_FIND_NO_DUPS # <<< Zsh History <<<
테마 설정
우선 테마 폴더로 이동한다
cd $ZSH/themes
그리고 원하는 zsh 테마를 설치해주면 되는데, 보통 git clone 후 source로 설정할 수 있다.
나는 Spaceship을 사용해보려고 한다.
git clone https://github.com/spaceship-prompt/spaceship-prompt.git
이 때 mac을 처음으로 설정하는 거라면 명령어 라인 도구(Command Line Tools)를 설치해야 한다고 나올 수 있는데, 알림창에 따라서 설치해주면 된다.
git 로그인이 필요하다고 하면 해주면 되는데,
remote: Support for password authentication was removed on August 13, 2021
이라고 나오면 github에서 accesstoken을 발급받아 password 대신 사용하거나, ssh로 클론받으면 된다.
이후 다운받은 테마를 적용하고, 설정하는 내용을 $ZSH/.zshrc에 추가해주자.
아래 내용은 내가 적용한 예시이다.
# >>> Zsh Theme >>> source $ZSH/themes/spaceship-prompt/spaceship.zsh-theme SPACESHIP_PROMPT_ORDER=( user dir host git hg exec_time line_sep jobs exit_code char ) SPACESHIP_USER_SHOW=always SPACESHIP_PROMPT_ADD_NEWLINE=false SPACESHIP_CHAR_SYMBOL=">" SPACESHIP_CHAR_SUFFIX=" " # <<< Zsh Theme <<<
Plugin 설치
theme와 완전히 똑같은 방식이다.
나는 fast-syntax-hilighting, zsh-autosuggestions, zsh-completions을 사용한다.
cd $ZSH/plugins git clone https://github.com/zdharma-zmirror/fast-syntax-highlighting.git git clone https://github.com/zsh-users/zsh-autosuggestions.git git clone https://zsh-users/zsh-completions.git
.zshrc 파일에 각각 설정해준다.
# >>> Zsh Plugines >>> # fast-syntax-highlighting source $ZSH/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh # zsh-autosuggestions source $ZSH/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh # zsh-completions fpath=($ZSH/plugins/zsh-complete/src $fpath) # <<< Zsh Plugines <<<
$DEV_ROOT/.zshrc 파일에 설정
$DEV_ROOT/.zshrc 파일에 아래 내용을 추가해준다.
만약 DEV_ROOT를 설정하지 않을 계획이라면 ~/.zshrc 파일에 아래 내용을 추가해주면 된다.
# >>> ZSH >>> export ZSH=$DEV_SDK/zsh source $ZSH/.zshrc # <<< ZSH <<<
끝
이래저래 내용은 길었지만, 그렇게 어렵거나 하는 내용은 없을 것이다.
이 방법대로 zsh을 커스텀하였다면 아래의 Oh My Zsh 설치는 따라하지 말자.
Oh My Zsh 설치
시작하기 전에, 아래 과정을 따라 Oh My Zsh를 설치하면 ~/.zshrc 파일 내용이 완전히 변경되기 때문에 이전에 설정한 내용이 있으면 백업해두었다가 설치 후에 다시 추가해주자.
그리고 wget을 사용하는 과정이 있는데, 아마 wget이 설치되어 있지 않아 안 될 것이다. brew를 설치해 wget을 설치한 후 이 내용을 따라해보자. brew 설치는 다음 글에서 다룰 예정이다.
Oh My Zsh 설치
아래 명령어로 oh my zsh를 설치해준다.
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
테마 설치
나는 omz의 테마 중에는 powerlevel10k를 가장 선호한다.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
이후 화면을 친절하게 커스텀하는 UI가 나올 것이다.
그러면서 필요하다면 특수 기호를 보여주는 폰트가 설치될텐데, 설치가 되지 않아 깨져보인다면 직접 설치해주자.
https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
테마를 설치한 후에는 ~/.zshrc 파일을 열어 테마를 바꾸어준다.
기존에 설정되어 있는 값이 있을텐데 그걸 지우고 아래 내용으로 바꾼다.
ZSH_THEME="powerlevel10k/powerlevel10k"
플러그인 설치
syntax highlighting과 autosuggestion을 설치해준다.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
그 다음 ~/.zshrc 파일의 plugins 부분을 찾아서 아래 내용으로 바꾼다.
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
끝
이제 새 Shell을 열거나 source ~/.zshrc로 현재 쉘에 적용해주면 된다.
보면서 느꼈겠지만, Oh My Zsh를 사용하는 방법이나 내가 추천하는 방법이나 크게 다르지 않다.
그러니 속도 저하가 있는 Oh My Zsh를 설치하는 것보다는 직접 설정할 수 있는 첫번째 방법을 추천한다.
참고
https://dev.to/hbenvenutti/using-zsh-without-omz-4gch
'Mac' 카테고리의 다른 글
[Mac 개발환경 설정] 5. Ruby 설치 - rbenv (0) 2023.02.06 [Mac 개발환경 설정] 4. HomeBrew 설치 (2) 2023.02.06 [Mac 개발환경 설정] 2. Workspace 설정하기 (0) 2023.02.05 [Mac 개발환경 설정] 1. DEV_ROOT 설정하기 (0) 2023.02.05