PowerShell에는 .bashrc같은 설정파일이 없나?

apriljade·2022년 6월 11일
0

PowerShell

목록 보기
1/1

처음 개발을 배울적에는 Windows 환경에서 배웠었고 Windows에서는 대부분의 시스템 설정을 GUI로 했었습니다. 환경 변수 설정도 보통 GUI에서 하구요. 그렇게 하다가 42서울을 하게되면서 맥 환경에서 거의 강제적으로 Mac환경에서 약 한 달간 코딩을 하게되었습니다. 그러다보니 자연스럽게 터미널이라는 친구, 쉘이라는 친구랑 친해졌고 GUI보다 CLI가 친숙하며 편안해졌습니다.
마우스도 조작하지 않아도 되고 텍스트로만 나오는 데다가 쉘 스크립트를 활용하면 원하는 정보도 쉽게 가공가능하고 뭐 장점밖에 보이지 않더라는...

그래서 결국 랩탑에 깔려있는 Windows를 밀어내고 우분투를 깔지만,,여러 하드웨어 드라이버 수준의 호환문제를 겪었습니다. 그래서 우분투, Windows를 왔다리 갔다리 하다 결국 지금은 Windows에 정착했습니다.

터미널을 자주 사용하던 저는 Windows에서도 CLI기반 쉘을 사용하게 됩니다. Windows에서는 cmd, PowerShell이 있는데 둘다 악명이 자자하고 안쓰시는 분들이 많죠. 저도 처음에 너무 불편하고 이상해서 때려치우고 WSL에 의존했는데 이것도 그렇게 편한건 아니었습니다. 아무래도 가상화기술 기반으로 동작하는 것이라 네이티브에 비하면 갑갑할 때가 있죠.

열심히 방황하다, PowerShell을 어떻게든 활용해보자! 라는 결심을 세우고 일단 Alias를 만들기로 합니다.

PowerShell Profile


bash 쉘은 .bashrc, zsh 쉘은 .zshrc파일이 쉘을 커스텀 구성할 수 있는 일종의 설정파일입니다. PowerShell에서는 Profile이라고 하며, 해당 파일은 기본적으로는 존재하지 않기 때문에 우리가 직접 만들어줘야합니다.
bash, zsh같은 쉘은 설정 파일의 위치는 ~ 입니다. PowerShell은 $PSHOME 이라는 변수에 저장되어 있는 경로가 그 위치입니다. PowerShell을 켜고 쳐봅시다!

> $PSHOME

경로가 하나 나올텐데 그 경로에 Profile.ps1라는 이름의 파일을 만들어주고, 그곳에 스크립트를 작성하면 됩니다!
저는 작업 폴더가 C:\repository 인데요, 이 폴더로 곧바로 가는 Alias 한 개를 만들어보죠.

Alias 만들기

visual studio code를 사용한다는 가정하에 진행하겠습니다.
우선 PowerShell을 관리자 권한으로 켜주시고

code $PSHOME/Profile.ps1

을 입력해줍니다.
그 다음 Profile.ps1에는

function GoToRepository { Set-Location("C:\repository") }

New-Alias repo GoToRepository

이렇게 작성해주시면 됩니다. PowerShell은 좀 특이해서 원하는 동작을 함수로 만들어주고 Alias로 등록해야합니다. 그다음 PowerShell을 재실행해주시고 repo입력해봅시다.

이렇게 잘 이동하는 것을 알 수 있습니다.

매번

code $PSHOME/Profile.ps1

이렇게 명령어를 쳐서 수정하는 것도 귀찮으니 이것도 Alias로 등록해봅시다.
위에서 했던 것처럼 함수를 하나 만들고 그 함수를 Alias로 등록해주면 됩니다.

function ConfigurePSProfile { code $PSHOME"\Profile.ps1" }
New-Alias psconfig ConfigurePSProfile

이렇게 해주면 PowerShell에서 psconfig만 입력해주면 Profile을 수정할 수 있습니다.

또 다른 활용방안...?

Alias를 기본으로 PowerShell에서는 굉장히 편리한 기능을 다수 제공합니다.
예를 들어 프록시 어플리케이션을 개발하는 경우, 개발 기기에서 프록시를 껐다 켰다 할 일이 많습니다. 이때 Proxy 설정을 On/Off하는 명령어를 Alias로 등록해둔다던지, COM객체를 불러와 OS수준의 조작, 사용을 한다던지, 레지스트리나 환경변수를 활용한다던지, 빌드 자동화 Alias를 만든다던지, 자동 백업 Alias를 만드는 것도 가능합니다.

제가 언급한 것들 뿐만 아니라 다른 여러가지 활용방안이 있습니다! 저는 지금은 이글에서 소개한 Alias 두 가지와 Proxy on/off Alias를 만들어서 쓰고있습니다. 자동화라던지 파싱이라던지 이런 간단한 작업은 파이썬으로 주로 한다고 들었는데 Windows 환경이라면 PowerShell도 충분히 좋은 선택지가 아닌가 생각합니다.

참고 링크


MSDN 감사합니다.
What is PowerShell?

0개의 댓글