상세 컨텐츠

본문 제목

[맥북] 맥북 터미널을 이쁘게 - ZSH 초간단 설치와 커스터마이징 (zhs + iTerm2)

IT 이야기/IT 상식

by 리치윈드 - windFlex 2020. 6. 1. 19:07

본문

반응형

[관련글]

2022.10.20 - [IT 이야기/IT 상식] - ZSH 유용한 플러그인 2종 - 자동완성/하이라이트


 

이번 포스팅은 맥북의 터미널을 아름답고 효율적으로 꾸미기 위한 것이다. Catalina 부터는 ZSH이 기본 쉘로 변경이 되었다. 그런데, 이 기본쉘을 시작하면 다음과 같이 못생긴 쉘을 마주하게 된다.

기본 쉘은 너무 답답하기만 하다. 쉘을 좀 더 효율적으로 변경할 필요가 있다.

 

Mac OS 카탈리나 부터 기본 쉘이된 ZSH을 설치/변경하고, iTerm2와 oh-my Zsh을 설치한다. 그리고 테마와 색상을 변경해 본다. 이를 위해서 다음과 같은 과정을 거칠것 이다. 

 

[기본 순서]

  • 1) ZSH 설치
  • 2) 기본쉘 변경 : chsh -s /bin/zsh
  • 3) iterm2 설치
  • 4) oh my zsh 설치
  • 5) zsh 테마 변경 : ~/.zshrc 의 변경 1줄
  • 6) zsh의 preferences/색상 변경

 

 

ZSH 설치와 커스터마이징, 변경하고자 하는 쉘의 아웃풋은 오른쪽과 같다. 

 

 

1. 맥북 ZSH 설치 및 기본쉘 변경 (Big Sur 이전 버전)

 

최근 Sillicon (M1 Chip) 등은 MacOS는 기본쉘이 zsh로 안정화 되었으므로 이번 섹션은 건너 뛰면 된다. 

MacBook을 카탈리나로 업그레이드 하고 나서, Bash 터미널을 열면, 자꾸 초기 메세지에 Zsh로 업그레이드 하라는 가이드가 나온다. MacOS의 기본쉡이 ZSH이라고 하면서, 쉘변경을 권고한다. 

카탈리나 업그레이드 후 bash terminal

자꾸 저 메세지를 보게 되면, 나도 모르게 홀린듯이 업그레이드를 해버리게 된다. (나만 그랬나??)

귀찮은 일의 시작이 될지도 모른다. ㅜ_ㅜ

 

$ chsh -s /bin/zsh

혹시, 카탈리나 업그레이드 할 때, ZSH 이 기본적으로 설치 되었겠지만, 만약 ZSH이 설치 되어 있지 않다면 Homebrew로 설치해 주자.

$ brew install zsh

 

 

iTerm2 설치 

 

