윈도우 환경, Zsh로 터미널 꾸미기 (feat. Oh My Zsh, Powerlevel10k)
들어가며
그동안 저는는 터미널 사용 시 git bash를 주로 활용했습니다. 사용 초기에는 큰 불편함을 느끼지 못했으나, 개발 경력이 쌓이며 사용 빈도가 증가함에 따라 자동완성, 테마 기능 부재, 원인을 알 수 없는 시스템 메시지 표시 중복과 같은 문제들이 점차 불편하게 다가왔습니다.
이러한 불편함을 해결하고자 zsh와 oh my zsh 조합을 도입하게 되었고, 이를 통해 만족스러운 경험을 얻었습니다. 이 포스트에서는 윈도우 11 환경을 기준으로 WSL(Windows Subsystem for Linux)을 활용한 zsh 설치 과정을 공유합니다. 시작해 보겠습니다.
1. WSL 설치 (Windows Subsystem for Linux)
mac이나 linux 환경과 달리, 윈도우에서 zsh 설치를 위해서는 WSL이 선행되어야 합니다. WSL은 윈도우 운영체제 내에서 리눅스 운영체제를 직접 실행하도록 지원하는 기능입니다. 이를 통해 윈도우 환경에서도 리눅스 기반 개발 도구 활용이 가능해집니다. zsh와 같은 리눅스 기반 쉘 사용을 위해 WSL 환경 구축이 필요합니다.
1.1. Windows 기능 켜기/끄기 설정
WSL 설치를 위한 사전 작업을 진행합니다. 윈도우 검색창에 "Windows 기능 켜기/끄기"를 검색하여 실행하세요. 목록 중 다음 두 항목을 찾아 체크박스에 표시하고 "확인" 버튼을 누르세요.
- Linux용 Windows 하위 시스템
- Hyper-V
이 설정 변경 후 시스템 재부팅이 필요할 수 있습니다. 변경사항 적용을 위해 컴퓨터를 다시 시작하세요.
1.2. Microsoft Store에서 WSL, Ubuntu 설치
재부팅이 완료되었다면, Microsoft Store에서 WSL과 Ubuntu를 설치합니다. Ubuntu는 WSL 위에서 실행될 리눅스 배포판 중 하나로, 대중적으로 많이들 사용하는 것 같아 선택했습니다. 아래 링크를 통해 설치할 수 있습니다.
두 앱을 모두 설치합니다. 설치 완료 후 Ubuntu 앱을 실행하여 초기 설정인 사용자 이름과 비밀번호를 설정하게 되며, 이는 기억해 두어야 합니다.
2. zsh 설치
WSL과 Ubuntu 설치 완료 후, zsh를 설치합니다. 윈도우 검색 기능에서 Ubuntu를 검색하거나, Windows Terminal을 실행하여 Ubuntu 탭을 여세요.
2.1. zsh 설치 명령어 실행
터미널 준비가 완료되면, 다음 명령어를 입력하여 zsh를 설치합니다.
sudo apt-get install zshsudo는 관리자 권한으로 명령어를 실행함을 의미하며, apt-get install zsh는 zsh 패키지를 설치하는 명령어입니다. 설치 과정 중 질문이 나올 수 있으며, 대부분 Y를 입력하고 Enter를 눌러 진행하면 됩니다.
2.2. zsh를 기본 쉘로 설정
zsh 설치 완료 후, 이 쉘을 기본 쉘로 설정합니다. 다음 명령어를 입력하세요.
chsh -s /usr/bin/zshchsh 명령어는 사용자의 로그인 쉘을 변경하는 데 사용됩니다. /usr/bin/zsh는 zsh 실행 파일의 경로를 의미합니다. 이 명령어 실행 시 이후 터미널 실행 시마다 zsh가 기본으로 실행될 것입니다.
2.3. 터미널 재시작 및 초기 설정
명령어 실행 후, 현재 열려있는 터미널을 모두 종료하고 다시 실행하세요. 터미널 재실행 시 zsh 설정 파일에 대한 안내 메시지가 표시될 수 있습니다. 다음과 같은 선택지가 주어질 수 있습니다:
저는 2번 옵션을 선택했습니다. 하지만 초기 설정을 건너뛰는 'q' 옵션을 선택하는 경우도 있습니다. 다음 oh my zsh를 설치하는 과정에서 추가적인 초기 설정이 진행되므로, 어느 쪽을 선택하더라도 무방합니다.
3. oh my zsh 설치
Oh My Zsh는 zsh 설정을 간편하게 관리하는 프레임워크입니다. 이를 통해 다양한 테마와 플러그인을 쉽게 적용하여 터미널 환경을 더욱 강력하고 편리하게 만들 수 있습니다. WSL 터미널에서 다음 명령어를 입력하여 oh my zsh를 설치하세요.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"3.1. 추천 플러그인 설치
Oh My Zsh의 가장 큰 장점 중 하나는 풍부한 플러그인 생태계입니다. 자주 사용되는 몇 가지 유용한 플러그인을 소개 및 설치 방법을 알려드립니다.
zsh-syntax-highlighting
zsh-syntax-highlighting은 터미널에 입력하는 명령어의 구문을 강조하여 표시하는 플러그인입니다. 올바른 명령어는 초록색으로, 잘못된 명령어는 빨간색으로 표시되어 오타를 즉시 인지하고 수정할 수 있도록 돕습니다. 시각적으로도 유용하며, 오류 감소에 큰 역할을 해줍니다.
설치방법
-
터미널에서 다음 명령어를 실행하여 플러그인 저장소를 클론하세요:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting -
~/.zshrc파일에 다음 라인을 추가하여 플러그인을 활성화하세요. 이 플러그인은 다른 플러그인처럼plugins=()안에 추가하는 것이 아니라, 별도로source명령어를 통해 활성화해야 합니다.echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc(
echo명령은 뒤의 문자열을 출력하고,>>는 그 출력을~/.zshrc파일의 끝에 추가하는 의미입니다.) -
source ~/.zshrc명령어를 터미널에 입력하여 변경사항을 적용하세요.
zsh-autosuggestions
zsh-autosuggestions는 터미널에서 이전에 사용했던 명령어를 기반으로 실시간 자동완성을 제공하는 플러그인입니다. 명령어를 모두 입력할 필요 없이 방향키로 선택하여 빠르게 입력할 수 있도록 지원합니다. 개발 생산성 향상에 기여하는 필수 도구입니다.
설치방법
- 터미널에서 다음 명령어를 실행하여 플러그인 저장소를 클론합니다.
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions~/.zshrc파일을 편집하여 플러그인을 활성화하세요.vim ~/.zshrc또는vi ~/.zshrc명령어를 실행하여 열리는 화면에서plugins=()텍스트를 찾아 소괄호 안에'zsh-autosuggestions'를 추가해 주세요. 이미 다른 플러그인이 있다면 한 칸 띄거나 줄바꿈하여 추가하면 됩니다.
plugins=(git zsh-autosuggestions)
(예시: git은 기본으로 활성화되어 있는 경우가 많습니다. 위와 같이 추가하면 됩니다.)
- 파일을 저장하고 닫은 후,
source ~/.zshrc명령어를 터미널에 입력하여 변경사항을 적용하세요.
zsh-z
zsh-z는 과거에 여러 번 방문했던 디렉토리들을 기억하여, 어떤 위치에서든지 최종 디렉토리 이름만 입력하면 해당 디렉토리로 바로 이동할 수 있게 돕는 플러그인입니다. 예를 들어, ~/projects/my-app/src/components와 같이 깊은 경로를 자주 오간다면, z components만으로 해당 디렉토리로 바로 이동할 수 있는 매우 편리한 기능입니다.
설치방법
- 터미널에서 다음 명령어를 실행하여 플러그인 저장소를 클론하세요:
git clone https://github.com/agkozak/zsh-z ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-z~/.zshrc파일을 편집하여 플러그인을 활성화하세요.plugins=()텍스트 내 소괄호에'zsh-z'를 추가합니다.zsh-autosuggestions와 함께 사용하고 싶다면 다음과 같이 작성할 수 있습니다:
plugins=(git zsh-autosuggestions zsh-z)- 파일을 저장하고 닫은 후,
source ~/.zshrc명령어를 터미널에 입력하여 변경사항을 적용하세요.
4. Powerlevel10k 설치
Powerlevel10k는 zsh를 위한 강력하고 유연한 테마입니다. 단순히 터미널의 외형을 변화시키는 것을 넘어, 실시간으로 Git 상태, 현재 디렉토리, 실행 시간 등을 표시하여 개발 효율을 극대화합니다. 특히 설정 마법사를 통해 개인에게 맞는 테마를 간편하게 적용할 수 있다는 점이 큰 장점입니다.
설치방법
- 터미널에서 다음 명령어를 실행하여
Powerlevel10k테마를 클론하세요:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k~/.zshrc파일을 편집하여 테마를 활성화하세요.ZSH_THEME="robbyrussell"과 같이 설정된 부분을 찾아"powerlevel10k/powerlevel10k"로 변경해 주세요.
ZSH_THEME="powerlevel10k/powerlevel10k"- 파일을 저장하고 닫은 후,
source ~/.zshrc명령어를 터미널에 입력하여 변경사항을 적용하세요.
4.1. MesloLGS NF 폰트 설치
Powerlevel10k 테마는 특별한 아이콘과 심볼을 사용하므로, MesloLGS NF 폰트 설치를 권장합니다. 이 폰트가 없으면 터미널에서 일부 문자가 깨져 보일 수 있습니다. 시각적으로 완전한 테마를 위해 설치하는 것을 권장합니다.
설치방법
-
Powerlevel10k공식 GitHub 저장소(romkatv/powerlevel10k: A Zsh theme)에 접속하여MesloLGS NF폰트 파일 4개(MesloLGS NF Regular.ttf,MesloLGS NF Bold.ttf,MesloLGS NF Italic.ttf,MesloLGS NF Bold Italic.ttf)를 모두 다운로드하여 설치합니다. 폰트 파일을 더블 클릭한 후 "설치" 버튼을 누르면 됩니다. -
폰트 설치 후, 사용하시는 터미널 프로그램(예:
Windows Terminal,VS Code의 터미널 등)의 설정에서MesloLGS NF폰트를 적용해야 합니다.
- Windows PowerShell의 경우: 설정 -> 기본값 -> 모양 -> 글꼴에서
MesloLGS NF폰트를 선택합니다.
- 폰트 적용을 위해 터미널을 재실행하세요.
4.2. Powerlevel10k 설정
폰트까지 적용하고 터미널을 재실행했다면, 이제 Powerlevel10k 설정 마법사가 자동으로 시작될 것입니다. 만약 자동으로 시작되지 않는다면, 터미널에서 다음 명령어를 실행해 주세요.
p10k configure설정 마법사는 여러 단계를 거쳐 터미널의 외형과 동작을 사용자 취향에 맞게 조절할 수 있도록 돕습니다. 다양한 옵션을 직접 보면서 선택하면 되는데, 한 가지 중요한 팁을 드리자면 "Character Set" 설정 단계에서는 Unicode 선택을 강력히 추천합니다. 그래야 모든 아이콘과 심볼이 깨짐 없이 잘 보입니다.
모든 설정이 끝난 후 터미널을 사용하다가 적용된 테마가 마음에 들지 않을 수도 있습니다. 그럴 땐 터미널에서 p10k configure 입력하시면 다시 테마 설정을 진행할 수 있습니다.
마무리
이 포스트에서는 WSL을 통해 윈도우 환경에 리눅스를 구축하고 zsh를 설치하는 방법부터 oh my zsh를 설치하여 쉘을 더욱 강력하게 만들고, 유용한 플러그인들을 추가하여 생산성을 높이는 방법, 그리고 Powerlevel10k 테마를 통해 터미널을 시각적으로 개선하는 방법까지 주요 과정을 살펴보았습니다.
이 포스트가 여러분의 개발 환경을 개선하는 데 작은 도움이 되었기를 바랍니다. 제 글을 읽어주셔서 감사합니다!