Powershell: ๋ณ„์นญ ํŒŒ์•…

์— ๋งŒ๋“  2016๋…„ 04์›” 28์ผ  ยท  64์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PowerShell/PowerShell

Linux ๋ฐ OS X์™€ โ€‹โ€‹์ถฉ๋Œํ•˜๋Š” PowerShell ๋ณ„์นญ์€ # 786, ํŠนํžˆ ์ปค๋ฐ‹ 7d9f43966์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ณ„์นญ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค์ด๋ฅผ ๋” ์ž˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋…ผ์˜๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Issue-Discussion OS-Linux OS-macOS Resolution-Fixed Usability WG-DevEx-Portability

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ be5invis ์ด๊ฒƒ์€ PowerShell์—์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค. ์ง๊ตํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธด ์ด๋ฆ„ ๋งŒ ์žˆ์œผ๋ฉฐ ์งง์€ ์ด๋ฆ„ ๋Œ€์‹  ๋ช…ํ™•ํ•˜๊ฒŒ ์œ ์ง€๋˜๋Š” ํ•œ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ถ•์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ fr ๋ณ„์นญ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ‘์ž๊ธฐ -Recurse ๋ฅผ ๋” ์ด์ƒ -r ๋กœ ์ค„์ผ ์ˆ˜ ์—†์ง€๋งŒ ๋Œ€์‹  ์ œ์•ˆ ๋œ -rf ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์ถฉ๋Œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด -re ๊ฐ€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ชฝ์—์„œ๋„ ๋™์ผํ•œ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ„๋„๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋น„๋ก ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ Unix ๋„๊ตฌ๋กœ ์ž‘์—…ํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€์žฅํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์ฝ”๋“œ ์›์น™ ๋ฐ ๊ทœ์น™์„ ์ƒ๋‹นํžˆ ํฌ๊ฒŒ ์œ„๋ฐ˜ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์งง๊ณ  ๊ธด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” GNU ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ทœ์น™์€ ๋ณดํŽธ์ ์ด์ง€ ์•Š์œผ๋ฉฐ tar ๋˜๋Š” find ์™€ ๊ฐ™์ด ์ž˜ ํ™•๋ฆฝ ๋œ ๋งŽ์€ ๋„๊ตฌ๊ฐ€์ด๋ฅผ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„๊ทธ ์ถ”์ ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ํŒ”์งฑ์„ ๋ผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์€ ํ•ญ์ƒ ์•ฝ๊ฐ„ ์”ฉ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ˆ˜์‹ญ์–ต ๊ฐœ์˜ ๋‹ค๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ, ๊ฐ‘์ž๊ธฐ ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ๊ฐ–๊ฒŒ๋˜๋Š” ๊ฒƒ (๋ถ„๋ช…ํžˆ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ์ž์ฒด๋กœ ๋งŽ์€ ๋‹ค๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จํ•˜๋ ค๊ณ  ์‹œ๋„ ํ•จ)์€ ๋„ˆ๋ฌด ๋‹นํ™ฉ์Šค๋Ÿฝ๊ณ  ๋ฌธ์ œ๊ฐ€์žˆ์–ด์„œ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค : ์ปดํ“จํ„ฐ์˜ ์…ธ์€ ์‚ฌ์šฉ์ž์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ณ„๋ช… ๋ช…์œผ๋กœ rm ์— rm -i ์ž์‹ ์˜ ํŽธ์•ˆํ•จ์„ ์œ„ํ•ด, ๊ฑฐ๊ธฐ ์ œ๊ฑฐ์—์„œ ๋‹น์‹ ์„ ๋ฐฉ์ง€ ์•„๋ฌด๊ฒƒ๋„ rm ๋ณ„์นญ๊ณผ ๊ธฐ๋Šฅ ํฌ์žฅ์ด Remove-Item ๋ผ๋Š” rm ์™€ -rf ๋งค๊ฐœ ๋ณ€์ˆ˜.

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  Unix ๋„๊ตฌ๋ฅผ ์™„์ „ํžˆ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์ „์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ƒ๋‹นํžˆ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  64 ๋Œ“๊ธ€

์ด๊ฒƒ์€ globbing์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— rm , ls ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

> touch blah.tmp
> ls *.tmp                                                                                                          
ls: *.tmp: No such file or directory
> Get-ChildItem *.tmp

    Directory: /Users/andrew/src/PowerShell


Mode                LastWriteTime         Length Name                                                                                 
----                -------------         ------ ----                                                                                 
------           5/3/16   8:39 PM              0 blah.tmp

> rm *.tmp
rm: *.tmp: No such file or directory
> Remove-Item *.tmp
> Get-ChildItem *.tmp

์–ด์ฉŒ๋‹ค.

์‚ฌ์šฉ์„ฑ ๋™๊ธฐํ™”๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณ„์นญ์—†์ด ๋Œ€ํ™” ํ˜• ํ™˜๊ฒฝ์ด ์ข‹์ง€ ์•Š๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋™์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋ณธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋˜์–ด์•ผํ•˜๋Š” ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ํ”Œ๋กœํŒ… ๋œ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • * nix ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ถฉ๋Œํ•˜๋Š” ๋ชจ๋“  ๋ณ„์นญ์„ ๋„๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜
  • ๊ธฐ๋ณธ PATH์— ์ž๋™์œผ๋กœ ํฌํ•จ๋˜๋Š” ๋‹จ์ผ ๋ฌธ์ž (์˜ˆ ^ )
  • ์‚ฌ๋žŒ๋“ค์—๊ฒŒ bash -c ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. (๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ž๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.)
  • ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค (์ด ๊ฒฝํ—˜์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๋ฏธ ์ž‘๋™ํ•˜์ง€๋งŒ ๋งค์šฐ ์ข‹์ง€ ์•Š์Œ).
  • ์ถ”๊ฐ€ ์ œ์•ˆ : "ํžŒํŒ… ํ•˜์œ„ ์‹œ์Šคํ…œ"์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ * nix ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์„ ์ˆ˜๋„ ์žˆ์Œ์„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ฆฌ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋ช…๋ น์ด ์‹คํŒจ ํ•  ๋•Œ๋งŒ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ๋ฅผ ๋“ค์–ด rm -e ๋Š” ์‹คํŒจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

๋‚˜๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์กฐ๋งŒ๊ฐ„ ์•Œ์•„ ๋‚ด๊ณ  ์‹ถ์€ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— v0.5.0์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ๋ชจ๋“œ๋ฅผ ์ „ํ™˜ํ•˜๋Š” PowerShell ์„ค์ •์ด ๊ฐ€์žฅ ์ข‹์€ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

@andschwa ๋ฐ ๊ธฐ๋ณธ๊ฐ’์€ ....?

@vors ๋‚ด _personal_ ์˜๊ฒฌ : PowerShell ๋ณ„์นญ์ด ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PowerShell์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์–ด์จŒ๋“  PowerShell์— ๋Œ€ํ•œ ์ตœ์ดˆ ์‹œ์ž‘ "์‹œ์ž‘"๊ฐ€์ด๋“œ๋ฅผ ์›ํ•  ๊ฒƒ์ด๋ฉฐ ์ด๊ฒƒ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ค์ •์ด๋ผ๊ณ  ๋ช…์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@BrucePay์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ค๋Š˜ ์‚ฌ์šฉ์„ฑ ๋™๊ธฐํ™”๋Š” ๋ณ„์นญ์„ ๋‹ค์‹œ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค๊ณ  ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ( sort ๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๊ฒƒ์€ PS ๊ฒฝํ—˜์ด ์™„์ „ํžˆ ์†์ƒ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.)