iTerm2를 설치해 준다. (https://www.iterm2.com/index.html)

iTerm2는 왜 설치하는 것일까?

MacOS에 기본 탑재되어 있는 terminal.app 는 제한요소가 많아서, 기능 많은 터미널 프로그램이 필요한데, 이것이 iTerm2 이다. 

ZSH의 기능을 충분히 활용하려면 기본 터미널 보다는 기능이 많은 iTerm2가 필요한 것이다. 

터미널 프로그램과 Shell 자체는 다른 것입니다. 

iTerm2 설치

공식홈에서 iTerm2 파일을 다운로드 받고, 압축해제 후 실행하면 다음과 같이 Application Folder로 이동 해준다. iTerm을 실행시켜 주면 아직 무엇이 나아진 것인지 알 수 없다. ^^. 다음 섹션에서 소개하는 Oh-my-zsh을 설치해 줌으로써 다양하게 테마를 변경할 수 있다. 

iTerm2 설치/실행 (좌), iTerm2의 초기 터미널 모습 (우)

 

oh-My-ZSH 설치하기

 

다음으로, oh-my-ZSH 설치해 줍니다. 

Oh My ZSH은 여러 기능을 가진 zsh를 프레임워크 형태로 다룰 수 있게 도와주는 툴입니다. 커뮤니티 활동이 활발하여 다수의 플러그인들이 제공됩니다. 모든 기능을 손수 다루기 힘드며, 바쁜데 굳이 그렇게 할 필요없으니 우리는 Oh My ZSH을 이용해서 이미 유형화해 놓은 프레임워크를 사용합시다. 

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

또는,

$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
드래그는 아래를 참조해 주세요.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

 

정상적으로 설치가 완료되면, 다음과 같은 화면을 볼 수 있다. 

Oh My Zsh 설치 완료 모습

이미 설치되어 있는 경우,

You already have Oh My Zsh installed.

 

만약 아래와 같이 Git clone 에러가 발생하는 경우, git을 설치/재설치 해주자. 

xcode-select: Failed to locate 'git', requesting installation of command line developer tools.
Error: git clone of oh-my-zsh repo failed
`brew install git` 을 통해서 git을 설치 할 수 있다. 

 

Oh My Zsh의 좀 더 상세한 내용은 OpenSource (GitHub)에서 확인 할 수 있다. 

https://github.com/ohmyzsh/ohmyzsh

 

ZSH 테마 변경

 

설치는 모두 끝났다. 이제 설정을 변경하여 보도록 하자. 

 

그 중에서 가장 중요한 테마를 변경한다. 테마의 변경은 ~/.zshrc 에서 설정할 수 있다.  vi, nano, texteditor 등을 이용하여 ~/.zshrc를 열어보자.

$ open -e ~/.zshrc

~/.zshrc 의 윗부분을 보면 대부분 주석이다. 이중에서 실제 설정값은 몇줄 되지 않는다. 윗부분을 일부 발췌해 보면 아래와 같다. 

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
export ZSH="/Users/audit01/.oh-my-zsh"

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
# ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"

# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
...

 

설정을 잘 살펴보면, 

    1) ZSH의 환경변수 설정 : ZSH path

    2) ZSH_THEME 지정

또한 주석의 내용에도 알수 있지만, Random으로 테마를 설정할 경우, 라운드 되는 테마를 지정할 수 있게 되어 있다. 여러가지 테마가 있으며 대표적인 테마로 robbyrussell과 agnoster 테마가 있다.  필자의 경우 현재 "agnoster" 테마를 설정한 것을 확인 할 수 있다. 

ZSH_THEME="agnoster"

 

변경사항을 저장하고 닫아 주자.

[ 참고 ]
변경 사항을 저장하고 닫아도 바로 변경 내용이 적용되지 않는다. 변경을 아직 적용하지 않았기 때문이다. 변경 내용 적용을 위해서는, 아래와 같이 source 명령어를 실행하거나, 또는 터미널창을 닫고 새로운 창을 띄우면 적용된다. 
$ source ~/.zshrc

 

[추가] 개인적으로는, 아래와 같이 iTerm을 기본 터미널로 설정해 두는것이 편하다.

iTerm2를 기본 터미널로 설정

 

색상 변경 및 커스터 마이징

 

ZSH에 대한 기본적인 설정은 완료되었다. 이제 본인의 취향에 맞게 폰트와 색상을 변경하면 된다. 

iTerm / 터미널이 열려 있는 상태에서, Command + , 를 눌러서 Preference 창으로 진입한다. 

iTerm의 preference 메뉴. 커스터마이징이 가능하다. 최근에는 UI가 다소 변경이 되었다. Old Version (좌), Build 3.4.x 버전 (우)

 

Preferences > Profiles 메뉴를 선택하자.  우리는 Colors 탭과, Text 탭을 기본적으로 설정할 것이다. 

