2010. 7. 22. 11:40
안녕하세요. 엉스데브 입니다.
기존에 Linux 및 bash 에 익숙한 저는 PowerShell 의 Prompt가 영 낯설게 느껴집니다.
그래서 Bash 스타일로 Prompt를 변경하는 방법을 찾아보았습니다.
먼저 도움말 목록에서 Prompt 에 관련된 항목이 있나 검색 해 보려합니다.
도움말에 내가 찾는 항목이 있는지 확인 해 볼 때에는, powershell_ise 에 포함되어 있는 도움말을 참고하는게 편하더군요.
먼저 powershell_ise 를 켜고..
도움말을 엽니다.
검색 탭을 선택해서 찾고자 하는 키워드를 넣고 검색 합니다.
about_prompt 라는 항목으로 도움말이 존재하네요. 읽어 봅시다.
...
대강 읽어 본 결과, 아래의 내용을 확인 할 수 있었습니다.
그럼 먼저 PowerShell 이 기본 제공 해 주는 "prompt" 함수의 내용을 살펴보겠습니다.
선언 되어 있는 함수의 내용을 살펴보려면, 해당 함수의 Deninition 속성을 확인 하면 됩니다.
Get-Item 명령어로 Function Provider 를 통해 "Prompt" 함수를 확보 한 뒤, Definition 속성을 확인 합니다.
PowerShell 에서 기본 제공 하는 "prompt" 함수의 내용은 이렇군요.
자~ 그럼 Bash 스타일로 바꾸기 위해서 "prompt" 함수를 재정의 해 봅시다.
구글링을 통해 Bash 스타일의 "prompt" 함수 예제를 찾을 수 있었습니다. 바로 아래 코드 입니다.
코드를 실행 해 보니, 아래와 같이 표시 됩니다.
음~ 이제 Bash 스타일과 많이 비슷 해 졌는데.. 경로명 표시하는 부분이 마음에 들지 않네요.
제가 주로 사용하던 CentOS + Bash 조합의 기본 Prompt 는 경로명을 표시 할 때 전체 경로가 아닌 현재 작업 중인 디렉토리의 이름만 표시하게끔 되어 있습니다. "prompt" 함수를 고쳐서 현재 디렉토리의 이름만 표시 하도록 변경 하겠습니다.
자, 아래와 같이 표시가 변경 되었습니다.
이제 친숙한 모습의 Prompt 를 사용 할 수 있게 되었습니다. 만족스럽네요.
자, 이제 마지막으로, Profile 파일에 이 함수를 추가 해서 PowerShell 실행 시 기본적으로 이 Prompt 를 쓸 수 있도록 해야 겠습니다.
먼저 현재 사용되고 있는 Profile 파일의 경로 및 살재 존재여부를 확인 해 봤습니다.
경로는 "C:\Users\ungs.SDS.000\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" 이고, 이미 존재 하는 파일 이네요.
Profile 파일을 열어서 새로 만든 prompt 함수를 추가 합니다.
메모장으로 추가 한 내용을 저장 하고, 새로운 PowerShell 창을 띄워서 잘 되는지 확인 할 차례입니다.
음! 잘 되는군요.
이제 익숙한 스타일의 Prompt 로 PowerShell 을 사용 할 수 있겠네요.
위 기록을 참고해서 여러분들도 각자 자신이 편한대로 Prompt 를 설정해서 사용해 보세요~!
<참고 문서>
Windows Power Shell 도움말 > Windows PowerShell About 도움말 항목 > about_Prompts
man "about_Prompts" -full
<참고 URL>
http://itnervecenter.com/content/make-your-windows-powershell-prompt-look-your-bash-prompt
기존에 Linux 및 bash 에 익숙한 저는 PowerShell 의 Prompt가 영 낯설게 느껴집니다.
그래서 Bash 스타일로 Prompt를 변경하는 방법을 찾아보았습니다.
먼저 도움말 목록에서 Prompt 에 관련된 항목이 있나 검색 해 보려합니다.
도움말에 내가 찾는 항목이 있는지 확인 해 볼 때에는, powershell_ise 에 포함되어 있는 도움말을 참고하는게 편하더군요.
먼저 powershell_ise 를 켜고..
도움말을 엽니다.
검색 탭을 선택해서 찾고자 하는 키워드를 넣고 검색 합니다.
about_prompt 라는 항목으로 도움말이 존재하네요. 읽어 봅시다.
...
대강 읽어 본 결과, 아래의 내용을 확인 할 수 있었습니다.
PowerShell 은 "prompt" 라는 이름의 함수를 통해 Prompt 를 어떻게 표시 할 것인지를 결정합니다.
"prompt" 함수는 기본적으로 PowerShell 에 의해 자동으로 만들어 지지만,
함수를 재정의해서 Prompt 표시 내용을 마음대로 변경 할 수도 있습니다.
또, 재정의 한 "prompt" 함수를 Windows PowerShell Profile 에 등록 해 두면, 항상 재 정의 된 Prompt 로 작업할 수 있습니다.
그럼 먼저 PowerShell 이 기본 제공 해 주는 "prompt" 함수의 내용을 살펴보겠습니다.
선언 되어 있는 함수의 내용을 살펴보려면, 해당 함수의 Deninition 속성을 확인 하면 됩니다.
Get-Item 명령어로 Function Provider 를 통해 "Prompt" 함수를 확보 한 뒤, Definition 속성을 확인 합니다.
(Get-Item Function:\prompt).Definition
PowerShell 에서 기본 제공 하는 "prompt" 함수의 내용은 이렇군요.
자~ 그럼 Bash 스타일로 바꾸기 위해서 "prompt" 함수를 재정의 해 봅시다.
구글링을 통해 Bash 스타일의 "prompt" 함수 예제를 찾을 수 있었습니다. 바로 아래 코드 입니다.
Function prompt {
"[$env:username@$([System.Net.Dns]::GetHostName()) $(Get-Location)]$ "
}
"[$env:username@$([System.Net.Dns]::GetHostName()) $(Get-Location)]$ "
}
코드를 실행 해 보니, 아래와 같이 표시 됩니다.
음~ 이제 Bash 스타일과 많이 비슷 해 졌는데.. 경로명 표시하는 부분이 마음에 들지 않네요.
제가 주로 사용하던 CentOS + Bash 조합의 기본 Prompt 는 경로명을 표시 할 때 전체 경로가 아닌 현재 작업 중인 디렉토리의 이름만 표시하게끔 되어 있습니다. "prompt" 함수를 고쳐서 현재 디렉토리의 이름만 표시 하도록 변경 하겠습니다.
Function prompt {
"[$env:username@$([System.Net.Dns]::GetHostName()) $((Get-Item (Get-Location)).Name))]$ "
}
"[$env:username@$([System.Net.Dns]::GetHostName()) $((Get-Item (Get-Location)).Name))]$ "
}
자, 아래와 같이 표시가 변경 되었습니다.
이제 친숙한 모습의 Prompt 를 사용 할 수 있게 되었습니다. 만족스럽네요.
자, 이제 마지막으로, Profile 파일에 이 함수를 추가 해서 PowerShell 실행 시 기본적으로 이 Prompt 를 쓸 수 있도록 해야 겠습니다.
먼저 현재 사용되고 있는 Profile 파일의 경로 및 살재 존재여부를 확인 해 봤습니다.
경로는 "C:\Users\ungs.SDS.000\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" 이고, 이미 존재 하는 파일 이네요.
Profile 파일을 열어서 새로 만든 prompt 함수를 추가 합니다.
메모장으로 추가 한 내용을 저장 하고, 새로운 PowerShell 창을 띄워서 잘 되는지 확인 할 차례입니다.
음! 잘 되는군요.
이제 익숙한 스타일의 Prompt 로 PowerShell 을 사용 할 수 있겠네요.
위 기록을 참고해서 여러분들도 각자 자신이 편한대로 Prompt 를 설정해서 사용해 보세요~!
<참고 문서>
Windows Power Shell 도움말 > Windows PowerShell About 도움말 항목 > about_Prompts
man "about_Prompts" -full
<참고 URL>
http://itnervecenter.com/content/make-your-windows-powershell-prompt-look-your-bash-prompt
'Powershell > 엉스데브' 카테고리의 다른 글
PowerShell 에서 사용 할 간단한 wget 명령어 (0) | 2010.07.26 |
---|---|
PowerShell 을 통해 IIS 관리하기(WebAdministration 모듈) (0) | 2010.07.26 |
PowerShell 스크립트 작성시 주석 달기 (0) | 2010.07.22 |
PowerShell 에서도 man 명령어 사용이 가능 하다? (0) | 2010.07.22 |
현재 선언되어 있는 변수(Variable)를 확인하는 여러가지 방법 (0) | 2010.07.22 |