Bruce๋ฅผ ์–‘์ˆ˜์ธ์œผ๋กœ ๋‚จ๊ฒจ๋‘๊ณ  ์œ„์˜ ์™„ํ™” ์กฐ์น˜๋ฅผ ํ†ตํ•ด ์ตœ์„ ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. @andschwa : ๋ณ„์นญ์„ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ @jpsnover ์™€ ๋Œ€ํ™”๋ฅผ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋งค์šฐ ๋ถ„๋ช…ํžˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ ํŽธ์ง€ํ•จ aliases.ps1 ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋„ํŠธ ์†Œ์‹ฑ์„ ํ™๋ณดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

bash์˜ ls ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ˆœํžˆ ls ๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ถ€ ๊ธฐ๋ณธ ์ธ์ˆ˜๊ฐ€์žˆ๋Š” ๋ณ„์นญ์ด๋ฉฐ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ„์นญ์ด๋ผ๋Š” ์ ์„ ์ง€์  ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

PowerShell ๋ณ„์นญ์€ Linux์˜ ๋ณ„์นญ์ฒ˜๋Ÿผ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ls ๋ฅผ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•˜๊ฑฐ๋‚˜ bash ๋ณ„์นญ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ๋ณ„์นญ์„ ๊ฐœ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ๋ชจ๋“ˆ์„ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜์—ฌ ๋ณ„์นญ์ด ์ œ๊ฑฐ ๋œ ์ƒํƒœ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“ˆ ์ˆ˜๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€์น˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sort ๊ฐ€ ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณ„์นญ์€ ์˜ค๋Š˜์— ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 8 ์›” 17 ์ผ์— ์‚ฌ๋žŒ๋“ค์ด ์ฐธ์—ฌํ•  ๋ณ„์นญ ์ƒํ™ฉ์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ๊ฑด์ „ํ•œ ํ† ๋ก ์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐ์‹œํ‚ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋‚ด 2p-PSv3์— ๋„์ž… ๋œ $ PSModuleAutoLoadingPreference์™€ ์œ ์‚ฌํ•œ ์ƒˆ๋กœ์šด PowerShell ์„ค์ • ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœํ•„์—์„œ์ด๋ฅผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (PS๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰๋˜๋Š” ์ผ๋ถ€ ๋ช…๋ น์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ•จ๊ป˜ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Œ). ์ข‹์€ ๋ณ„์นญ

์ถ”์ฒœ ์ด๋ฆ„ $ PSUsePowerShellAliases ๋ฐ ๋ช…์‹œ ์ ์œผ๋กœ true๋กœ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ (ํ”„๋กœํ•„ ๋‚ด์—์„œ ๋˜๋Š” ๋Œ€ํ™” ํ˜•์œผ๋กœ) ํ‘œ์ค€ * nix ๋ณ„์นญ์ด ์ œ์ž๋ฆฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด์ „์— ํ•ด๋ณด์ง€ ์•Š์•˜์„ PowerShell๋กœ ๋ฌผ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋” ๋‚˜์€ UX๋ฅผ ์ œ๊ณต ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด.

๊ทธ๋“ค์ด ์•„๋Š” ๊ฒƒ์„ ๋นผ์•—์ง€ ์•Š๊ณ 

๋ฌผ๋ก . ํƒ€ํ˜‘์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Linux Bash ์‚ฌ์šฉ์ž, ์ฆ‰ ์ž ์žฌ์  ์ธ ์ƒˆ๋กœ์šด PowerShell ์‚ฌ์šฉ์ž๋ฅผ ์„ ํ˜ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ PowerShell ์ถฉ์‹คํ•œ ์‚ฌ๋žŒ๋“ค์€ * nix ๋ณ„์นญ์„ ์ถฉ๋ถ„ํžˆ ์‰ฝ๊ฒŒ ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ด๋‹น ๋ณ„์นญ์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ด์ œ Linux์— PowerShell์ด โ€‹โ€‹์žˆ์œผ๋ฏ€๋กœ PowerShell Core์˜ ๋ชจ๋“  OS ๋ฒ„์ „์—์„œ ์ œ๊ฑฐ ๋œ ๊ธฐ๋ณธ ์ œ๊ณต * nix ๋ณ„์นญ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ธฐ๋ณธ ์ œ๊ณต PowerShell ๋ช…๋ น๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๋ณ„์นญ์ด ๋‚จ๊ฒŒ๋˜๋ฉฐ "์†์ด๋Š”"์‹œ๋„๋ฅผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Linux์˜ ps์—์„œ ๊ณตํ†ต ๋ณ„์นญ์„ ์ œ๊ฑฐํ•˜๋Š” ํŒฌ์ž…๋‹ˆ๋‹ค. Keith๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Windows์—์„œ์ด ๋ฌธ์ œ๋ฅผ "์ˆ˜์ •"ํ•˜๋Š” ํŒฌ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋‚ด ์ฃผ์žฅ์€ Linux ์‚ฌ์šฉ์ž๋ฅผ PowerShell๋กœ ์ด๊ธฐ๊ณ  Windows์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ๊ณตํ†ต ๋ณ„์นญ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Linux ๋ณ„์นญ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ธ PSReadline์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋ฅผ ์œ„ํ•ด ํ•จ์ˆ˜์— ์งง์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ•ญ์ƒ LS ๋จผ์ € ์ž…๋ ฅํ•˜๊ณ  Get-ChildItem ๋Œ€ํ•œ PowerShell LS ๋ณ„์นญ์ฒ˜๋Ÿผ ์ž‘๋™ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PowerShell์˜ ๋™์ž‘์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ํ‘œ๋ช…ํ•˜์‹ญ์‹œ์˜ค.

@kilasuit , @rkeithhill ๋ฐ @ 1RedOne ์ด ๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Linux ๋ฐ macOS์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์ง€๋งŒ ๋™์‹œ์— ์ฝ˜์†”์ด๋‚˜์—์„œ ์‰ฝ๊ฒŒ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ.

๊ธฐ์กด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ์ด ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ฆ‰์‹œ ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์งง์€ ์ด๋ฆ„์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค.

์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚จ-๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ PowerShell์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•œ ๊ธฐ๋Œ€ ์ด์ƒ! ๐Ÿ˜„

์ฆ‰ ์ „ํ˜€ PSReadline๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” @juneb ๊ฐ™์€ ์‚ฌ๋žŒ๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ PSReadLine์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๋ณด๋‹ค PS ๋ณ€์ˆ˜๋กœ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒํ•˜์ง€๋งŒ ์ „ํ˜€ ๊ฐ€๋Šฅ์„ฑ์ด์žˆ๋Š” ๊ฒฝ์šฐ PSReadLine์— ๊ด€ํ•œ ๊ฒƒ์€ ๋‹ค์Œ @lzybkr ์ œ์•ˆ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค

ํŠน์ • ๋ณ„์นญ์„ PowerShell cmdlet์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด PSReadline์— ๋Œ€ํ•œ ์ƒ˜ํ”Œ์„ ํ™•์‹คํžˆ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์ƒ˜ํ”Œ์€ https://github.com/lzybkr/PSReadLine/blob/master/PSReadLine/SamplePSReadlineProfile.ps1#L354๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฑด ์ง„์งœ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์€๋ฐ ..

