터미널을 꾸며봤으니, 이제 그 위에서 실행되는 CLI도 꾸며봅시다. 우선 아래 그림을 보시죠
CLI 꾸미기에 사용할 프로그램은 PowerShell7, winfetch, oh-my-posh입니다.
기본적으로 윈도우에는 cmd와 함께 아래의 Windows PowerShell이 설치되어 있습니다. 이후 설명할 oh-my-posh는 cmd와 함께 사용할 수 없으므로, 앞으로는 PowerShell을 주 CLI로 사용해야 할 것입니다.
하지만 저는 거기서 더 나아가서 PowerShell의 업데이트 버전인 PowerShell7을 설치하고 꾸미도록 하겠습니다. 앞서가는 것을 두려워하지 않는 것이 이 시대가 요구하는 미덕?이니까요.
... 사실은 이후에 설명할 oh-my-posh의 출력 중 일부가 기본으로 설치된 PowerShell에서 정상적으로 표시되지 않기 때문에 업데이트를 해줘야 합니다.
기존 PowerShell을 실행하고, 아래의 명령어를 입력하면 바로 PowerShell7을 설치할 수 있습니다.
winget install --id Microsoft.PowerShell --source winget
새로 설치된 파워쉘은 이렇게 생겼습니다.
아이콘이 깊고 어두운 것이 벌써부터 개발자의 가슴을 간지럽히는군요.
터미널을 실행하고 [설정]으로 갑니다. 그럼 [기본 프로필] 설정에 검은 아이콘의 PowerShell 옵션이 추가되어 있을겁니다.
이걸 선택한 다음, 잊지 말고 [저장]을 누릅시다.
winfetch는 CLI에서 컴퓨터 정보를 예쁘게 출력해주는 프로그램입니다. 자세한 내용은 리포지토리를 참고하세요.
기본적으로 winfetch를 설치하면, 터미널에서 winfetch
를 입력해 직접 실행할 때에만 동작합니다.
그래서 저희는 winfetch를 설치한 다음에, PowerShell이 실행될 때마다 자동으로 winfetch가 실행되도록 설정하여 터미널 맨 위에 컴퓨터 정보를 출력하도록 할 것입니다.
이제 터미널을 다시 실행하거나 실행 중인 터미널에서 새 탭을 열면 새로 설치한 깔끼한 PowerShell7이 여러분을 반겨줍니다(사실 외관상의 차이는 아직 없습니다). PS ...>
와 같이 프롬프트 라인이 표시되고 있다면, 다음 명령어를 입력하여 winfetch를 설치할 수 있습니다.
Install-Script winfetch
설치가 완료되었나 확인하려면 우선 PowerShell을 한 번 재시작하고 winfetch
명령어를 입력해봅시다. 아래와 같이 출력되면 성공입니다!
winfetch가 처음 설치되었을 때에는 모든 설정이 기본값으로 지정되어 있습니다. 설정을 직접 수정하고 싶어졌다면, PowerShell에서 winfetch -genconf
명령어를 입력해서 커스터마이징 가능한 설정 파일을 생성할 수 있습니다. 이미 설정 파일을 만든 뒤에는 start $env:USERPROFILE/.config/winfetch/config.ps1
명령어로 이전에 만든 설정 파일을 열 수 있습니다.
설정 파일을 열면 이것저것 많아서 설정할 방법이 많은데, 페이지에 여백이 너무 부족해서 여기에는 적지 않겠습니다.
저는 이런 설정을 해줬습니다.
설정이 끝난 뒤에는 이렇게 생겼습니다.
oh-my-posh는 PowerShell의 프롬프트 줄을 예쁘게 꾸며주는 프로그램입니다. 자세한 내용은 공식 홈페이지를 참고하세요.
oh-my-shell도 winfetch와 마찬가지로, 직접 가동시켜주지 않으면 동작하지 않습니다. 한 번 가동하면 이후 해당 CLI 탭에서는 계속 꾸민 프롬프트가 나오게 되므로, PowerShell이 시작될 때 한 번만 가동시켜주면 됩니다.
PowerShell에서 아래의 명령어를 입력하면 oh-my-posh를 설치할 수 있습니다.
winget install JanDeDobbeleer.OhMyPosh -s winget
oh-my-posh가 설치된 뒤에 PowerShell을 재시작하고, 아래 명령어를 입력하면 이후 모든 프롬프트 줄의 모양이 바뀝니다.
oh-my-posh init pwsh | Invoke-Expression
물론 다른 탭에서는 이 효과가 적용되지 않습니다. 따라서 PowerShell을 재시작하거나 새 PowerShell 탭을 열 때마다 이 명령어를 실행해줘야 합니다.
PowerShell에서 아래 명령어를 입력하면 사용 가능한 oh-my-posh 테마를 모두 미리보기할 수 있습니다.
Get-PoshThemes
이후 마음에 드는 테마 이름을 확인하고, 아래의 명령어를 입력해서 oh-my-posh의 테마를 변경해줍니다.
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\<theme-name>.omp.json" | Invoke-Expression
ℹ️ Note
예를 들어,jandedobbeleer
테마를 사용하고 싶다면 테마의 json 파일 경로는"$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"
이므로, 아래의 명령어를 입력하여 테마를 선택할 수 있습니다.oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
여러 테마를 살펴보면서 마음에 드는 것을 사용합시다. 만약 마음에 드는 것이 없다면 공식 홈페이지를 참고하여 새로운 테마를 작성할 수도 있습니다.
⚠️ Warn
만약 몇몇 글자가
와 같이 깨져서 보인다면, 해당 글자를 표시할 수 있는 폰트를 사용하도록 터미널의 설정을 변경해야 합니다. oh-my-posh에서 사용하는 글자를 정상적으로 표시하려면 Nerd Font로 패치된 다른 폰트를 사용해야 합니다.
oh-my-posh가 PowerShell 실행시에 함께 실행되도록 설정해봅시다. 여기서 winfetch도 같이 실행되도록 설정하겠습니다.
$PROFILE
이라는 파일에 PowerShell 스크립트를 작성하면, PowerShell 시작과 함께 그 스크립트가 자동으로 실행됩니다. 이 파일에 winfetch 실행 명령어와 oh-my-posh 가동 명령어를 적어두면, 앞으로 PowerShell을 실행할 때마다 자동으로 두 프로그램이 실행된다는 것이죠.
우선 다음의 명령어를 입력해서, 이미 $PROFILE
파일이 존재하는지 확인하고, 존재한다면 그 파일을 열어줍시다.
notepad $PROFILE
ℹ️ Note
만약 여기에서 파일이 존재하지 않아 오류가 발생한다면, 다음의 명령어를 먼저 입력해서 파일을 만들어주고 다시 위의 명령어를 입력해보세요.New-Item -Path $PROFILE -Type File -Force
열린 파일의 맨 아래에 다음과 같은 스크립트를 추가해줍시다. 각각 oh-my-posh 실행, oh-my-posh 테마 변경, winfetch 실행에 해당하는 명령어입니다.
oh-my-posh init pwsh | Invoke-Expression
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
winfetch
위의 코드에서는 oh-my-posh 테마를 paradox
로 설정하고 있습니다. 마음에 드는 테마가 있다면 이 부분을 수정하여 원하는 테마로 설정하세요. 저는 제가 직접 커스텀한 n0rd
테마를 깃허브 리포지토리에서 가져와서 사용하도록 설정했습니다.
oh-my-posh init pwsh | Invoke-Expression
oh-my-posh init pwsh --config "https://raw.githubusercontent.com/zer0ken/environments/refs/heads/main/oh-my-posh/n0rd.omp.json" | Invoke-Expression
winfetch
이제 PowerShell을 다시 실행해보면...
좋았쓰!