- Windows10 OpenSSH 클라이언트 활성화, 개발자 모드 + Ubuntu Linux 활성화
- Windows powershell을 mac terminal처럼 예쁘게 꾸며보자(Oh-My-Posh)
Windows powershell의 모습은 기본으로 사용하면 Mac과 비교했을 때 매우 투박한 UI를 보여줍니다. 이러한 점은 개발의욕을 감소시키는 요인중 하나라고 생각합니다. Oh-My-Posh 설정을 통해 Mac에서 사용하는 터미널(oh my zsh)처럼 예쁘게 변경해 보겠습니다.
우선 Microsoft Store에 접속하여 Windows terminal을 설치합니다.
설치가 완료된 후 Windows terminal을 실행하면 powershell이 실행되고 tab 설정이 가능한 터미널로 변경된 것을 확인할 수 있습니다.
글꼴 설치
Powerline은 프롬프트의 스타일 지정을 위해 문자 모양을 사용합니다. 글꼴에 Powerline 문자 모양이 포함되지 않은 경우 프롬프트에서 여러 유니코드 대체 문자 ‘▯’가 표시될 수 있습니다. Cascadia Mono에는 Powerline 문자 모양이 포함되지 않지만 Powerline 문자 모양을 포함하는 Cascadia 코드 PL 또는 Cascadia Mono PL을 설치할 수 있습니다. 이러한 글꼴은 Cascadia 코드 GitHub 릴리스 페이지에서 설치할 수 있습니다.
위의 GitHub 페이지에서 파일을 다운(CascadiaCode-2009.22.zip)받고 압축해제하여 폰트를 설치합니다.(ttf 파일 설치)
PowerShell을 사용하여 Posh-Git 및 Oh-My-Posh를 설치
Windows terminal을 관리자 모드로 실행하여 진행합니다.
Posh-Git은 Git 명령, 매개 변수, 원격 항목 및 분기 이름에 대한 탭 완성뿐만 아니라 프롬프트에도 Git 상태 정보를 추가합니다. Oh-My-Posh는 PowerShell 프롬프트에 대한 테마 기능을 제공합니다. PSReadline을 사용하면 PowerShell의 명령줄 편집 환경을 사용자 지정할 수 있습니다.
PS C:\Users\jayden> Install-Module posh-git -Scope CurrentUser 계속하려면 NuGet 공급자가 필요합니다. NuGet 기반 리포지토리를 조작하려면 PowerShellGet에 NuGet 공급자 버전 '2.8.5.201' 이상이 필요합니다. 'C:\Program Files\PackageManagement\ProviderAssemblies' 또는 'C:\Users\jayden\AppData\Local\PackageManagement\ProviderAssemblies'에서 NuGet 공급자를 사용할 수 있어야 합니다. 또한 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'를 실행하여 NuGet 공급자를 설치할 수 있습니다. 지금 PowerShellGet에서 NuGet 공급자를 설치하고 가져오시겠습니까? [Y] 예(Y) [N] 아니요(N) [S] 일시 중단(S) [?] 도움말 (기본값은 "Y"): y 신뢰할 수 없는 리포지토리 신뢰할 수 없는 리포지토리에서 모듈을 설치하는 중입니다. 이 리포지토리를 신뢰하는 경우 Set-PSRepository cmdlet을 실행하여 InstallationPolicy 값을 변경하십시오. 'PSGallery'에서 모듈을 설치하시겠습니까? [Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"): a PS C:\Users\jayden> Install-Module oh-my-posh -Scope CurrentUser 신뢰할 수 없는 리포지토리 신뢰할 수 없는 리포지토리에서 모듈을 설치하는 중입니다. 이 리포지토리를 신뢰하는 경우 Set-PSRepository cmdlet을 실행하여 InstallationPolicy 값을 변경하십시오. 'PSGallery'에서 모듈을 설치하시겠습니까? [Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"): a PS C:\Users\jayden> Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
PowerShell 프롬프트 설정
터미널에서 nodepad $PROFILE을 입력하여 PowerShell 실행 시 설정할 내용을 다음과 같이 작성하고 저장합니다.
Import-Module posh-git Import-Module oh-my-posh Set-Theme Paradox
설정 후 Windows terminal을 재실행 합니다. 아래와 같은 오류가 발생하면 Set-ExecutionPolicy RemoteSigned로 정책을 설정하고 다시 실행합니다.
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 새로운 크로스 플랫폼 PowerShell 사용 https://aka.ms/pscore6 PSReadline 모듈을 로드할 수 없습니다. PSReadline 없이 콘솔이 실행되고 있습니다. . : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\jayden\Documents\WindowsPowerShell\Microsoft.PowerShell_profil e.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170) 를 참조하십시오. 위치 줄:1 문자:3 + . 'C:\Users\jayden\Documents\WindowsPowerShell\Microsoft.PowerShell_p ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned 실행 규칙 변경 실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말 항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을 변경하시겠습니까? [Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"): a
Windows terminal에 출력되는 powershell의 모습이 변경된 것을 확인할 수 있습니다. 그러나 폰트 문제로 깨져 보이는 부분이 발생합니다.
상단의 드롭 다운(∨)메뉴 – 설정을 클릭합니다.
settings.json 파일이 열리는데 아래 부분을 찾아 fontFace를 Cascadia Code PL로 변경하고 저장합니다.
{ // Make changes here to the powershell.exe profile. "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", "name": "Windows PowerShell", "commandline": "powershell.exe", "fontFace": "Cascadia Code PL", "hidden": false },
Windows terminal을 다시 띄우면 아래와 같이 깨지지 않고 출력되는 것을 확인할 수 있습니다.
Git Repository를 Clone 받은 디렉터리로 이동하면 다음과 같이 표시됩니다. 이제 Mac Terminal 못지않은 이쁜 터미널을 window에서도 사용할 수 있게 되었습니다.
WSL Ubuntu에서 Powerline 설정
wsl ubuntu 관련한 내용은 아래 포스팅에서 확인할 수 있습니다.
만약 windows에서 제공하는 wsl ubuntu를 사용한다면 ubuntu terminal에서도 동일하게 위 내용을 적용할 수 있습니다. ubuntu 기본 터미널의 모습은 다음과 같습니다.
Go 및 Powerline-Go 설치
ubuntu를 실행하고 터미널에서 다음과 같이 Go 및 Powerline-Go를 설치합니다.
$ sudo apt-get update $ sudo apt install golang-go // 설치 내용 생략 $ go get -u github.com/justjanne/powerline-go // 설치 내용 생략
Update .bashrc file
bash가 실행될 때마다 powerline-go를 실행하도록 설정합니다. nano ~/.bashrc
또는 선택한 텍스트 편집기를 사용하여 ~/.bashrc
파일을 열고 다음과 같이 작성하고 저장합니다.
GOPATH=$HOME/go function _update_ps1() { PS1="$($GOPATH/bin/powerline-go -error $?)" } if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND" fi
ubuntu 터미널을 다시 띄우면 기본 터미널의 모습과 달라진 것을 볼 수 있습니다. 다만 폰트 때문에 깨져 보이는 부분이 발생합니다.
터미널 속성에 들어가 폰트를 Cascadia Code PL로 변경 합니다.
확인을 누르고 나오면 깨져 보이던 부분이 사라지고 정상적으로 표시되는 것을 확인할 수 있습니다.
만약 위에서 설정한 windows terminal을 이용한다면 폰트 설정도 필요 없습니다. windows terminal에서 ubuntu로 접속하면 설정해둔 oh-my-posh가 그대로 적용되기 때문입니다.
이제부터는 Windows에서 멋지게 변경된 terminal을 사용하여 기분 좋게 개발하면 됩니다!!