์ œ ์ƒ๊ฐ์— ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ์Šคํฌ๋ฆฝํŠธ ์ด์‹์„ฑ๊ณผ ์นœ์ˆ™ ํ•จ ์‚ฌ์ด์˜ ์ถฉ๋Œ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ์ง€์นจ์„ ์ œ๊ณตํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ผ๋ฐ˜์ ์ธ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ณ„์นญ์€ ๋‹ค๋ฅธ ๋ณ„์นญ๋ณด๋‹ค ๋ฌธ์ œ๊ฐ€ ๋” ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด sort ls ๋Š” ์Šคํฌ๋ฆฝํŠธ์—์„œ ps ๋˜๋Š” ls ๋ณด๋‹ค ๋งŽ์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ๋ณ„์นญ์„ ๋‹ค์‹œ ๊ฐ€์ ธ ์˜ค๊ธฐ ์œ„ํ•ด ๋ฐฉ๊ธˆ ๊ฐ€์ ธ์˜จ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์— ๋Œ€ํ•ด ํ™•์‹คํžˆ ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์•„์ง ์•„๋ฌด๊ฒƒ๋„ ๊ฒฐ์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์›์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  PowerShell ๋ช…๋ น์„ ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ bash ์‚ฌ์šฉ์ž๊ฐ€ PowerShell์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๋“ํ•˜๋Š” ๋ฐ ํ™•์‹คํžˆ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž, ์—ฌ๋Ÿฌ๋ถ„, ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ ํŒŒ์ผ์— ๊ธ€ ๋กœ๋น™ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„๊นŒ์š”? ๊ทธ๋Ÿฌ๋ฉด ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์ด PowerShell์„ ๋” ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ # 954.

์ฐฝ์„ ๊ฑฐ์˜ ๋งŒ์ ธ๋ณธ ์ ์ด์—†๋Š” * nix ์‚ฌ์šฉ์ž๋กœ์„œ ์ €๋Š” ๋ณ„์นญ์„ ๋‚จ๊ฒจ ๋‘๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฐ•๋ ฅํ•œ ํˆฌํ‘œ๋ฅผํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋…„๊ฐ„์˜ ๊ทผ์œก ๊ธฐ์–ต์„ ํ†ตํ•ด ls , rm ์‚ฌ์šฉ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค

๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋ฉด ์ •์ •ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋‚˜ Windows์—์„œ dir ์™€ ๋‹ค๋ฅธ๊ฐ€์š”? Windows์˜ PS์—์„œ dir ๋Š” dir.exe ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Get-ChildItem ์ž…๋‹ˆ๋‹ค. * nix์—์„œ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์™œํ•ด์•ผ ls ์ˆ˜ /bin/ls ๋Œ€์‹  Get-ChildItem ?

@Gaelan ๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”์ ์„ ์–ป์—ˆ์ง€๋งŒ Windows์—๋Š” dir.exe ํŒŒ์ผ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. dir ๋Š” bash ๋‚ด์žฅ๊ณผ ์œ ์‚ฌํ•œ cmd ๋ช…๋ น ํ”„๋กœ์„ธ์„œ์˜ ๋‚ด๋ถ€ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. PowerShell์ด โ€‹โ€‹์™ธ๋ถ€ dir.exe ๋ช…๋ น์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด (ํ•˜๋‚˜) ์ด์œ  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Gaelan , @ForNeVeR : cmd-built-ins๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œํ•˜์ง€ ์•Š์ง€๋งŒ Windows์—์„œ๋„ ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ๊ณผ ์ถฉ๋Œํ•˜๋Š” PowerShell ๋ณ„์นญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋‚˜๋Š” ์ด๋ก ์ ์œผ๋กœ ๋ชจ๋“  ๋‹จ์ผ ๋ณ„์นญ ( ? ์™€ ๊ฐ™์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์กด์žฌํ•  ์ˆ˜์—†๋Š” ๋ณ„์นญ ์ œ์™ธ)์ด ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ์„ ์„€๋„ ์ž‰ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„์นญ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ํ•ญ๋ชฉ์„ ์†์ƒ ์‹œํ‚ค์ง€๋Š” _ ์•Š๋Š” _ ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

PS> gal|?{gcm "$_.exe" -ea 0}

CommandType     Name
-----------     ----
Alias           fc -> Format-Custom
Alias           sc -> Set-Content
Alias           sort -> Sort-Object
Alias           where -> Where-Object
Alias           write -> Write-Output

๋”ฐ๋ผ์„œ ์œ ์ผํ•œ _safe_ ๊ฒฝ๋กœ๋Š” ๋ณ„์นญ์„ ์ „ํ˜€ ๊ฐ–์ง€ ์•Š๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ชฉ์ ์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜์‹ฌ ํ•  ์—ฌ์ง€์—†์ด ๊ธฐ๋ณธ ๋ณ„์นญ์ด ๊ฐ€์žฅ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์—ฌ๊ธฐ์—๋Š” ์ข‹์€ ๋Œ€๋‹ต์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๋ณ„๋ช…์„ ๋‚จ๊ฒจ ๋‘๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํƒ์ƒ‰ ๋ฐ ์ผ๋ฐ˜ ์‰˜ ์‚ฌ์šฉ์„ ๋” ๋น ๋ฅด๊ณ  ํŽธ์•ˆํ•˜๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด PowerShell ์‚ฌ์šฉ ํ™˜๊ฒฝ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  ๋‚ด์žฅ Linux ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ•„ ์„ ํ˜ธ๋„์ผ๊นŒ์š”?

์—ฌ๊ธฐ์˜ ์—ญ์‚ฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋™๋“ฑํ•œ ๋น„ Windows ๋ช…๋ น์— ๋งคํ•‘๋˜๋Š” ๋ณ„์นญ์— ๋Œ€ํ•œ UX ๊ด€์ ์—์„œ ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ค๋žซ๋™์•ˆ ์ง€์†๋˜์–ด ์˜จ PowerShell ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. cmd์˜ dir ๋˜๋Š” ls ํ•„์ ํ•˜๋Š” ๋ช…๋ น์ด ์—†๋‹ค๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์€ ๋งค๋ฒˆ "ํ•˜์ง€๋งŒ ๋ณ„์นญ์ด ์žˆ์Šต๋‹ˆ๋‹ค!"์ž…๋‹ˆ๋‹ค.

๋ณ„์นญ์€์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ฉฐ ๊ฒฐ์ฝ” ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. dir ๋ฐ ls ๋ณ„์นญ์€ dir ๋ฐ ls ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. wget ๋ฐ curl ๋ณ„์นญ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋ณ„์นญ์— ๋Œ€ํ•œ ์ „์ฒด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์žฌ๊ณ ํ•ด์•ผํ•˜๋ฉฐ ์ด๋Š” ์ค‘๋Œ€ํ•œ ๋ณ€ํ™”๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์ •์˜ ๋ณ„์นญ์ด PATH์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•œ 2 ๋“ฑ๊ธ‰ ์‹œ๋ฏผ์ด ๋  ์ˆ˜์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Linux์—์„œ * nix ๋ณ„์นญ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋ฉด OS X๊ฐ€ ์ˆ˜ํ–‰ ํ•  ์ž‘์—…์„ ์•Œ์•„๋‚ผ ๋•Œ๊นŒ์ง€ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ :์ด ์ž‘์—…์ด ์ด๋ฏธ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ์™„๋ฃŒ๋œ @okket . ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ์ง€ ๋…ผ์˜ ์ค‘์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ํ”„๋กœํ•„์—์„œ ์†Œ์‹ฑ ํ•  ์ˆ˜์žˆ๋Š” ํŒŒ์ผ์— ๋ชจ๋“  ๋ณ„์นญ์„ ๋„ฃ์€ ๋‹ค์Œ ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ๋ณ„ ํ”„๋กœํ•„์„ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

