[PowerShell] Windows Terminal과 oh my posh로 Powershell을 더 이쁘게 사용하기

반응형

개인적으로 Windows를 쓸 일이라곤 많이 없었습니다. 개발은 대부분 Linux 혹은 OS X에서 진행하고, Windows는 게임 머신이나 Windows binary 개발 외에는 거의 쓸 일이 없었으니깐요.

 

그런데, 최근 Windows Terminal을 보고 이제 Powershell도 꾸미는 시대가 왔다는 것을 느끼며 사용기와 함께 이뻐진 Windows Terminal을 소개하고자 합니다.

 

 

 

딱딱하다 못해 친숙하지 않은 Powershell과 CMD

Windows 명령 프롬포트는 그야말로 레거시를 상징하는 프로그램입니다. 

 

그를 대체하기 위해 Windows Server 2008과 Windows Vista에서부터 Powershell을 도입했지만 스크립트는 풍부하게 지원하더라도 친숙하지 않은 UI 등은 저에게 늘 이질감이었습니다 ㅜㅜ

 

 

 

Windows Terminal

Microsoft Store에서 Windows Terminal을 검색하면 아래와 같이 Windows Terminal을 다운로드 받을 수 있습니다.

 

Windows Terminal은 과거 Microsoft의 정책과 달리 오픈 소스 소프트웨어이며 아직은 Windows OS 외에는 지원하지 않습니다. 

 

https://github.com/microsoft/terminal

 

GitHub - microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!

The new Windows Terminal and the original Windows console host, all in the same place! - GitHub - microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same...

github.com

 

Windows Terminal을 실행시켜보면 기존 Powershell, 명령 프롬포트보다 깔끔한 폰트를 사용할 수 있고, 거기에 탭까지 지원하는 모습입니다. 하지만 이걸로는 아직 Windows Terminal이 매력적이지 않습니다.

 

 

 

Oh my posh

Linux 혹은 Mac OS X를 쓰시는 분들이라면 bash 혹은 zsh를 쓰실 것입니다. 특히 zsh를 쓰시는 분들 중 조금 감성적이라면 oh my zsh를 사용하시는 분들이 있습니다.

 

Windows에서는 Powershell이 그것을 대체합니다. 그래서 이름을 Oh my posh(Powershell)이라고 하며 Oh my zsh와 유사한 스타일을 지니고 있습니다.

 

https://ohmyposh.dev/

 

Home | Oh My Posh

A prompt theme engine for any shell.

ohmyposh.dev

Oh My Posh는 Windows에서 공식적으로 제공하는 패키지 매니저인 winget을 이용해서 설치할 수 있습니다.

 

> winget install JanDeDobbeleer.OhMyPosh -s winget

> oh-my-posh.exe

Windows Terminal을 종료한 뒤 재실행하고, 위 명령어를 쳤을 떄 아래의 화면이 나오면 설치가 잘 끝난 것입니다.

 

이제 설치가 끝났으니 테마를 선택하도록 하겠습니다.

 

https://ohmyposh.dev/docs/themes

 

Themes | Oh My Posh

Oh My Posh comes with many themes included out-of-the-box. Below are some screenshots of the more common themes.

ohmyposh.dev

Oh My Posh에서 제공하는 테마는 위 사이트에서 보실 수 있습니다.

저는 여기서 iTerm2 테마를 적용해보도록 하겠습니다.

 

> oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\iterm2.omp.json" | Invoke-Expression

POSH_THEMES_PATH 경로 뒤쪽에 자신이 원하는 테마 이름을 지정하면 됩니다.

 

그런데... 어라? 글자가 깨져 보이네요.. ㅜㅜ

Oh my posh를 완벽하게 사용하려면 Nerd Font가 필요합니다. 따라서 우리는 Nerd font를 설치해야 합니다.

 

> oh-my-posh font install

oh my posh 명령어로 font install을 진행합니다.

 

키보드 상하 키를 이용해 원하는 폰트 중 하나를 선택합니다.

(이 때부터는 Terminal이 관리자 모드로 실행되어야 합니다!)

 

폰트 설치가 끝났으면 Ctrl + Shift + , 단축키를 누릅니다. 그러면 settings.json 파일이 편집기로 실행되는데, 38번 줄에 있는 default에 우리가 설치한 폰트를 넣어줍니다.

 

그러면 깨진 글자가 아이콘으로 변합니다.

 

여기서 우리는 테마를 아직 완벽하게 적용한 것이 아닙니다. 그저 해당 쉘에서만 테마를 적용한 것이기 때문에 다음에 다시 쉘을 실행했을 때도 해당 테마로 실행할 수 있도록 프로필에 저장해야 합니다.

 

현재 테마가 마음에 든다면 다음 과정으로 계속 진행하고, 테마를 바꾸고 싶다면 oh-my-posh init 명령어로 돌아갑니다.

 

> notepad.exe $PROFILE

메모장으로 Powershell 프로필을 불러옵니다.

 

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\iterm2.omp.json" | Invoke-Expression

테마를 지정하는 명령어를 프로필에 추가합니다.

그리고 Windows Terminal을 실행하면 이젠 해당 테마로 Powershell이 실행됩니다.

 

 

 

Terminal-Icons

Powershell에서는 ls 혹은 Get-Items 명령어로 현재 디렉터리에 있는 파일을 탐색할 수 있습니다.

 

하지만 디렉터리와 파일 구분이 어렵습니다. 이를 위해 Terminal Icons를 이용하면 좀 더 깔끔하게 파일을 탐색해 볼 수 있습니다.

 

> Install-Module -Name Terminal-Icons -Repository PSGallery

Nuget으로 Terminal-Icons를 Github Repository에서 다운로드 받습니다.

 

> Import-Module -Name Terminal-Icons

그런 다음 Import-Module로 아이콘을 Import합니다.

 

그러면 좀 더 깔끔한 ls 명령어로 바뀝니다.

 

 

 

마치며...

오랜만에 Windows 포스팅을 올리게 되었습니다. PowerShell을 꾸며서 쓴지는 꽤 됐지만 당시엔 Windows Terminal이 아직 Preview 버전이었기에 포스팅을 조금 꺼려했었습니다.

 

이젠 정식 버전이고, Windows CLI 환경도 발전해나가는 추세니 조금은 지켜볼만한 컨텐츠가 된 거 같습니다.

 

반응형

Tistory Comments 0