우선 Colors 탭을 확인해 보자. Default Profile에 현재 서정되어 있는 컬러 세팅을 볼 수 있다. 대부분은 사용자는 색상에 대한 감각이 없으므로, 우측 하단에 있는 Color Presets 중에서 선택하기를 권고한다. Color Presets를 선택하면 Drop& Down Box가 나타나는데, 이중에서 하나를 선택하고, 맘에 안드는 몇가지 색상만 변경하여 사용하도록 하자. 

 

Preferences > Colors 탭 > color presets. 개인적으로는 기본 프리셋에서 선호되는 프리셋이 없어서 다른 테마를 사용한다. 

 

또 다른 방법중 하나로, "Visit Online Gallery" 버튼을 누르면, 여러 사용자가 컬러세팅해 놓은 파일을 참조할 수 있다. 

혹은 다음 URL로 이동한다. : https://iterm2colorschemes.com/

다양한 컬러셋이 있지만, 이중에 많은 유저들이 사용하는 하나의 샘플을 살펴 보면 아래와 같다. 

MaterialOcean ColorSet

해당 컬러셋을 다운로드 받아서, Import 하면, 새로운 Section에 materialOcean 항목이 추가 되어 있는 것을 확인할 수 있다. 다양한 컬러셋이 존재하니, 직접 사용하길 바란다. 

컬러셋을 다운로드 받을 때는 확장자가 .itermcolors 이어야만 한다. ex) 파일명 : MaterialOcean.itermcolors
해당 컬러셋을 다운로든 받을 때는, 1) 컬러셋을 클릭하여 이동 후, 2) 해당 URL주소를 복사, 3)wget 을 통해서 다운로드 받으면 편리하다.  ex) wget https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/Aurora.itermcolors

 

iTerm2 테마 설정 화면


아래는 필자가 주로 사용하는 테마 파일이다.

itermcolors.zip
0.02MB

 

 

 

폰트 변경

여기까지만 해도 대부분 원하는 목적을 이룰 수 있다. 그러나, 테마에 따라서는 Git Branch 모양 등의 특별한 아이콘을 사용하는데, 이 부분에서 폰트의 영향을 받는다. 다음은 폰트가 깨지거나 표현하지 못하는 경우이다. 대표적인 사례로 Github Plugin으로 동작할 때, Master Branch 를 표현하는 아이콘 같은 것들이 그 예이다.  이런 경우 폰트를 변경해 주어야 폰트가 깨지지 않는다. 

커맨드 쉘 프롬프트 중 깨진 폰트가 존재한다.

 

 

특별한 기호가 포함되어 있는 경우, 폰트의 설치가 필요하다.

 

Preferences > Text Tab > Font 를 변경해 준다.

다양한 폰트가 있지만, 많은 사람들이 사용하고 있는 폰트로써 Naver D2 폰트를 소개한다.

https://github.com/naver/d2codingfont

Naver D2 Coding 폰트

폰트를 설치한 후, Preferences > Text Tab > Font 드랍다운 버튼을 눌러서, D2 Coding 폰트를 선택하여 주자. 

 

 

 

기타 외형 변경 

나머지는 소소하게 개인의 취향에 맞게 변경하면 됩니다. 

개인적으로는 Terminal의 창을 크게하고 Font는 키워서 보는 것을 선호합니다. (눈이 침침해서..)

 

기본 윈도우 사이즈 변경 : Profiles > Window > Setting for New Windows (좌), 기본 폰트 크기 변경 : Profiles > Text > Font

 

 [중요 업데이트] 환경 변수 설정

 

[ ZSH 이 기본 Shell이 아닌 경우에만 참조하세요]

 

다음 글에도 자세히 써 놓았지만, 중요한 사항으로 먼저 이야기 할 것으로 수정/업데이트 합니다. 