bash-aliases.ps1
dos-aliases.ps1
initial-aliases.ps1

๋‹ค๋ฅธ ๊ฒƒ์ด ์—†๋‹ค๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ์งง์€ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ƒ๊ธฐ์‹œ์ผœ์ค๋‹ˆ๋‹ค.

์˜ PowerShell์„์˜ ๋ณ„์นญ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  _do_ ๊ฒƒ์„ ๋ช…๋ น ๋ฐ ์žฌ์ •์˜ ๋ช…๋ น์„ ํ™•์ธ ์ˆœ์„œ๋ฅผํ•˜์ง€ ์•Š๋Š” (@sleepypikachu)์„ ์žŠ์ง€ ๋ง์ž. Bash์˜ alias ๊ธฐ๋Šฅ์—๋Š” PowerShell์—์„œ _functions_๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@Gaelan ๊ท€ํ•˜์˜ ๊ทผ์œก ๊ธฐ์–ต์€ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋„๋กํ•˜์ง€๋งŒ ์‹ค์ œ ๋ช…๋ น๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๋™์ž‘์— ์‹ค๋ง ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ์ง„์งœ ๋ฌธ์ œ์ด๋ฉฐ @DrPizza ๊ฐ€ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์˜ˆ๋Š” _dir / s_์ž…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ PowerShell์—์„œ ์‹คํŒจํ•˜๋ฏ€๋กœ dir -recurse๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” ์‹ค์ œ๋กœ ์„ธ ๊ฐ€์ง€ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ๋ณ„์นญ์ด ์•„๋‹™๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  ๊ธฐ๋ณธ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋˜๋Š” ๋™์ž‘์ด PowerShell CmdLet์— ๋งคํ•‘๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
  3. ๋ณ„์นญ์ด์žˆ๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” # 1์ด ๋ฌธ์ œ๊ฐ€ ๋„ˆ๋ฌด ๋‚˜์˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ณ„์นญ์ด ์ง€์ •๋˜๋ฉด ์ƒํ™ฉ์„ ์•…ํ™”์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Dir -recurse๋Š” ์–ด์จŒ๋“  dir / s๋ณด๋‹ค ๋” ์ฝ๊ธฐ ์‰ฌ์šด ๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ฉด Windows์—์„œ Linux๋กœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ผ๊ด€์„ฑ์ด ์—†๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

2 ๋ฒˆ๊ณผ 3 ๋ฒˆ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” curl์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Invoke-WebRequest๋กœ ์ธํ•ด curl์ด ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ธฐ๋Œ€ํ•˜๋Š” ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์—์„œ ๊ธฐ์–ตํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

๋‹จ๊ธฐ์ ์œผ๋กœ๋Š” ๊ตฌ์„ฑ ์˜ต์…˜๊ณผ ๋ณ„์นญ์ด ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ ๋„ค์ดํ‹ฐ๋ธŒ ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ชจ๋‘ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ ํ™œ์„ฑํ™” ๋œ ์ƒํƒœ๋กœ ๋‘ก๋‹ˆ๋‹ค. Linux์—์„œ PowerShell ....์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  CmdLets๋ฅผ ํ•™์Šต ํ•  ์ˆ˜ ์žˆ๋„๋ก PowerShell๋กœ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Linux ๋ฐ Perl ๋ฐฐ๊ฒฝ์ด์žˆ๋Š” ๋™๋ฃŒ๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์— ํ•„์š”ํ•œ cmd๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ์—๊ฒŒ ํ•ต์‹ฌ์ด์—ˆ๋˜ ๊ฒƒ์€ grep, ls, man์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. man์„ ์‚ฌ์šฉํ•˜๋ฉด cmd๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๊ธฐ์ ์œผ๋กœ ๋„ค์ดํ‹ฐ๋ธŒ cmdlet์— ์ ์šฉ ๋ฒ”์œ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ๋ช…๋ น์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ธฐ๋Šฅ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ด๋Š”๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•˜์—ฌ Windows ๋ฐ Linux ์šฉ PowerShell์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋น„ํ—ค์ด๋น„์–ด๋Š” ์—ฌ๋Ÿฌ CmdLet์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ฐœ์ฒด ๋ฐ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์ง€๋งŒ ์ด๋Š” ๋Œ€๋‹จํ•œ ์ผ์ž…๋‹ˆ๋‹ค! ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด PowerShell์˜ ์š”์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

๋‚ด ์˜๊ฒฌ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. PowerShell์— ๋ณ„์นญ ์—†์Œ (์„ ํƒ ๋“ฑ ์ œ์™ธ, ํ•„์ˆ˜ ํ•ญ๋ชฉ ์ž„), Windows PowerShell์˜ ๋ณ„์นญ.

์˜ต์…˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์ง€๋งŒ ๋ชจ๋“  ๋ณ„์นญ์„ ์˜ต์…˜์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‰ฝ๊ฒŒ Where-Object๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— dir์— ls ๋ณ„์นญ์„ ๊ฐ–๋Š” IMHO๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ˆ˜๋…„ ๋™์•ˆ Linux ์‚ฌ์šฉ์ž์˜€์œผ๋ฉฐ dir์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์€ ls๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ ํผ ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๊ด€์„ฑ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ๋ณ„์นญ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ OS์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ๋‚˜๋ฅผ ๊ดด๋กญ ํž™๋‹ˆ๋‹ค. * nix์—์„œ PS๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์š” ํฌ์ธํŠธ ์ค‘ ํ•˜๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ ์ง€์›๋˜๋Š” ํ”Œ๋žซํผ์˜ PowerShell์—์„œ ๋ณ„์นญ์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด Windows์—์„œ๋„ ์ œ๊ฑฐํ•ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, PS๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ„์นญ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ์ง€์›ํ•˜์ง€๋งŒ, ์•„๋ž˜์˜ ์‹ค์ œ ๊ธฐ๋Šฅ์€ ์ž…๋ ฅ ์ง€์›์„ ์ œ์™ธํ•˜๊ณ  ์›๋ž˜ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๊ธฐ๋Šฅ (๋ฐ ๋งค๊ฐœ ๋ณ€์ˆ˜ ํ˜ธํ™˜์„ฑ)์„ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.
์œ ํ˜•์ด์—†๋Š” PowerShell์€ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์‹œ์Šคํ…œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์œ ๋‹‰์Šค ๋„๊ตฌ ์ฒ ํ•™์„ ์ฑ„ํƒํ•˜๋ฉด ์ฑ„ํƒ์ด ์ด‰์ง„๋ฉ๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ์ƒ์ ์—์„œ ๋ฐ๋ธŒ ์˜ต์Šค๋ฅผํ•˜๋Š” ์‚ฌ๋žŒ์œผ๋กœ์„œ, ๋‚˜๋Š” ์ผ๋ฐ˜์ ์ธ ์œ ๋‹‰์Šค ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€์ด ๊ตฌํ˜„์—์„œ ์–ด๋Š ์ •๋„ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. * ๋ฌธ์ž ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ * nix ์ชฝ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ * nix ์‰˜ ๊ธ€๋กญ์„ ํ‘œ์‹œ ํ•  ๋•Œ * nix ์‰˜ ๊ธ€๋กญ์„ ํ‘œ์‹œ ํ•  ๋•Œ * nix ์ชฝ์˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ˜„์žฌ powershell์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋Œ€์กฐ์ ์œผ๋กœ ํŽธํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค | ํŒŒ์ผ ์‚ฌ์ด๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์˜ฅํ…Ÿ ์ŠคํŠธ๋ฆผ ๋Œ€์‹  ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํŒŒ์ดํ”„๋Š” ๊ฒŒ์‹œ ๋œ ํ‘œ์ค€์— ์œ„๋ฐฐ๋˜๋ฉฐ ์ฑ„ํƒ์„ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค. http://pubs.opengroup.org/onlinepubs/009695399/functions/pipe.html

