PowerShell์ด๋ž€?

๋ช…๋ น์ค„ shell, ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋จ. ์œˆ๋„์šฐ์˜ ๊ด€๋ฆฌ์ž‘์—… ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‹œ์ž‘๋จ.

๋ช…๋ น์ค„ shell์€ GUI๊ฐ€ ์•„๋‹Œ CLI๋ฅผ ์‚ฌ์šฉ. ์ฝ˜์†” ์‚ฌ์šฉ์˜ ์žฅ์ ์€..

  • GUI๋ณด๋‹ค ๋น ๋ฆ„
  • ๋ช…๋ น์˜ ์ผ๊ด„ ์ฒ˜๋ฆฌ โ†’ ์ž๋™ํ™”์— ์ ํ•ฉ
  • ํด๋ผ์šฐ๋“œ ๋ฆฌ์†Œ์Šค, ๊ธฐํƒ€ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ
  • ๋ช…๋ น, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ €์žฅ, ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
    • ๋ฐ˜๋ณตํ•˜๊ณ  ๊ฐ์‹œํ•  ์ˆ˜ ์žˆ์Œ.

๊ธฐ๋Šฅ

๊ธฐ์กด shell๊ณผ ์ผ๋ถ€ ๊ธฐ๋Šฅ๋“ค์„ ๊ณต์œ ํ•จ.

  • ๊ธฐ๋ณธ ์ œ๊ณต ๋„์›€๋ง
  • ํŒŒ์ดํ”„๋ผ์ธ: ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ์ฒด์—์„œ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๊ธฐ์กด shell๊ณผ ๋‹ค๋ฆ„.
  • ๋ณ„์นญ: cls(clear the screen), ls(lsit the files) ๋“ฑ์˜ ์ผ๋ฐ˜์ ์ธ ๋ณ„์นญ ์‚ฌ์šฉ.

๊ธฐ์กด๊ณผ ๋‹ค๋ฅธ ์ ๋“ค:

  • ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ์ฒด์—์„œ ์ž‘๋™ํ•จ.
    • ์ž…์ถœ๋ ฅ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•จ โ†’ ์ถœ๋ ฅ ์„œ์‹ ์ง€์ •, ๋ฐ์ดํ„ฐ ์ถ”์ถœ์— ์‹œ๊ฐ„ ์†Œ์š”๋จ.
    • ํ•˜์ง€๋งŒ PowerShell์€ ๊ฐœ์ฒด๋ฅผ ์ž…์ถœ๋ ฅ์œผ๋กœ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ์ ˆ์•ฝ ๊ฐ€๋Šฅ.
  • cmdlet
    • PowerShell์˜ ๋ช…๋ น์„ cmdlet์ด๋ผ ๋ถ€๋ฆ„.
    • ์‹คํ–‰ ํŒŒ์ผ์ด ์•„๋‹Œ ๋Ÿฐํƒ€์ž„์— ๋นŒ๋“œ๋จ โ†’ ๊ตฌ๋ฌธ ๋ถ„์„, ํŒŒ์ดํ”„๋ผ์ด๋‹์—์„œ ์ผ๊ด€์  ํ™˜๊ฒฝ ์ œ๊ณต
    • .NET Core๋กœ ๋นŒ๋“œ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค.
  • ๋‹ค์–‘ํ•œ ๋ช…๋ น
    • PowerShell ๋ช…๋ น์€ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ ํŒŒ์ผ, cmdlet, ํ•จ์ˆ˜, ์Šคํฌ๋ฆฝํŠธ, ๋ณ„์นญ์ผ ์ˆ˜ ์žˆ์Œ.
    • ๋ชจ๋“  ๋ช…๋ น์€ ์ด ์ค‘ ํ•˜๋‚˜๋‹ค.
    • cmdlet์€ ๋ช…๋ น์˜ ์œ ํ˜•์„ ์ง€์นญํ•˜๋ฏ€๋กœ โ€œ๋ช…๋ นโ€๊ณผ โ€œcmdletโ€์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๊ตํ™˜ํ•˜์—ฌ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.

์„ค์น˜

Windows 8 ์ด์ƒ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์Œ. ์ด ์™ธ์—๋Š” ๋”ฐ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•จ. VSCode์—์„œ๋Š” PowerShell ํ™•์žฅ์ด ์žˆ์œผ๋‹ˆ ์“ฐ๋Š”๊ฒŒ ์ข‹์Œ.

์—ฐ์Šต - ์ฒซ PowerShell ๋ช…๋ น ์‹คํ–‰

Azure Cloud Shell์—์„œ PowerShell๋กœ ์ „ํ™˜ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ„. PSVersionTable ๋ช…๋ น์–ด๋กœ PowerShell ์‚ฌ์šฉ์ด ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์ž. PowerShell ๋ฒ„์ „, ํ”Œ๋žซํผ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ œ๊ณต๋จ.

๋ช…๋ น ์ฐพ๊ธฐ

cmdlet์€ ์ปดํŒŒ์ผ ๋œ ๋ช…๋ น์–ด์ž„. ๋™์‚ฌ - ๋ช…์‚ฌ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•จ. Get-Verb ๋ช…๋ น์–ด๋กœ ์Šน์ธ๋œ ๋™์‚ฌ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Œ. ์•„๋ž˜๋Š” ์ถœ๋ ฅ์˜ ์ผ๋ถ€์ž„.

