[terminal] mac iterm2 + zsh로 터미널 만들기
OSX 모하비 이후부터는 zsh가 bash를 대신해서 default 터미널로 사용됩니다.
설치순서
1. brew 먼저 설치 한다.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. iterm2 를 다운받아 설치
iTerm2 - macOS Terminal Replacement
iTerm2 by George Nachman. Website by Matthew Freeman, George Nachman, and James A. Rosen. Website updated and optimized by HexBrain
www.iterm2.com
3. zsh설치
# zsh 설치하기
brew install zsh
# zsh 설치경로 확인하기
which zsh
# 기본 shell 변경하기
chsh -s $(which zsh)
기본 쉘이 변경되지 않을 경우 이런 메세지가 뜬다.
chsh: /usr/local/bin/zsh: non-standard shell
아래와 같이 해보자
sudo vim /etc/shells
맨 아래에 `which zsh`했을때의 결과를 추가 후 저장
4. Oh-my-zsh 설치
# wget curl 설치
brew install curl
# oh-my-zsh 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
5. Iterm2 테마 고르기
1. 해당 주소 접속 후 원하는 테마 다운로드 : https://github.com/mbadolato/iTerm2-Color-Schemes
2. iTerm2 > Preferences > Profiles > Colors Tab 에서 우측 하단 Color Presets을 클릭
3. Import 를 클릭하고 다운로드 받은 테마 폴더에서 scheme에서 원하는 테마를 선택 후 재시작
6. git 상태까지 같이 볼 수있게 해주는 zsh agnoster 테마 설치
open ~/.zshrc
중간에 ZSH_THEME = "agnoster"로 변경 후 터미널 재시작하면 폰트가 깨져있다.
1. 네이버 D2 Coding폰트 받아준 후 설치. https://github.com/naver/d2codingfont
2. 터미널에서 command + , 누른 후 profiles -> text -> font 변경
7. 사용자 이름 깔끔하게 정리하기
open ~/.zshrc 입력후
하단에 아래 내용 넣고 재시작
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
8. Syntax Hightlight 적용하기 (옵션)
//brew를 통해 설치해줍니다.
brew install zsh-syntax-highlighting
//플러그인을 적용합니다.
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
9. VScode code . 명령어 넣기
open ~/.zshrc
맨 밑에 아래와 같이 path 설정을 해준다
export PATH="/Users/porori/Applications/Visual Studio Code.app/Contents/Resources/app/bin:$PATH"
/Users/porori 이 부분은 자신 컴의 계정을 변경해주어야한다.
그 후 vscode 에서 시프트+command +p 누르고 shell commnad install path 를 눌러주고, 재부팅 후 code . 으로 실행되는 지 확인!
* finder에서 다운로드 받은 vscode를 응용프로그램으로 이동시켜주면, 시스템 내부에서 path 잡아서 재부팅해도 VSCODE 에서
shell command install path 계속 해줄 필요없다.