Forum/개발 환경

[개발 환경] iTerm2로 터미널 커스텀하기

ooeunz 2021. 2. 7. 15:53
반응형

이번 포스팅에선 Mac에서 사용하는 터미널을 꾸며보도록 하겠습니다. 사실 오래전에 작성한 글이지만, 꾸준하게 조회수가 있는 포스팅이라 좀 더 상세한 내용과 최근에 추가한 커스텀 항목을 추가해서 다시 업로드하였습니다. 😊

 

⚠️해당 포스팅은 다양한 기술 블로그의 iTerm2의 커스텀 글을 토대로 저의 입맛에 맞게 소스들을 선택하여 작성되었습니다. 포스팅 최하단에 참고한 블로그의 링크를 첨부하였으니 상세한 내용은 아래 링크를 확인해주시기 바랍니다.

 

아래 이미지가 해당 포스팅에서 최종적으로 만들게 될 터미널의 모습입니다.

 

🏖 iTerm2 Install

터미널을 꾸민다고 했지만, 정확히 말하면 terminal이라는 이름의 앱을 커스텀 하는게 아니라 터미널과 같은 기능을 하지만, 더 다양한 기능을 제공해주는 iterm2라는 애플리케이션을 사용할 것입니다. iterm2를 설치하는 방법은 여러가지가 있으니까 필요에 따라 맞는 방법을 사용하시면 되겠습니다.

 

1. iterm2 홈페이지에서 다운로드

첫번째로 iTrem2 공식 사이트에서 다운로드 받는 방법입니다. 아래 링크로 들어가셔서 Download 버튼을 눌러서 설치해주시면 되겠습니다.

 

iTerm2 - macOS Terminal Replacement

iTerm2 by George Nachman. Website by Matthew Freeman, George Nachman, and James A. Rosen. Website updated and optimized by HexBrain

iterm2.com

 

🏖 zsh install하기

zsh은 bash의 확장된 유닉스 셸입니다. (MacOS Catalina 버전부턴 default로 설치되어 있습니다.)

zsh를 설치하기 위해선 homebrew가 필요합니다. homebrew란 MacOS에선 리눅스의 apt-get이나 yum와 같은 package manager가 입니다. Homebrew를 이용하면 iTerm2 이외에도 다양한 애플리케이션을 명령어 하나로 설치하고 지우며 손쉽게 관리할 수 있습니다. 혹시 사용해보시지 않으셨다면 이 기회에 사용해보시는 것도 좋을 것 같습니다. 더 자세한 내용은 여기에서 확인합니다.

 

 

iTerm2를 키신 다음, 아래의 명령어를 입력해서 homebrew를 설치합니다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

그런 다음 아래의 명령어를 입력해서 zshoh-my-zsh를 설치하겠습니다. 아래의 명령어를 차례대로 iTerm2에 입력해주시면 되겠습니다.

# zsh install
brew install zsh

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

 

🏖 Color theme 적용하기 

iTerm2에서 사용한 color theme를 고르기 위해 아래의 url로 이동하도록 하겠습니다.

 

Iterm Themes - Color Schemes and Themes for Iterm2

iTerm Themes Intro This is a set of color themes for iTerm (aka iTerm2). Screenshots below and in the screenshots directory. Installation Instructions To install: Launch iTerm 2. Get the latest version at iterm2.com Type CMD+i Navigate to Colors tab Click

iterm2colorschemes.com

 

원하는 테마를 찾으면 아래와 같이 테마의 이름을 클릭하도록 합니다. 저는 그중 snazzy 테마를 사용하도록 하겠습니다. 

 

 

그럼 아래의 이미지처럼 코드로 가득한 화면이 나올텐데요. 여기서 URL을 복사하도록 합니다. 그리고 해당 color file을 download 받을 디렉토리로 이동한 후 아래와 같이 해당 file을 download 받도록 합니다.

 

# curl이 설치되어 있지 않은 경우
brew install curl

# util이라는 이름의 directory를 생성하고 이동
mkdir util && cd util

# snazzy color theme를 download
# 만약 다른 color 테마를 다운로드 할 경우 curl -LO 이후에 해당 URL을 넣으면 됨
curl -LO https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/Snazzy.itermcolors

 

이제 iterm preferences를 열어서 profiles -> colors를 들어갑니다. (또는 단축키  + ,)

그리고 우측 하단에 color presets를 누른 후 import를 선택하여서 방금 전에 다운받은 snazzy 테마를 설정해줍니다.

 

🏖 Theme 변경하기

이번엔 iTerm2의 터미널 테마를 변경하도록 하겠습니다. 여기서 사용할 테마는 agonster라는 테마로 현재 checkout중인 branch를 쉽게 알 수 있는 테마입니다.

 

agonster

 

iTerm2에 vi ~/.zshrc를 입력합니다. 꼭 vi가 아니더라도 자신이 사용하는 에디터를 사용해서 해당 파일을 수정하셔도 상관없습니다.

