PowerShell 시작하기
2019년 2월 6일에 씀
Profile
bashrc나 zshrc처럼 PowerShell 세션이 시작할 때 실행되는 파일. write $profile 명령어로 해당 파일을 찾을 수 있다.
write $profileEmacs 모드 설정
PSReadLine을 설정하여, 리눅스에서 쉘 작업할 때처럼 C-a, C-e, C-r 를 사용할 수 있다.
Set-PSReadLineOption -EditMode Emacs도움말
알고싶은 cmdlet에 대해 help cmdlet를 사용하여 정보를 얻는다.
help Get-ChildItem
알고싶은 cmdlet의 부분만 검색할 수 있다.
help child
-Examples 옵션이나 -Category 옵션을 주어 원하는 부분만 볼 수 있다.
help Where-Object -Examples
help Where-Object -Category AliasAlias
내가 알고있는 alias의 원본 cmdlet을 알고 싶을 때
Get-Alias -Name cd
내가 알고있는 명령어의 alias를 알고 싶을 때
Get-Alias -Definition Set-Location
PowerShell 변수
변수의 할당
$x = 3
$y = Get-Location변수의 출력
$x
$y변수의 함수 호출
$x.Equals($y)
$y.Path오브젝트의 프로퍼티/메쏘드들 출력
Get-Member -InputObject $xPowerShell 파이프
PowerShell은 unix의 Shell과는 다르게 Object를 파이프를 통해 건넨다.
$x | write
$x | Get-MemberForEach-Object
ForEach-Object를 사용하여 파이프로 받은 오브젝트(들)에 대해 원하는 명령을 실행할 수 있다.
Get-Location | ForEach-Object pathForEach-Object는 %로 대체할 수 있다.
Get-Location | % pathForEach-Object는 인자로 중괄호로 감싸여진 Script Block을 받을 수 있다. 이 때 $_ 변수가 각 엘리먼트이다.
30000, 56798, 12432 | ForEach-Object {$_/1024}Where-Object
Where-Object를 사용하여 리스트의 원하는 것만 골라낼 수 있다.
1,2,3 | Where-Object { $_ % 2 -eq 0 }Where-Object는 ? 로 alias되어있다.
1,2,3 | ? { $_ % 2 -eq 0 }Get-ChildItem | ? { $_.Name -like '*json' }