@ be5invis ์ฐธ๊ณ  : ์•„๋ฌด๋„ PowerShell์—์„œ ์œ ํ˜•์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . gci ๋ฐ Get-ChildItem ๋Š” Windows PowerShell๊ณผ Linux PowerShell ๋ชจ๋‘์—์„œ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ls -> Get-ChildItem ์™€ ๊ฐ™์€ ๋‚ด์žฅ ๋ณ„์นญ์ด Linux์— ์กด์žฌํ•ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. Get-ChildItem ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ ๋Š” ls ๋˜๋Š” gci ๋ฅผ ํ˜ธ์ถœํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค (์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ถŒ์žฅ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค). ls ๋ฐ gci ๋Š” ๋ช…๋ น ์ค„ ์‚ฌ์šฉ์„์œ„ํ•œ ํŽธ๋ฆฌํ•œ ๋ณ„์นญ ์ผ ๋ฟ์ด๋ฉฐ ls ๊ฐ€ ๊ฐ‘์ž๊ธฐ Get-ChildItem ๋ณ„์นญ์ด ์ง€์ •๋˜๊ณ  ๊ทธ์˜ ๋ณ„์นญ์ด ์•„๋‹Œ ๊ฒฝ์šฐ Linux ์‚ฌ์šฉ์ž๋ฅผ _ ํ˜ผ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์•„ํ•˜๋Š” ๊ธฐ๋ณธ ๋ช…๋ น; ์ด ๋ช…๋ น์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋ฉด ๋”์šฑ ํ˜ผ๋ž€ ์Šค๋Ÿฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” powershell์—์„œ ๋ณ„์นญ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๋ณ„์นญ์„ ์œ ์ง€ํ•˜๊ณ  Windows PowerShell์—์„œ ์ฒœ์ฒœํžˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

Enable-Alias Unix
Enable-Alias dos

๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋„ค์ดํ‹ฐ๋ธŒ ์ปฌ์„ ์‚ฌ์šฉํ•˜๊ณ ์žํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ๋žŒ๋“ค์ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค (์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด ๋œจ๋ฆผ).
  3. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ณ„์นญ์„ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  4. ์„ฑ๋Šฅ์„ ๊ฑฐ์˜ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ForNeVeR ์ €๋Š” ls ๋ฅผ gci ํ•˜๋ฃจ ์ข…์ผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ (unix-y ๋ฐ dos-y ๋ณ„์นญ ์ œ๊ฑฐ)์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค ( curl ์™€ ๊ฐ™์ง€ ์•Š์Œ). "์™„๋ฒฝํ•œ"์†”๋ฃจ์…˜์€ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ๊ธฐ์กด ๋„๊ตฌ์˜ ์œ ํ˜•ํ™” ๋œ ํ–ฅ์ƒ์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์Šคํฌ๋ฆฝํŠธ์˜ ๊ฒฝ์šฐ using ๋ฌธ์ผ๊นŒ์š”?

@ForNeVeR @ be5invis๋ฅผ ์˜คํ•ดํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” powershell์˜ ๊ฐ•๋ ฅํ•œ ์ง€์ง€์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์˜๋ฏธํ•˜๋Š” "ํƒ€์ž…์—†๋Š” ํŒŒ์›Œ ์‰˜์€ ์“ธ๋ชจ๊ฐ€ ์—†๋‹ค"๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ํŒŒ์›Œ ์‰˜์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ์ปฌ์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


@ be5invis ๋˜ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ปฌ์˜ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ๋ฉ€๋ฆฌ ๋„๋‹ฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์›Œ ์‰˜ ๋ฌธ๋ฒ• ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹น์‹ ์€ ํ•  ์ˆ˜์žˆ๋Š” ํ‘œ์ค€ ์œ ๋‹‰์Šค ๋ฌธ๋ฒ•๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค rm -rf ์œ ๋‹‰์Šค์— ์žˆ์ง€๋งŒ PowerShell์—์„œ ๋‹น์‹ ์ด ํ•  ํ•„์š”๊ฐ€ rm -r -fo .
๋”ฐ๋ผ์„œ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ํ˜ธํ™˜์„ฑ์— ๋„๋‹ฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@chantisnake ๊ทธ๋Ÿฌ๋ฉด -recurse -force ๋™์ผํ•œ "rf"๋ผ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?

@ be5invis ์ด๊ฒƒ์€ PowerShell์—์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค. ์ง๊ตํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธด ์ด๋ฆ„ ๋งŒ ์žˆ์œผ๋ฉฐ ์งง์€ ์ด๋ฆ„ ๋Œ€์‹  ๋ช…ํ™•ํ•˜๊ฒŒ ์œ ์ง€๋˜๋Š” ํ•œ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ถ•์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ fr ๋ณ„์นญ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ‘์ž๊ธฐ -Recurse ๋ฅผ ๋” ์ด์ƒ -r ๋กœ ์ค„์ผ ์ˆ˜ ์—†์ง€๋งŒ ๋Œ€์‹  ์ œ์•ˆ ๋œ -rf ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์ถฉ๋Œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด -re ๊ฐ€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ชฝ์—์„œ๋„ ๋™์ผํ•œ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ„๋„๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋น„๋ก ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ Unix ๋„๊ตฌ๋กœ ์ž‘์—…ํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€์žฅํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์ฝ”๋“œ ์›์น™ ๋ฐ ๊ทœ์น™์„ ์ƒ๋‹นํžˆ ํฌ๊ฒŒ ์œ„๋ฐ˜ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์งง๊ณ  ๊ธด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” GNU ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ทœ์น™์€ ๋ณดํŽธ์ ์ด์ง€ ์•Š์œผ๋ฉฐ tar ๋˜๋Š” find ์™€ ๊ฐ™์ด ์ž˜ ํ™•๋ฆฝ ๋œ ๋งŽ์€ ๋„๊ตฌ๊ฐ€์ด๋ฅผ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„๊ทธ ์ถ”์ ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ํŒ”์งฑ์„ ๋ผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์€ ํ•ญ์ƒ ์•ฝ๊ฐ„ ์”ฉ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ˆ˜์‹ญ์–ต ๊ฐœ์˜ ๋‹ค๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ, ๊ฐ‘์ž๊ธฐ ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ๊ฐ–๊ฒŒ๋˜๋Š” ๊ฒƒ (๋ถ„๋ช…ํžˆ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ์ž์ฒด๋กœ ๋งŽ์€ ๋‹ค๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จํ•˜๋ ค๊ณ  ์‹œ๋„ ํ•จ)์€ ๋„ˆ๋ฌด ๋‹นํ™ฉ์Šค๋Ÿฝ๊ณ  ๋ฌธ์ œ๊ฐ€์žˆ์–ด์„œ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค : ์ปดํ“จํ„ฐ์˜ ์…ธ์€ ์‚ฌ์šฉ์ž์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ณ„๋ช… ๋ช…์œผ๋กœ rm ์— rm -i ์ž์‹ ์˜ ํŽธ์•ˆํ•จ์„ ์œ„ํ•ด, ๊ฑฐ๊ธฐ ์ œ๊ฑฐ์—์„œ ๋‹น์‹ ์„ ๋ฐฉ์ง€ ์•„๋ฌด๊ฒƒ๋„ rm ๋ณ„์นญ๊ณผ ๊ธฐ๋Šฅ ํฌ์žฅ์ด Remove-Item ๋ผ๋Š” rm ์™€ -rf ๋งค๊ฐœ ๋ณ€์ˆ˜.

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  Unix ๋„๊ตฌ๋ฅผ ์™„์ „ํžˆ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์ „์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ƒ๋‹นํžˆ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ls ์˜ ๊ธฐ๋Šฅ๊ณผ ์ถœ๋ ฅ์€ ์ˆ˜๋…„ ๋™์•ˆ ์ž˜ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ls ๋ช…๋ น์€ ์ž˜ ์•Œ๋ ค์ง„ ํ˜•์‹์œผ๋กœ ์˜ฅํ…Ÿ ์ŠคํŠธ๋ฆผ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ls ๋ช…๋ น์€ DirectoryInfo ๋ฐ FileInfo ๊ฐœ์ฒด๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ls ๋‹ค๋ฅธ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์€ ์ตœ์†Œํ•œ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์•ฝ๊ฐ„ ๊ธฐ๋งŒ์  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ๊ฐœ์ฒด๋ฅผ ํ™œ์šฉํ•  ์ค€๋น„๊ฐ€๋˜๋ฉด Get-ChildItem ๋ฐ gci์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ ๊ฐ์ฒด์˜ ์ด์ ์„ ์–ป๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ bash, ksh, csh, sh ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์˜ DIR ๋ช…๋ น์— ๋Œ€ํ•ด์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

