2010. 11. 2. 16:46

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이 설치된 디렉토리