리눅스 또는 맥의 터미널 환경, 혹은 윈도우의 WSL 환경을 사용하다 보면 oh-my-zsh을 들어봤거나 사용하고 있을 것이다. 또한 파워셸을 사용하고 있다면 oh-my-posh에 대해서도 들어봤거나 사용하고 있을 것이다. 애저에서도 애저 클라우드 셸 환경을 제공하는데, 여기서는 bash 셸 환경과 파워셸 기본 환경을 제공한다. 따라서, 만약 oh-my-zsh 혹은 oh-my-posh 구성을 적용하고 싶다면 별도로 환경 구성을 해야 한다.
이 포스트에서는 이를 자동으로 구성해주는 bash 셸 스크립트와 파워셸 스크립트에 대해 알아보기로 한다.
이 포스트에 사용된 스크립트 소스 코드는 이 깃헙 리포지토리에서 다운로드 받을 수 있다.
oh-my-zsh 적용하기
우선 애저 클라우드 셸에 oh-my-zsh 환경을 구성해 보자. 먼저 bash 프롬프트인지 확인한다. 만약 bash 프롬프트가 아니라면 bash
명령어를 이용해 bash 프롬프트로 바꾼다.
-
가장 먼저 oh-my-zsh 구성을 설치한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characterssh -c "$(curl -fsSL \ https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -
다음으로는 oh-my-zsh 용 플러그인을 설치한다. 다른 좋은 플러그인도 많지만, 여기서는 가장 널리 쓰이는 세가지 – zsh-completions, zsh-syntax-highlighting, zsh-autosuggestions – 정도만 설치한다. 추가적인 플러그인 설치가 더 필요하다면 아래와 같은 방법으로 설치하면 된다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Plugin: zsh-completions git clone https://github.com/zsh-users/zsh-completions.git \ ~/.oh-my-zsh/custom/plugins/zsh-completions # Plugin: zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \ ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting # Plugin: zsh-autosuggestions git clone https://github.com/zsh-users/zsh-autosuggestions.git \ ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions -
이어서 테마를 설치한다. 어떤 테마를 선택할지에 대해서는 취향에 따라 갈리겠지만, 여기서는 Spaceship 테마 또는 Powerlevel10k 테마를 설치한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Theme: Spaceship git clone https://github.com/spaceship-prompt/spaceship-prompt.git \ ~/.oh-my-zsh/custom/themes/spaceship-prompt --depth=1 ln -s ~/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme \ ~/.oh-my-zsh/custom/themes/spaceship.zsh-theme # Theme: Powerlevel10k git clone https://github.com/romkatv/powerlevel10k.git \ ~/.oh-my-zsh/custom/themes/powerlevel10k --depth=1 ln -s ~/.oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme \ ~/.oh-my-zsh/custom/themes/powerlevel10k.zsh-theme -
만약 Powerlevel10k 테마를 설치했다면 아래 명령어를 통해 추가적인 환경 설정을 해 주어야 한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersp10k configure -
애저 클라우드 셸은 bash 프롬프트를 기본값으로 사용한다. 그런데, 여기서는
sudo
명령어를 사용할 수 없기 때문에, zsh 프롬프트를 기본값이 되게끔 할 수 없다. 따라서, 아래와 같이.bashrc
파일을 수정해서 zsh 프롬프트로 변경해 주어야 한다.This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersbash -c zsh - 여기까지 설정이 끝났다면, 애저 클라우드 셸을 종료하고 다시 시작한다. 혹은
source .bashrc
명령어를 실행시켜도 된다. 그러면 앞으로는 계속해서 oh-my-zsh 환경이 적용된 zsh 프롬프트를 사용할 수 있다. -
만약 이 모든 설정을 자동화하고 싶다면 아래 명령어를 실행시켜도 좋다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Download the GitHub repository git clone https://github.com/justinyoo/oh-my-azure-cloud-shell.git ~/oh-my-azure-cloud-shell # Install oh-my-zsh with the theme of "Spaceship" ~/oh-my-azure-cloud-shell/install.sh -t spaceship # Install oh-my-zsh with the theme of "Powerlevel10k" ~/oh-my-azure-cloud-shell/install.sh -t p10k -
만약 Powerlevel10k 테마를 설치하고 난 뒤, 현재 시간을 보여주고 싶다거나 감추고 싶다거나 하려면 아래 명령어를 실행시키면 된다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Turn on the clock feature ~/oh-my-azure-cloud-shell/switch-p10k-clock.sh -c # Turn off the clock feature ~/oh-my-azure-cloud-shell/switch-p10k-clock.sh
지금까지 애저 클라우드 셸에 oh-my-zsh 환경 구성을 하는 방법에 대해 알아보았다.
oh-my-posh 적용하기
이번에는 애저 클라우드 셸에 oh-my-posh 환경을 구성해 보자. 먼저 파워셸 프롬프트인지 확인한다. 만약 파워셸 프롬프트가 아니라면 pwsh
명령어를 이용해 파워셸 프롬프트로 바꾼다.
-
가장 먼저 oh-my-posh 모듈을 설치한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersInstall-Module oh-my-posh -Scope CurrentUser -Repository PSGallery -Force Import-Module oh-my-posh -Scope Local -Force -
이어서 테마를 선택한다. 앞서와 같이 어떤 테마를 선택할지에 대해서는 취향에 따라 갈리겠지만, 여기서는 Spaceship 테마 또는 Powerlevel10k - Rainbow 테마를 선택한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Theme: Spaceship Set-PoshPrompt -Theme spaceship # Theme: Powerlevel10k - Rainbow Set-PoshPrompt -Theme powerlevel10k_rainbow -
아래 명령어를 실행시켜 터미널용 아이콘 모듈을 설치한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersInstall-Module Terminal-Icons -Scope CurrentUser -Repository PSGallery -Force Import-Module Terminal-Icons -Scope Local -Force -
$PROFILE
파일을 생성해서 파워셸 실행시 자동으로 모듈이 설치되게끔 한다.This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersif (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } # Theme: Spaceship Write-Output " Set-PoshPrompt -Theme spaceship Import-Module Terminal-Icons -Scope Local -Force " | Out-File -FilePath $PROFILE -Encoding UTF8 -Append -Force # Theme: Powerlevel10k - Rainbow Write-Output " Set-PoshPrompt -Theme powerlevel10k_rainbow Import-Module Terminal-Icons -Scope Local -Force " | Out-File -FilePath $PROFILE -Encoding UTF8 -Append -Force -
마지막으로 아래 명령어를 실행시켜
$PROFILE
파일에 저장된 내용을 반영한다.This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters. $PROFILE -
만약 이 모든 설정을 자동화하고 싶다면 아래 명령어를 실행시켜도 좋다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Download the GitHub repository git clone https://github.com/justinyoo/oh-my-azure-cloud-shell.git ` ~/oh-my-azure-cloud-shell # Install oh-my-zsh with the theme of "Spaceship" ~/oh-my-azure-cloud-shell/install.ps1 -Theme spaceship # Install oh-my-zsh with the theme of "Powerlevel10k - Rainbow" ~/oh-my-azure-cloud-shell/install.ps1 -Theme p10k -
만약 Powerlevel10k - Rainbow 테마를 설치하고 난 뒤, 현재 시간을 보여주고 싶다거나 감추고 싶다거나 하려면 아래 명령어를 실행시키면 된다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Turn on the clock feature ~/oh-my-azure-cloud-shell/switch-p10k-clock.ps1 -WithClock # Turn off the clock feature ~/oh-my-azure-cloud-shell/switch-p10k-clock.ps1
지금까지 애저 클라우드 셸에 oh-my-posh 환경 구성을 하는 방법에 대해 알아보았다.
위와 같이 편의에 따라 oh-my-zsh 혹은 oh-my-posh, 혹은 둘 다 설치해서 사용한다면, 기존 로컬 개발환경의 터미널 경험을 그대로 애저 클라우드 셸에서도 사용할 수 있을 것이다.