* nix๋ฅผ * nix๋กœ ๋งŒ๋“ค๊ณ  Powershell์„ ์ตœ์ƒ์˜ ์ƒํƒœ๋กœ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

๋ฟก๋ฟก

์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ๊ฐœ์ฒด๋ฅผ ํ™œ์šฉํ•  ์ค€๋น„๊ฐ€๋˜๋ฉด Get-ChildItem ๋ฐ gci์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ ๊ฐ์ฒด์˜ ์ด์ ์„ ์–ป๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ bash, ksh, csh, sh ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ์š”์ ๊ณผ ๋ชจ์ˆœ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด Powershell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ๊ฐœ์ฒด๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ๋ช…๋ น์„ ๋‹ค์‹œ ๋ฐฐ์šฐ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

@Gaelan๊ณผ ๋™์˜ํ•˜์‹ญ์‹œ์˜ค.
๋ˆ„๊ตฐ๊ฐ€ ๊ฐ์ฒด๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ bash ๋˜๋Š” zsh๋กœ ๊ฐ„๋‹จํžˆ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋“ค์€ ๊ฐ์ฒด์˜ ์ด์ ์„ ์›ํ•˜๊ณ  ls ์™€ ๊ฐ™์€ ๊ฒƒ์„ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์œ ํ˜•์ด ์ง€์ •๋œ ๋ฒ„์ „์œผ๋กœ ๋ณ„์นญ์„ ์ง€์ •ํ•˜๋ฉด ์›ํ•˜๋Š” ๊ฒƒ์„ ์ •ํ™•ํ•˜๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Gaelan ๋ฐ @ be5invis , ์‚ฌ์šฉ์ž๊ฐ€ Powershell์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๋ณ€๊ฒฝ์˜ ์–‘์„ ์ œํ•œํ•˜๋ ค๋Š” ์š•๊ตฌ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋‡Œ๊ฐ€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ๋‚ด ์†๊ฐ€๋ฝ์ด ls ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ๊ธฐ์กด์˜ ๊ธฐ๋ณธ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณ€๊ฒฝ์€ ls ์—์„œ gci ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ํฐ ๋ณ€ํ™”๋Š” ํ…์ŠคํŠธ ์ค„์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ–‰ํ•ด์ง„ ์ƒ๊ฐ์—์„œ ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๊ฐ์ฒด์— ์ ์šฉ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ๋ณ„์นญ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ๊ถŒ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ $ Host (System.Management.Automation.Internal.Host.InternalHost)์— ๋ฉ”์„œ๋“œ์™€ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ๋ช…๋ น ๋Œ€์ฒด๋ฅผ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•จ์œผ๋กœ์จ์ด ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋ณธ ์ ์ด ์žˆ์ง€๋งŒ Powershell์— ํฌํ•จ ๋œ GUI ํ”„๋กœํ•„ ๊ตฌ์„ฑ ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ˆ„๊ตฐ๊ฐ€ ๊ฐ์ฒด๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ bash ๋˜๋Š” zsh๋กœ ๊ฐ„๋‹จํžˆ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๋…„ ๋™์•ˆ bash๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ PowerShell ๋ฌผ์— ๋ชธ์„ ๋‹ด๊ทธ๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ PowerShell์ด โ€‹โ€‹"์‰ฌ์šด ์ง„์ž…๋กœ"๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋“ค์ด ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ PowerShell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ์•ˆ ํ•ด์ง์— ๋”ฐ๋ผ PowerShell ๊ธฐ๋Šฅ (์˜ˆ : ๊ฐœ์ฒด ๋ฐฉ์ถœ ๋ช…๋ น ๋ฐ ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ๊ฐœ์ฒด)์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

"_PowerShell is a shell . ์ข‹์•„ํ•˜๋Š” ๊ธฐ๋ณธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ž˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค _"๋ผ๋Š” ์ค„์„ ๋ช‡ ๋ฒˆ์ด๋‚˜ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋Š”์ง€๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ PowerShell์„ ์‚ฌ์šฉํ•ด ๋ณด๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค. PowerShell์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ตœ๋Œ€ํ•œ ์กด์ค‘ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ฒฐ๊ตญ "์‰˜"์˜ ์ฃผ์š” ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

@rkeithhill ๊ทธ๋Ÿผ ์ œ๊ฐ€ /bin/ls ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๋„๊ตฌ๋Š” ์œ ํ˜•๊ณผ ํ†ต์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ ํ˜•์ด ์ง€์ •๋œ ์…ธ๋กœ ์ „ํ™˜ํ•˜์ง€๋งŒ ์œ ํ˜•์ด ์ง€์ •๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์—†์œผ๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์ธ Unix ์‚ฌ์šฉ์ž๋Š” ๋™์ผํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋˜ ์ž…๋ ฅ ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ชฉ์  a๋Š” IPC ํ”„๋กœํ† ์ฝœ์„ ์ž…๋ ฅํ•˜๊ณ  ์ž์‹ ์˜ ๋„๊ตฌ๋ฅผ ์—…๋ฐ์ดํŠธ ๋ฆฌ๋ˆ„์Šค์—๊ฒŒ - ์•„๋‹ˆ์˜ค, ๊ทธ๋“ค์€ wont't, ๊ทธ๊ฒƒ์€ ๊ทธ๋“ค์˜ ์  ๋ชฉ์ ์˜ ๋•Œ๋ฌธ์—, ์•…๋งˆ ์ฃผ, ์ž์œ  ์„ธ๊ณ„์˜ ํŒŒ๊ดด์ž! ๊ทธ๋“ค์€ ์šฐ๋ฆฌ๋ฅผโ€œํฌ์˜นํ•˜๊ณ  ์†Œ๋ฉธโ€์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋˜๋Š”...
  2. ๋ณ„์นญ ls ๋Š” ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€์žˆ๋Š” ๋‚ด์žฅ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” Powershell์„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ์œ ํ˜•์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๊ทธ๋“ค์€ ์•„๋งˆ ๊ทธ๋ ‡๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ (๋ญ”๊ฐ€ CMD๊ฐ€ ์ œ๊ณต ํ•  ์ˆ˜์—†๋Š”) ๋‚˜๋Š” ๋‹จ์ง€ ํž˜๋‚ด์™€ ํฌ์‰ฌ - ํž˜๋‚ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ์ด๋ฅผ ํŒ๋งคํ•˜์—ฌ ๋‚ด๊ฐ€ PowerShell์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค DEVS์˜ ๋ฒˆํ˜ธ์™€ ์ž‘์—…ํ–ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ๋Š” ๊ฑฐ์˜ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๊ฑฐ๊ธฐ์— ๋„๋‹ฌ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, git.exe ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” CMD์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ PowerShell์—์„œ๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์‰ฌ์šด ์ „ํ™˜.