어떻게 보면 너무나도 당연한 이야기 이지만, 기본 Bash에서 Zsh로 기본 쉘을 변경하면 환경변수가 모두 사라집니다. 좀 더 정확하게 말하면, bash의 환경변수를 사용하지 않고, zsh의 환경변수(초기화 되어 있음)을 사용하게 됩니다. 

"어~ 나는 터미널 이나 쉘을 않쓰니깐 괜찮아~"

전혀~~~괜찮지 않습니다. GUI모드로 동작하는 것들도 내적으로는 기본쉘을 바탕으로 구동되는 것이 많습니다. 일단 잘동작하는 것처럼 보여도 나중에가서 안되는 것들이 하나 둘씩 발견되는데.. 그 때서야 원인을 찾으려고 하면 뒤죽박죽 되어서 못찾습니다. 대표적인 예가, 안드로이드 개발환경, 파이썬 개발환경, 자바스크립트 개발환경 등 입니다. 아나콘다의 경우는 아나콘다 경로를 찾지 못해서 아예 실행도 되지 않습니다. 

 

말이 길었는데, 결론부터 말씀 드리면, bash의 환경변수를 복사/붙여넣기 해 줍니다. 어디로? zsh의 런컴 (.zshrc)의 가장 마지막 라인부터 복사해 줍니다. 예를 들면 다음과 같습니다. 

[ .bashrc 파일 ] 혹은 .bash_profile

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

# added by Anaconda3 5.1.0 installer
export PATH="/Users/audit01/anaconda3/bin:$PATH"

export ANDROID_HOME=/Users/audit01/Library/Android/sdk

 

[ .zshrc ]

위 예제의 경우, $PATH와 $ANDROID_HOME을 환경변수로 추가 반영해 주어야 합니다. 
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

export ZSH="/Users/audit01/.oh-my-zsh"
ZSH_THEME="agnoster"

... 중략 ...

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

# added by Anaconda3 5.1.0 installer
export PATH="/Users/audit01/anaconda3/bin:$PATH"

# android setting
export ANDROID_HOME=/Users/audit01/Library/Android/sdk
흥미로운 사실은, .zshrc 파일 상단의 주석에, bash에서 부터 $PATH 를 가져올 수 도 있음을 넌지시 이야기 하고 있다는 것입니다. ^^;;;

 

 

다음글 :

2020/05/22 - [개발 이야기/React-Native] - [React-Native] iOS 카탈리나 및 ZSH 업그레이드 후 실행/빌드 에러

ZSH 변경하고 나면, React 등 개발환경이 망가지게 됩니다.  이것을 복구해줄 필요가 있습니다. 

[관련글]

2022.10.20 - [IT 이야기/IT 상식] - ZSH 유용한 플러그인 2종 - 자동완성/하이라이트

 

관련글

 

[React-Native] iOS 카탈리나 및 ZSH 업그레이드 후 실행/빌드 에러

맥북 프로 iOS 업그레이드 (Catalina and ZSH) 하면서 발생한일 이전 포스팅에서 언급했지만, 본의 아니게 카탈리나로 업그레이드 하고, 덩달아서 기본 쉘을 Bash에서 ZSH로 변경하게 되었다. 이로 인하�

richwind.co.kr

 

MacOS 폴더간 이동 : Command + Shift + G

MacBook Pro를 사용하면서 하루에도 몇번씩 겪는 일중 하나... 그것은 바로 파일저장을 눌렀을 때, 발생하는 답답함. 제한적인 파일열기/저장 창 (File Dialog Window) 아니, 이거 말고, 최소한 Finder 처럼��

richwind.co.kr

 

맥북 터미널 단축키

맥북으로 터미널 작업을 하다 보면 Windows 또는 Linux에서 사용하던 습관이 본의 아니게 발생하기 마련이다. 사실, 나는 자주 이런일이 발생한다. 난 맥북에서는 Ctrl 과 Cmd 키가 분리되어 있어서 자

richwind.co.kr

반응형

관련글 더보기

댓글 영역