해당 파일에 접근해보면 아래의 이미지와 같이 ZSH_THEME라는 항목을 찾으실 수 있는데, 이 부분으로 이동하신 다음 i를 눌러서 수정모드로 변경한 다음 agnoster로 변경해주도록 합니다. 이후 esc를 누른 후에 :wq! 라는 명령어를 입력해서 저장후 종료하도록 합니다.

 

 

🏖 Font 변경하기

이후로 폰트를 바꿔주도록 하겠습니다. 저는 Naver D2 font를 선호하기 때문에 아래의 링크에서 다운로드하도록 하겠습니다.

 

naver/d2codingfont

D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.

github.com

 

그리고 iTerm preference에서 이번엔 Text 탭으로 들어가서 font를 방금 다운로드한 D2 font로 변경해줍니다.

 

🏖 터미널에 사용자 이름 삭제하기

터미널에 사용자 이름을 사용하는 나타내는 영역이 매우 길기 때문에 이 부분을 아래와 같이 사용자이름을 제외한 다른 영역을 지워주도록 하겠습니다.

vi ~/.zshrc를 한 이후에 아래 코드를 추가해줍니다.

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

 

🏖 New Line 적용하기

터미널의 명령어가 길어지다 보면 화면을 벗어나는 경우가 있다. 이러한 경우 터미널 입력 어를 new line으로 입력함으로 불편을 해소할 수 있습니다.

agnoster 테마를 설치한 기준으로 쉘에 아래의 명령어를 입력해줍니다.

vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

 

그 후 아래를 내려가다가 build_prompt()를 찾습니다. 그리고 prompt_newline을 prompt_hg와 promt_end사이에 넣어줍니다.

build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline //이부분을 추가 꼭 순서 지켜서
  prompt_end
}

 

그리고 코드의 제일 하단에 내려가서 prompt_newline() 에 대한 기능을 정의하는 코드를 입력해줍니다.

prompt_newline() {
  if [[ -n $CURRENT_BG ]]; then
    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%{%k%F{blue}%}$SEGMENT_SEPARATOR"
  else
    echo -n "%{%k%}"
  fi

  echo -n "%{%f%}"
  CURRENT_BG=''
}

 

🏖 Syntax Highlight 적용 (option)

syntax highlight는 사용 가능한 명령어들에 highlight를 넣어주는 기능입니다.

 

iTerm2에 다음과 같은 명령어를 입력합니다.

# brew를 통해 설치해줍니다.
brew install zsh-syntax-highlighting

# ~/.zshrc에 들어가서 아래의 코드를 입력해줍니다.
vi ~/.zshrc

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
 

 

🏖 쉘에 이모티콘 적용하기

 

위의 이미지를 보면 쉘에 사용자 이름 옆에 이모티콘이 나타나는 것을 볼 수 있다. 해당 기능을 사용하는 방법을 알아보겠습니다.

 

역시나 vi ~/.zshrc 명령어로 에디터를 열어줍니다. 그리고 가장 하단에 아래의 코드를 삽입한 후에 {하고싶은이름} 부분을 원하는 텍스트로 바꾸도록 합니다. 저의 경우엔 noah로 변경하였습니다.

prompt_context() { 
  # Custom (Random emoji) 
  emojis=("⚡️" "🔥" "🇰" "👑" "😎" "🐸" "🐵" "🦄" "🌈" "🍻" "🚀" "💡" "🎉" "🔑" "🚦" "🌙")
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1)) 
  prompt_segment black default "{하고싶은이름} ${emojis[$RAND_EMOJI_N]} " 
}

이렇게 하면 터미널을 킬때마다 랜덤으로 위의 작성된 이모티콘이 적용됩니다. 또는 자기가 원하는 이모지만 나오도록 하려면 추가적으로  위의 코드에서 ${emojis[$RAND_EMOJI_N]} 부분을 자신이 원하는 이모지로 채워주시면 됩니다.

 

🏖 상태바 추가

iTerm2 하단에 아래와 같이 다양한 정보들을 출력시켜줄 수 있는 기능입니다.

  • 상태바 활성: Preferences > Profiles > Session > Status bar enabled
  • 상태바 위치 설정: Preferences > Appearance > Status bar location

 

🏖 추가 디자인

iTerm2에서  + 를 툴러서 Preference에 들어가도록 합니다. 그런 다음 아래의 추가적인 디자인을 적용해보겠습니다. 버전에 따라 옵션의 위치가 변경되고나 이름이 변경될 수 있습니다. 현재 포스팅은 3.4.4 버전을 기준으로 설명됩니다.

 

1. Title bar style

  • Appearance > Theme: Minial

 

2. Title bar 밑에 1px 라인제거

  • Appearance > Windows > Show line under title bar when the tab bar is not visible: 체크 안함

 

3. 폰트 크기 및 줄간격 변경

  • Profiles > Text: 폰트사이즈 14로 변경
  • Profiles > Text: n/n 줄간격 110으로 변경

 

4. Margin 수정

  • Appearance > Panes > Side margins: 12
  • Appearance > Panes > Top & bottom margins: 10

 

5. 탭 선 제거

  • Advanced > In minimal theme, how prominent should the tab outline be?: 0

 

6. Unicode 설정

  • Profiles > Text > Unicode normalization form: NFC

🧑🏻‍💻 참고 출처

반응형