Linux ๋ฐ OS X์ โโ์ถฉ๋ํ๋ PowerShell ๋ณ์นญ์ # 786, ํนํ ์ปค๋ฐ 7d9f43966์์ ์ ๊ฑฐ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ณ์นญ์ ์ ๊ฑฐํ๋ ๊ฒ๋ณด๋ค์ด๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ก์ด ๋ ผ์๊ฐ ์งํ๋๊ณ ์์ต๋๋ค.
์ด๊ฒ์ 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
์ด์ฉ๋ค.
์ฌ์ฉ์ฑ ๋๊ธฐํ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ณ์นญ์์ด ๋ํ ํ ํ๊ฒฝ์ด ์ข์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋์ํ์ง ์๋ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋์ด์ผํ๋ ๋์์ ๋๋ค. ํ๋กํ ๋ ๋ช ๊ฐ์ง ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
^
)bash -c
ํ๋ค๊ณ ๋งํฉ๋๋ค. (๋ง์ ์ฌ๋๋ค์ด ๋ฌธ์๊ฐ ๋๋ฌด ๋ง์์ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋งํ์ต๋๋ค.)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์ด ๋ฌธ์ ๊ฐ ๋๋ฌด ๋์๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ ๋ณ์นญ์ด ์ง์ ๋๋ฉด ์ํฉ์ ์ ํ์ํฌ ๊ฒ์ ๋๋ค. Dir -recurse๋ ์ด์จ๋ dir / s๋ณด๋ค ๋ ์ฝ๊ธฐ ์ฌ์ด ๋งค๊ฐ ๋ณ์์ ๋๋ค. ๋ํ ํฌ๋ก์ค ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด Windows์์ Linux๋ก ๋๋ ๊ทธ ๋ฐ๋๋ก ์ด๋ํ๋ ค๊ณ ํ ๋ ์คํฌ๋ฆฝํธ๊ฐ ์ผ๊ด์ฑ์ด ์๊ฒ๋ฉ๋๋ค.
๋จ๊ธฐ์ ์ผ๋ก๋ ๊ตฌ์ฑ ์ต์ ๊ณผ ๋ณ์นญ์ด ํ์ฑํ ๋ ๊ฒฝ์ฐ ๋ค์ดํฐ๋ธ ๋ช ๋ น์ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด ๋ชจ๋ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ํ์ฑํ ๋ ์ํ๋ก ๋ก๋๋ค. 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
๋ณ์นญ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์์ต๋๋ค.
@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 ์ฌ์ฉ์๋ ๋์ผํ ๋ช ๋ น์ ์ ๋ ฅํ๋ ์ ๋ ฅ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ์ป์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
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 ์ฐจ ๋ฌธ์ ์บก์ฒ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@ be5invis ์ด๊ฒ์ PowerShell์์ ๋งค๊ฐ ๋ณ์๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์๋ฐฐ๋ฉ๋๋ค. ์ง๊ตํ๋ฉฐ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์ ์ธํธ๊ฐ ์์ต๋๋ค. ๋ํ ๊ธด ์ด๋ฆ ๋ง ์์ผ๋ฉฐ ์งง์ ์ด๋ฆ ๋์ ๋ช ํํ๊ฒ ์ ์ง๋๋ ํ ๊ฐ๋ณ์ ์ผ๋ก ์ถ์ฝ ํ ์ ์์ต๋๋ค. ๊ทํ์ ๊ฒฝ์ฐ์๋ ํด๋น ๋งค๊ฐ ๋ณ์
fr
๋ณ์นญ์ ์ถ๊ฐํด์ผํฉ๋๋ค. ๋ํ ๊ฐ์๊ธฐ-Recurse
๋ฅผ ๋ ์ด์-r
๋ก ์ค์ผ ์ ์์ง๋ง ๋์ ์ ์ ๋-rf
๋งค๊ฐ ๋ณ์์ ์ถฉ๋ํ์ง ์์ผ๋ ค๋ฉด-re
๊ฐ๋์ด์ผํฉ๋๋ค.๋ค๋ฅธ ์ชฝ์์๋ ๋์ผํ ์ง๋ฌธ์ ํ ์ ์์ต๋๋ค. ๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๋๋ก ์ง์ ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋น๋ก ๊ทธ๋ ์ง ์๋๋ผ๋ ์ฌ์ ํ ๋์ผํ Unix ๋๊ตฌ๋ก ์์ ํ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๊ฐ์ฅํ๊ธฐ ์ํด PowerShell ์ฝ๋ ์์น ๋ฐ ๊ท์น์ ์๋นํ ํฌ๊ฒ ์๋ฐํ ์ํฅ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์งง๊ณ ๊ธด ์ด๋ฆ์ ์ฌ์ฉํ๋ GNU ๋งค๊ฐ ๋ณ์ ๊ท์น์ ๋ณดํธ์ ์ด์ง ์์ผ๋ฉฐ
tar
๋๋find
์ ๊ฐ์ด ์ ํ๋ฆฝ ๋ ๋ง์ ๋๊ตฌ๊ฐ์ด๋ฅผ ์๋ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฒ๊ทธ ์ถ์ ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ํ์งฑ์ ๋ผ์ง ์์์ต๋๋ค. ์ ๋์ค์ ํต์ฌ ๋ถ๋ถ์ ํญ์ ์ฝ๊ฐ ์ฉ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ์์ญ์ต ๊ฐ์ ๋ค๋ฅธ ์ ํธ๋ฆฌํฐ ํ๋ก๊ทธ๋จ์ด ์๋ค๋ ๊ฒ์ด์์ง๋ง, ๊ฐ์๊ธฐ ๋ ๋ค๋ฅธ ํ๋๋ฅผ ๊ฐ๊ฒ๋๋ ๊ฒ (๋ถ๋ช ํ ๋ ๋ง์ ๊ฒ์ ์ํํ๊ณ ๊ทธ ์์ฒด๋ก ๋ง์ ๋ค๋ฅธ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ๋ ค๊ณ ์๋ ํจ)์ ๋๋ฌด ๋นํฉ์ค๋ฝ๊ณ ๋ฌธ์ ๊ฐ์์ด์ ๋ณ๊ฒฝํด์ผํฉ๋๊น? ๋๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์๋๋ค.๊ธฐ์ตํ์ญ์์ค : ์ปดํจํฐ์ ์ ธ์ ์ฌ์ฉ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฅ ๋ณ๋ช ๋ช ์ผ๋ก
rm
์rm -i
์์ ์ ํธ์ํจ์ ์ํด, ๊ฑฐ๊ธฐ ์ ๊ฑฐ์์ ๋น์ ์ ๋ฐฉ์ง ์๋ฌด๊ฒ๋rm
๋ณ์นญ๊ณผ ๊ธฐ๋ฅ ํฌ์ฅ์ดRemove-Item
๋ผ๋rm
์-rf
๋งค๊ฐ ๋ณ์.๊ทธ๋ฌ๋ ๋ชจ๋ Unix ๋๊ตฌ๋ฅผ ์์ ํ ๋ณต์ ํ๊ธฐ ์ํด PowerShell ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ ์๋๋ ์๋นํ ์๋ชป๋ ๊ฒ์ ๋๋ค.