๋‚˜์—๊ฒŒ ls (ps, grep, sed, awk, gcc, curl ๋“ฑ)๋Š” "์‰˜"์ด ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ๊ธฐ๋ณธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋ˆ„๊ตฐ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์šฉ์„ ๋‚˜์—ดํ•˜๊ธฐ์œ„ํ•œ ๊ฐ์ฒด ๋ฐฉ์ถœ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€๋˜์–ด ์žˆ๊ณ  ์›ํ•˜๋Š” ๊ฒฝ์šฐ Get-ChildItem ๋˜๋Š” ๋ณ„์นญ gci ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ls ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ •๋„๋กœ ๊ตฌ๋ถ€๋Ÿฌ์ง„ ๊ฒฝ์šฐ ํ”„๋กœํ•„์—์„œ Get-ChildItem์— ๋Œ€ํ•œ ls ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BTW ์ €๋Š” Get-ChildItem ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ls ์™€ ํ˜ธํ™˜๋˜๋„๋ก ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์†Œ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” PowerShell ๋งค๊ฐœ ๋ณ€์ˆ˜ (์˜ˆ : -c / -C, -d / -D, -i / -I)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ „ํ™”๋ฅผ ๋Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  PowerShell์€ ls -rt์™€ ๊ฐ™์€ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฒฐํ•ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„๋‹ฌ ๋ฒ”์œ„์ด๋ฉฐ PowerShell์˜ Monad ์›์น™์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๊ณผ ๊ฐ™์€ ์ž‘์—…์€ Get-ChildItem ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณ„๋„์˜ cmdlet (Sort-Object)์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

@rkeithhill ๋‚˜๋Š” Get-ChildItem ๋ฅผ ls ์™€ ํ˜ธํ™˜๋˜๋„๋ก ๋งŒ๋“ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. UnixCompatibles-ls ๋ผ๊ณ ํ•˜๋Š” ๋‹ค๋ฅธ cmdlet์„ ์ „์ฒด ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  PowerShell ๋Œ€์‹  GNU getopt ํ”Œ๋ ˆ์ด๋ฒ„๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ณ„๋„์˜ ๋ช…๋ น ํŒŒ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ be5invis ๊ทธ ์‹œ์ ์—์„œ ๋” ์‰ฌ์šด ์˜ต์…˜์€ ls ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ถœ๋ ฅ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ณ„๋„์˜ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๊นŒ? ์™„์ „ํžˆ ๋ถ„๋ฆฌ ๋œ ๋ช…๋ น ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ (์™„์ „ํžˆ ๋ถ„๋ฆฌ ๋œ ๋ช…๋ น ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ Get-Help , ...์— ๋Œ€ํ•œ ํ˜•์‹ ์ง€์ •)๋Š” ์•ฝ๊ฐ„ ๊ณผ์ž‰์ž…๋‹ˆ๋‹ค (ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ PowerShell์˜ ๋‚ด๋ถ€ ์ž‘์—… ๋Œ€๋ถ€๋ถ„์„ ๋ณต์ œํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ).

