PowerShell 이해 - 2
* 프로세스 종료
-> Get-Process # 프로세스 목록확인
Get-Process e* # e로 시작되는 프로세서 보기.
Get-Process -module processname # processname 에서 사용하는 dll 파일확인.
stop-process -name -processname #processname 중지하기.
* 컴퓨터 종료
-> Stop-Computer # 종료하기
Restart-Computer # 재시작하기
위에서 기재한것처럼 커멘드는 동사-명사의 형태로 되어 있고 파라미터는 - 로 시작합니다.
경로명에는 \과 / 를 모두 사용할수 있습니다. 커멘드의 명사는 복수형이 아닌 단수형으로 사용합니다.
process 와 같이 processes가 아닙니다.
동사 - 명사 구조
예)
Set-Date
Write-Debug
Get-Item
Get-WmiObject
경로명의 표시는 위에서 언급한대로 \과 /를 모두 사용가능하여 결과 같은 동일합니다.
PS C:\> Join-Path c:\ \temp
c:\temp
PS C:\> Join-Path c:/ /temp
c:\temp
커멘드 리스트를 보기위해 Get-Command를 사용하고, 커멘드의 사용법을 알기 위해서는 Get-Help 를 씁니다.
대략적인 커멘드 명령어는 다음 순으로 입력이 가능합니다.
Get-Command # 커멘드에 대한 모든 항목이 아타난다.
Get-Help Get-Member # 특정 커멘드의 사용법을 알려준다.
Get-Member -? # Get-Memvers 에 대한 도움말을 보여준다. 또는 -? 같은 파라미터를 전달할 수 있다.
Get-Help Get-Member -datailed # Get-Help에 -datailed 의 파라미터를 붙여 상세한 설명을 제공 받을수 있다.
Get-Help Get-Member -full # 더욱 보강된 설명을 얻고자 할때 .
Get-Command는 필요한 커멘드를 찾기위한 파라미터를 지원합니다.
예를 들명 Format 라는 단어가 들어간 것들을 찾고자 한다면 다음과 같이 입력합니다.
Get-Command *Format*
동사 Format 으로 시작되는 커멘드를 찾을수 있습니다.
Get-Command -verb Format 또는 Get-Command -verb Form*
유사하게 명사에 대해서도 적용 할 수 있습니다.
Get-Command -noun Alias
기본타입과 파서가 그것을 어떻게 인지 하는지 확인해보도록하겠습니다.
.Net에서 기본적으로 지원하는 타입은 모두 사용할수 있다고 보면되겠습니다.
간단한 변수 선언을 하도록하겠습니다. 변수 이름은 $로 시작하며 숫자를 다음과 같이 저장 할 수 있습니다.
PS C:\> $a=5
PS C:\> $a
5
GetType()을 호출하여 내장된 .Net 타입을 확인할 수 있습니다.
PS C:\> $a.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
다음은 여러가지 기본 타입에 대한 예를 생성한 것입니다.
대다수의 스크립트 언어와 마찬가지로 따옴표와 겹따옴표, @ 를 사용한 예를 확인 할 수 있습니다.
PS C:\> $b=3.1515926
PS C:\> $b
3.1515926
PS C:\> $b.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Double System.ValueType
PS C:\> $b.GetType().Name
Double
PS C:\> $d=1,2,3,"PowerShell"
PS C:\> $d
1
2
3
PowerShell
PS C:\> $d.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> $e=(1,2,3,(4,5,6))
PS C:\> $e
1
2
3
4
5
6
PS C:\> $h=1..5
PS C:\> $h
1
2
3
4
5
PS C:\> $myhash=@{'one'=1; 'two'=2; 'three'=3}
PS C:\> $myhash
Name Value
---- -----
two 2
three 3
one 1
PS C:\> $myhash['one']
1
PS C:\> $re=[regex]"abc[123]"
PS C:\> "abc1" -match $re
True
PS C:\> "abc4" -match $re
False
● $$ : 이전 줄의 마지막 토큰
● $? : 마지막으로 성공이나 실패한 상태
● $^ : 이전줄의 첫번째 토큰
● $pshome : PowerShell이 설치된 디렉토리