Verb        AliasPrefix Group          Description
----        ----------- -----          -----------
Add         a           Common         Adds a resource to a container, or attaโ€ฆ
Clear       cl          Common         Removes all the resources from a contaiโ€ฆ

๋™์‚ฌ์™€ ์„ค๋ช…์ด ์ถœ๋ ฅ๋˜๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Œ. ์Šน์ธ๋œ ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ๋™์‚ฌ์— ๋Œ€ํ•œ ์„ค๋ช…์ด cmdlet์˜ ํ•จ์ˆ˜์— ์ ํ•ฉํ•œ์ง€ ํ™•์ธํ•ด์•ผ ํ•จ.

  • Get-Command: ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  cmdlet์„ ๋‚˜์—ด.
  • Get-Help: ๊ธฐ๋ณธ ์ œ๊ณต ๋„์›€๋ง. ๋ณ„์นญ์ธ help๋กœ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ Get-Help๊ฐ€ ํŽ˜์ด์ง€๋กœ ์ถœ๋ ฅํ•ด์„œ ๋” ํŽธํ•จ.
  • Get-Member: ๋ช…๋ น์— ๋Œ€ํ•œ ์‘๋‹ต์€ ๋งŽ์€ ์†์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์ž„. Get-Member๋กœ ์†์„ฑ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ.

Get-Command๋กœ ๋ช…๋ น ์ฐพ๊ธฐ

cmdlet์ธ Get-Command๋กœ PowerShell์˜ ๋ชจ๋“  ๋ช…๋ น ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Œ. ๊ทผ๋ฐ ๋ช…๋ น์–ด๊ฐ€ ํ•œ๋‘˜์ด ์•„๋‹Œ ์ˆ˜์ฒœ๊ฐœ๋‹ˆ๊นŒ ์ด๊ฑธ ํ•„ํ„ฐ๋ง ํ•  ์ค„ ์•Œ์•„์•ผ ํ•จ.

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋™์‚ฌ-๋ช…์‚ฌ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์–ตํ•ด์•ผํ•จ. Get-Command๋„ ๊ทธ๋ ‡๊ณ , Get-Random์˜ ๊ฒฝ์šฐ์—๋„ ๋™์‚ฌ-๋ช…์‚ฌ ๊ตฌ์กฐ์ž„. ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›ํ•˜๋Š” ๋ช…๋ น์˜ ๋™์‚ฌ/๋ช…์‚ฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ. ์ฐพ์„ ๋•Œ๋Š” ๋ฌธ์ž์—ด ๊ฐ’์ด ํ•„์š”ํ•œ๋ฐ.. ํŒจํ„ด์„ ํ†ตํ•ด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ํŒจํ„ด? 3. Bash ์†Œ๊ฐœ์—์„œ ๋ฐฐ์› ๋˜ ๊ทธ ํŒจํ„ด(์™€์ผ๋“œ์นด๋“œ) ๋งž์Œ.

์˜ˆ๋ฅผ ๋“ค์–ดโ€ฆ

  • -Noun: ๋ช…์‚ฌ์ธ ๊ฒ€์ƒ‰์–ด์™€ ๊ด€๋ จ๋œ ๋ช…๋ น ์ฐพ๊ธฐ. ์•„๋ž˜๋Š” ๋ช…์‚ฌ ๋ถ€๋ถ„์ด alias๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  cmdlet ๊ฒ€์ƒ‰ํ•จ.
Get-Command -Noun alias*
  • -Verb: ๋™์‚ฌ์ธ ๊ฒ€์ƒ‰์–ด์™€ ๊ด€๋ จ๋œ ๋ช…๋ น ์ฐพ๊ธฐ. ์•„๋ž˜๋Š” ๋™์‚ฌ ๋ถ€๋ถ„์ด Get์ด๊ณ  ๋ช…์‚ฌ ๋ถ€๋ถ„์ด alias๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒ€์ƒ‰.
Get-Command -Verb Get -Noun alias*

์—ฐ์Šต - ๋ช…๋ น ์ฐพ๊ธฐ

ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์–ด๋ฅผ ์ฐพ๊ณ ์‹ถ์Œ. ๊ทธ๋Ÿฌ๋ฉด โ€œ๋ช…์‚ฌ ๋ถ€๋ถ„์ด File๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ดโ€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?

Get-Command -Noun File*

์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ์š”๋กท๊ฒŒ ๋œจ๋„ค.

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-FileHash                                       7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Out-File                                           7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Unblock-File                                       7.0.0.0    Microsoft.PowerShell.Utility

์ด์ œ ๋™์‚ฌ ๋ถ€๋ถ„๋„ ํ•„ํ„ฐ๋งํ•ด๋ณด์ž.

Get-Command -Verb Get -Noun File*

Get ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋Š” Get-FileHash๊ฐ€ ์žˆ๋‹ค๊ณ  ๋œธ. ์š”๋กœ์ฝ”๋กฌ ํ•˜๋Š”๊ฑฐ๋‹ค.