์—ฌ๊ธฐ์—๋Š” ํ•ญ์ƒ ๋‘ ๊ฐœ์˜ ๋ถ„๋ฆฌ ๋œ ์„ธ๊ณ„๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ์ด๊ณ  ํ•˜๋‚˜๋Š” ํƒ€์ดํ•‘์ž…๋‹ˆ๋‹ค. PowerShell์€ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋žจ๊ณผ cmdlet์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฏธ ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ PowerShell ๋‚ด์—์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ธฐ๋ณธ ๋ช…๋ น ์œ„์— ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ์‹œ๋„ ํ•  ๋•Œ ์–ด๋–ค ์ด์  (๊ฐœ๋ฐœ ๋…ธ๋ ฅ์— ๋Œ€ํ•œ ์—„์ฒญ๋‚œ ๋…ธ๋ ฅ)์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ AFAIK๊ฐ€ GNU ๊ทœ์น™์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” tar ๋˜๋Š” find (๋ฐ ๊ธฐํƒ€ ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ)์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„์ง _another_ ๋ช…๋ น ํŒŒ์„œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ž˜ํผ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜? ๋ช…๋ น ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์ˆ˜๊ฐ€ PowerShell ๋‚ด์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„๋˜์–ด์•ผํ•˜๋ฉฐ ์–ธ์–ด์™€ ์ถฉ๋Œํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. [ ์™€ ๊ฐ™์€ ์ด์ƒํ•œ ๊ฒƒ๋“ค๋กœ๋Š” ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ygra ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” Powershell์„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ์œ ํ˜•์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

@ be5invis , ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ์š”, ๊ทธ๋“ค์€ ์œ ํ˜•์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ์ผ์„ ๋๋‚ด๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ls ๊ฐ€ ํ…์ŠคํŠธ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

UnixCompatibles ๋Š” ๋™์‚ฌ์ž…๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž์˜ $ PROFILE ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด์ด ์„ธ์…˜์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๊นŒ? Get-ChildItem์ด ls์™€ ํ˜ธํ™˜๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ls ๋ฅผ ls ํ•˜๊ณ  ls ๋Š” ์ผ์„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ls ๋ฅผ Get-ChildItem ๋กœ ๋Œ€์ฒด ํ•  ์ˆ˜์žˆ๋Š” ์„ ํƒ๊ถŒ์„์ฃผ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์›ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

@Liturgist @ be5invis๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ์‚ฌ๋žŒ๋“ค์ด Powershell๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒฝ์šฐ (Bash์— ๋จธ๋ฌด๋ฅด๋Š” ๊ฒƒ๊ณผ๋Š” ๋ฐ˜๋Œ€๋กœ) Powershell์ด โ€‹โ€‹์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ls ์—์„œ ํ…์ŠคํŠธ ์ŠคํŠธ๋ฆผ์„ ์›ํ–ˆ๋‹ค๋ฉด (Linux ๋˜๋Š” macOS์—์„œ) Powershell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Gaelan ๊ทธ๋ž˜์„œ gcc ๋˜๋Š” git์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ PowerShell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ? ์‚ฌ๋žŒ๋“ค์ด ํ…์ŠคํŠธ (ls) ๋˜๋Š” ๊ฐ์ฒด (gci)๋ฅผ ์›ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๊ฒŒํ•˜๋Š” ๊ฒƒ์ด ์ž˜๋ชป๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? PowerShell์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” OO ํŠน์„ฑ๋ณด๋‹ค ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. C / C #๊ณผ ๊ฐ™์€ ์ œ์–ด ํ๋ฆ„ ๋ฌธ (vs if / fi ๋ฐ switch case / esac)๊ณผ ์ ์ ˆํ•œ ํ˜•์‹ ์‹œ์Šคํ…œ (์ˆซ์ž๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ ์ˆซ์ž ์ž„)์—๋งŒ PowerShell์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ฟก๋ฟก

๋”ฐ๋ผ์„œ gcc ๋˜๋Š” git์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ PowerShell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ?

* nix ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ gcc ๋˜๋Š” git ์šฉ ์…ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋ฉด OS์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์…ธ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— PowerShell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„๋ฉ๋‹ˆ๋‹ค.

Heck ๋‚˜๋Š” ์ œ์–ด ํ๋ฆ„ ๋ฌธ๊ณผ ๊ฐ™์€ C / C #์—๋งŒ PowerShell์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค (vs if / fi ๋ฐ switch case / esac)

์•„๋งˆ๋„ ๋ˆ„๊ตฐ๊ฐ€ ์ด๋ฏธ PowerShell์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์„ ์„ ํ˜ธ ํ•  ๊ฒƒ์ด์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์œ„ํ•ด PS๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ์œ ํ˜• ์‹œ์Šคํ…œ (์ˆซ์ž๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ ์ˆซ์ž ์ž„)

/bin/ls ๋Š” ์œ ํ˜• ์‹œ์Šคํ…œ์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ls -l ์‹คํ–‰ํ•˜๋ฉด ์ ์ ˆํ•œ PS ๋ฒˆํ˜ธ ๋Œ€์‹  ๋ฌธ์ž์—ด๋กœ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๊ฐ€ * nix์—์„œ PS๋กœ ์ „ํ™˜ํ•˜๋Š” ์ด์œ ๋Š” ์ฃผ๋กœ OO์™€ ์œ ํ˜• ์‹œ์Šคํ…œ์„ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๊ฐ€ PS๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๋Šฅํ•œ ํ•œ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. PS์— ๋Œ€ํ•œ ๋‚ด์šฉ์„๋ณด๊ณ  ํ™•์ธํ•ด ๋ณด๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ช…๋ น ์ค„์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ๋ฐฐ์›Œ์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ PS๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ls ํ•˜๊ณ  ์ฆ‰์‹œ ์œ ํ˜• ์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐฐ์šฐ๋Š” ๋ฐ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ๋ณ„๋ช…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช‡ ๋ถ„ ์•ˆ์— PS๋ฅผ ์‹œํ—˜ ํ•ด๋ณด๊ณ  ์žˆ๋‹ค๋ฉด ๋›ฐ์–ด ๋“ค์–ด ๋†€๊ธฐ ์ „์— ๋งŽ์€ ๊ตฌ์„ฑ์„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

* nix ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ gcc ๋˜๋Š” git ์šฉ ์…ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋ฉด OS์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์…ธ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— PowerShell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„๋ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋ˆ„๊ตฐ๊ฐ€ ์ด๋ฏธ PowerShell์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์„ ์„ ํ˜ธ ํ•  ๊ฒƒ์ด์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์œ„ํ•ด PS๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฏธ์•ˆํ•˜์ง€๋งŒ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž๋กœ์„œ, ๋‚˜๋Š” ๋‚˜์˜ OS์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋Œ€์‹  ์‰˜์˜ PowerShell์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๋ฅผ์œ„ํ•œ. ๊ต‰์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•Œ๋‹ค์‹œํ”ผ :)

๋„๋Œ€์ฒด ๋ชจ๋“  ๊ฒƒ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ์€ NixOS ์šฉ PowerShell์„ ํŒจํ‚ค์ง•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๋Œ€์ƒ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ˆ˜๋กœ Windows + PowerShell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ Unix ์‚ฌ์šฉ์ž ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ˆ˜๋กœ Unix + PowerShell์„ ์‚ฌ์šฉํ•˜๋Š” Windows ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค.)

๊ธฐ๋ณธ PATH์— ์ž๋™์œผ๋กœ ํฌํ•จ๋˜๋Š” ๋‹จ์ผ ๋ฌธ์ž (์˜ˆ : ^)

๋‚˜๋Š” ๋˜ํ•œ ๋ณ„์นญ์ด ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์—์„œ ์œ ํšจ ํ•  ๋•Œ๋งˆ๋‹ค OS๊ฐ„์— ํ˜ธํ™˜๋˜๋„๋ก ์œ ์ง€ํ•˜๊ณ  ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž (์˜ˆ ^ls )๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ @joeyaiello๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ ๋„ค์ดํ‹ฐ๋ธŒ ๋ช…๋ น์— ๋Œ€ํ•œ ์•”์‹œ ์  ์•ก์„ธ์Šค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
์ €๋Š” PowersShell์˜ ์ „์ฒด ์ฒ ํ•™์— ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋ฌด์—‡์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฌ์‹ค, ๋‹จ์ผ ๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์š”์ ์€ bash๊ฐ€ ์ด๋ฏธ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. https://twitter.com/climagic/status/806536501232340992

\ls ์€ ๋ชจ๋“  ๋ณ„์นญ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

๋ณ„์นญ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ WSL (Linux ์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ)์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ bash ์…ธ์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ sed, awk, ls ๋“ฑ์˜ ๋ช…๋ น์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ Windows 10 ์šฉ ๋ฒ ํƒ€ ์ฝ”๋“œ์ด์ง€๋งŒ ์„œ๋ฒ„ 2016 ๋ฐ 2012์—์„œ ์ œ๊ณต ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@Liturgist ํ˜„์žฌ WSL์€ PowerShell๊ณผ๋Š” ๋งค์šฐ ๋ณ„๊ฐœ์˜ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์€ PowerShell ์„ธ์…˜์—์„œ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ GNU, ๋ง,์˜ ์ถœ๋ ฅ์„๋ฐ›์€ ๊ฒฝ์šฐ ๋งŽ์€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํœด์‹ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋˜ํ•œ์ด ๊ฐ€๋Šฅ์„ฑ์ด ๋งŽ์€ ํ˜„์žฌ Windows PowerShell ์‚ฌ์šฉ์ž๊ฐ€ ํšŒ๊ท€ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค ls ๋ณด๋‹ค๋Š” ls -> Get-ChildItem . ๋ณ„์นญ์˜ ์‚ฌ์šฉ์€ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ถŒ์žฅ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์–ด ์†์ƒ๋˜๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Liturgist : @bgshacklett ์ด ๋ฐ”๋กœ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ls ๋ฅผ ์ž…๋ ฅ ํ•  ๋•Œ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ls | Where-Object Name -like *foo* ์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐฉ์‹์œผ๋กœ ์†Œ๋น„ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. WSL ls ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ls | Where-Object Name -like *foo* ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ cmd์™€ ๋ณ„์นญ์ด ์ถฉ๋Œํ•˜๋Š” ์›๋ž˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” Windows PowerShell ๋ณ„์นญ์„ ๋‹ค์‹œ ์ถ”๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

https://github.com/PowerShell/PowerShell/issues/3610 ์„ ์—ด์–ด 2 ์ฐจ ๋ฌธ์ œ ์บก์ฒ˜

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