๋ฆฌ๋ ์ค ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต๋ถํ ๊น ๋ง๊น ๋ง์ค์ด๋ ๋น์ ์๊ฒ ํ ๊ฐ์ง๋ง ๋งํ๊ฒ ์ต๋๋ค. ํด์ปค์ฒ๋ผ ๋ฉ์๊ฒ ๋ฆฌ๋ ์ค๋ฅผ ๋ค๋ฃจ๊ณ ์ถ์๊ฐ์? ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ชจ๋ฅด๋ ํด์ปค๋ฅผ ์์ํ ์ ์๋์? ๊ทธ๋ผ ์ง๊ธ ๋ฐ๋ก ์์ํ์ธ์!
์์์ ์ฌ์ฉํ๋ ๋ชจ๋ ํน์ ๋ฌธ์์ ์ญํ ์ ์ดํด
์์๋ฐ์ดํ์ ํฐ๋ฐ์ดํ์ ์ฐจ์ด๋ฅผ ํฌํจํ ์ธ์ฉ๋ถํธ์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ
find ์ xargs
์๋ณ์์ ํ๊ฒฝ๋ณ์์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ธฐ
๋ฆฌ๋ ์ค ํ์ ๋ช ๋ น์ด(tr, sort, seq, cat, hexdump, cut, uniq, tee, echo, printf, read, wc, comm)
EXPORT๋ฅผ ๋ชฉ์ ์ ๋ง๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ
ํจ์์ ์จ๋ฆฌ์์ค์ ์ฐจ์ด์
์๋ํ ์คํฌ๋ฆฝํ ์์ฝ ๋ง๋ค๊ธฐ
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ 4๊ฐ์ง ๋ฐฉ๋ฒ
์คํฌ๋ฆฝํธ์ ํจ์จ์ ์ธ ๋๋ฒ๊น ๋ฐฉ๋ฒ 3๊ฐ์ง
ํ์ด๋ํ๋จผํธ์ ํ์ด์คํธ๋ง
eval
์ ๊ท ํํ์ ๊ณผ grep, sed
ํด์ปค์ฒ๋ผ BASH ์ ์คํฌ๋ฆฝํธ ์์ฑํ๊ธฐ
๋ฆฌ๋
์ค ์ ์คํฌ๋ฆฝํธ(Linux Shell Script)๋ก
์๋ฒ๋ฅผ ์๋ํํ๊ณ , ๋ง๊ฐํ ๊ธฐ๋ฅ์ ๊ฒฝํํ์ธ์.
๋ณธ ๊ฐ์๋ ๋ฆฌ๋ ์ค์ ๊น๋ค๋ก์ด ๋ฐฐ์ฌ ์ ๋ฌธ๋ฒ ์ค ์ธ์ฉ๋ถํธ์ ํ์ดํ, ๋ฆฌ๋ค์ด๋ ์ ์ ์ ์์ํ๊ฒ ํ์ดํด๋๋ฆฌ๊ณ , ์ ์ฝ๋ฉ์ ์ ์ฐจ์ ์ธ ๋ฐฉ๋ฒ์ ์ ์ํด ๋๋ฆฝ๋๋ค. ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๊ฐ๋ฐ์ ๋ํ ๊ฐํ ์์ ๊ฐ์ ๊ฐ๋ ๊ธฐํ๋ก ๋ง๋ค์ด๋ณด์ธ์.
ํ๋ ์ปดํจํ ํ๊ฒฝ์์ ๋ฆฌ๋ ์ค๋ ์๋์ฐ์ฆ์ ํจ๊ป ์ค์ํ ๋ฉ์ธ์คํธ๋ฆผ์ด ๋ ์ง ์ค๋๋์์ต๋๋ค.
๋ฆฌ๋ ์ค๋ ๋ ์ด์ ํด์ปค๋ค์ ์ ์ ๋ฌผ์ด ์๋๋ฉฐ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๋ฆฌ๋ ์ค ํ๊ฒฝ์์์ ๊ฐ๋ฐ์ ์๊ตฌ๋ฐ๊ณ ์์ต๋๋ค. ์ธ๊ณต์ง๋ฅ, ์์จ์ฃผํ, ๋จธ์ ๋ฌ๋, ๋น ๋ฐ์ดํฐ, ํด๋ผ์ฐ๋ ์ปดํจํ , ์ฌ๋ฌผ์ธํฐ๋ท ๋ฑ ๋ฏธ๋ ๊ธฐ์ ์ ์ด์๋ค์ด ๋ชจ๋ ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๊ธฐ๋ฐ ์์์ ๋ง๋ค์ด์ง๊ณ ์์ต๋๋ค.
๊ณต๊ฐ๋๋ ์๋ง์ ์คํ ์์ค๋ ๋ฆฌ๋ ์ค์์ ๋จผ์ ํ ์คํธ๋๊ณ ์ง์๋ฉ๋๋ค.
์๋ฒ ์ธก JavaScript, Python ๋ฐ ๊ธฐํ ์ธ์ด์ ๊ฒฝ์ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ๋ก ์์ ๋๋ค. ๋ง์ ์์ง๋์ด๋ค์ ์์ ํ ๋ ๊ฐ๋จํ ๋ช ๋ น ์ค ๋๊ตฌ์ ์ง์ ์ก์ธ์คํ๋ ๊ฒ์ด ๋งค์ฐ ํจ์จ์ ์ผ ์ ์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์์ต๋๋ค. ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์ ์ด์ฉํ๊ธฐ ์ํด ์ ๊ธฐ๋ฐ์์ ์ข ์์ฑ ๊ด๋ฆฌ ๋ฐ ํจํค์ง ๋ฑ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ฆฌ๋ ์ค ์ ธ
์์ ๋ณต์กํ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ์ง ์๊ณ ๋ ๋๊ตฌ๋ ์ก์ธ์คํ ์ ์๋ ๊ณตํต ํ๊ฒฝ ๊ทธ๋ฆฌ๊ณ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋ค์์ฑ์ ์ฆ๊ฐํ์ง๋ง, ์ฌ๋ฌ ๋ฉด์์ ์์ง๋์ด๊ฐ ์ฌ์ฉํ๋ ์ด์ ํ๋ซํผ์ ์คํ๋ ค ๋จ์ํ๋์์ต๋๋ค.
์์ง๋์ด๋ค์ Docker๋ฅผ ํตํด ์ด์ ํ๊ฒฝ์ด ํจ์ฌ ๋ ๊ท ์ผํ๊ณ Linux์ ๋น์ทํ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
์ปจํ
์ด๋ํ ๋ ์์
์ ๊ฒฝ์ฐ Linux ๋ฐ ์
ธ ๊ธฐ์ ์ด ์ค์ํฉ๋๋ค. ์ด๊ฒ์ ์์ ๋ํ ๊ด์ฌ๋ ์ฆ๊ฐ๋ฅผ ๋ถ๋ฌ์์ต๋๋ค.
์คํ ์์ค์ ๊ฒฝ์ฐ Linux์ ์ปจํ
์ด๋์์ ์คํ๋๋๋ก ๋น๋๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์์ Linux ์์คํ
์ ๊ด๋ฆฌํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก์จ ์ง๊ธ์ ์ด๋ฅด๊ณ ์์ผ๋ฉฐ, ๋ง์ ๊ฐ๋ฐ์๋ค์ด Linux ์์คํ
์ ์ด์ ํ๊ฒฝ์ผ๋ก ํ์คํํจ์ผ๋ก์จ ์ ๊ธฐ์ ์ด ๋์ฑ ์ค์ํด์ก์ต๋๋ค.
ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ์ฃผ์ ํ๋ฆ์ธ DevOps๋ ํ ๊ทธ๋ฃน์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ง์คํ๊ณ ๋ค๋ฅธ ๊ทธ๋ฃน์ด ์์ ์ ์ธ ์ํํธ์จ์ด ์ด์์ ์ค์ ์ ๋๋ ๋์ ๋จ์ผ ๊ทธ๋ฃน์ด ์ด ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ๋ด๋นํฉ๋๋ค.
์๋ํ๊ฐ ํ์ํ ๋ง์ ์์ ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์คํฌ๋ฆฝํ ํ ์ ์๋ ๊ฒฝ์ฐ ์๋ํํ ์ ์์ผ๋ฉฐ ์ ์ ๋ ๋ณต์กํด์ง๋ ์์คํ ์ ์ด์ฉํ๋ ค๋ฉด ์๋ํ๊ฐ ํ์์ ์ผ๋ก ํ์ํฉ๋๋ค
ps. ์ด ์์์ ์ดฌ์ ์์ ์๋, ํธ์ง ์์ ์๋, ์์์ ๋ก๋์๋ ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฌ์ฉ๋์๋ต๋๋ค ๐ฅณ
๋ค๋ง, MacOS ํ๊ฒฝ์ด๋ผ๋ ๊ฒ์ด ํจ์ ! :)
10๋ ์ด์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ด๋ค ๊ฒ์ด ์ด๋ ต๊ณ ๋ฌด์์ด ์ค์ํ ๋ถ๋ถ์ธ์ง ์ ์๊ณ ์์ต๋๋ค.
๋ฆฌ๋ ์ค์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํ๋ ค๋ฉด ๋ ๊ฐ์ง ์์๊ฐ ํ์ํฉ๋๋ค.
์ฒซ์งธ, ์์ ๋ฌธ๋ฒ์ ์์งํ๊ณ ์์ด์ผ ํฉ๋๋ค.
ํน์๋ฌธ์๋ ์ฌ์ฉ๋๋ ์์น๋ง๋ค ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฆฌ๋ค์ด๋ ์
๊ธฐํธ < ์ >๋ ํ
์คํธ ๋ฌธ์์๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋ํ, ์ธ์ฉ๋ถํธ ๊ฐ์ ๊ฒฝ์ฐ ์์๋ฐ์ดํ์ ํฐ ๋ฐ์ดํ๋ ์๋ก ๊ตฌ๋ณํด์ ์จ์ผ ํ๋๋ฐ, ๋ช
๋ น์ด์ ์ฐ๋๋ ๋ ์๋นํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์์ผ๋ฉด ์คํจํ๊ธฐ ์ฝ์ต๋๋ค.
๋์งธ, ๋ฆฌ๋
์ค์ 20~30๊ฐ ์ ๋์ ํ์ ๋ช
๋ น์ด๋ฅผ ์ต์
๊น์ง ๊ธฐ์ตํ๊ณ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ด ํ์ํ ์ด์ ๋ ํ์ดํ ๊ธฐํธ๋ฅผ ์ด์ฉํด์ ์ ์ํ๊ฒ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ฑํ ๋ ์ ํฉํ ๋ช
๋ น์ด๊ฐ ์๊ฐ์ด ๋์ผ ์ฌ์ฉํ ์ ์์ ๊ฒ์
๋๋ค. cut์ ์ฌ์ฉํ ์ง tr์ ์ฌ์ฉํ ์ง, ์ค๊ดํธ ํ์ฅ์ ์ฌ์ฉํ ์ง ์ฆ๊ฐ์ ์ผ๋ก ํ๋จํด์ผ ํ๊ฑฐ๋ ์.
๋ฆฌ๋
์ค ์
๋ฌธ์๋ค๋ ์ต๋ํ ์ดํดํ๊ธฐ ์ฝ๋๋ก ์ ๊ฒฝ ์จ์ ์์์ ๋ง๋ค์์ต๋๋ค.
์์
์ ๋ฌด๋ฆฌ์์ด ์ ๋ฐ๋ผ๊ฐ ์ ์๋๋ก ๊ธฐ์ด์ ์ธ ์ฉ์ด๋ค์ ํ๋ถํ ์๋ง ์์คํ
๊ณผ ์ ๋๋ฉ์ด์
์ ์ด์ฉํ์ฌ ์ค๋ช
์ ํด๋๋ฆฌ๊ณ ์์ต๋๋ค.
ํน์ง 1. ๋ชจ๋ฐ์ผ ์ค๋งํธ ๊ธฐ๊ธฐ์์๋ ์ ๋ณด์ผ ์ ์๋๋ก ์์์ ๋ง๋ค์์ต๋๋ค.
ํน์ง 2. ๊ฒ์์ ๋ฐฐ๊ฒฝ๊ณผ ํฐ ํฐํธ ์ฌ์ด์ฆ๋ฅผ ์ฌ์ฉํด์ ๋์ด ์ํ์ง ์๋๋ก ๋ฐฐ๋ คํ์์ต๋๋ค.
ํน์ง 3. ์์ ์์ DRILL(์ฐ์ต๋ฌธ์ )์ ์ด์ฉํด์ ์๊ฐ์๊ฐ ์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ๋ณผ ์ ์์ต๋๋ค.
ํน์ง 4. ์ ๋๋ฉ์ด์ ์ ํ์ฉํ์ฌ ํ์ต์ ์ง์ค๋๋ฅผ ๋์์ต๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
๋ฆฌ๋ ์ค ์๋ฒ ๊ด๋ฆฌ์
์ธ๊ณต์ง๋ฅ๋ฐ ์์จ์ฃผํ์ ์ฐ๊ตฌํ๋ ๋ถ
ํด๋ผ์ฐ๋ ์ปดํจํ ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์
์๋ฒ ๋๋ ๋ฆฌ๋ ์ค ๊ฐ๋ฐ์
ํดํน์ ์ํ๋ ์ฌ๋
๋ฆฌ๋ ์ค๋ฅผ ์ ๋ค๋ฃจ๊ณ ์ถ์ ๋ถ
Mac์์ ์๋ํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ถ์ ๋ถ
NAS์๋ฒ, cpdf, imagemagick, ffmpeg ๋ฑ์ ์ํฌํ๋ก์ฐ ์์ฑ์ด ํ์ํ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
๋ฆฌ๋ ์ค ๊ธฐ์ด ๋ช ๋ น์ด
3,015
๋ช
์๊ฐ์
190
๊ฐ
์๊ฐํ
256
๊ฐ
๋ต๋ณ
4.7
์
๊ฐ์ ํ์
5
๊ฐ
๊ฐ์
์ธํ๋ํ๊ต ๊ณต๊ณผ๋ํ์์ ์ ์๊ณตํ ํ์ฌ ํ์๋ฅผ ๋ฐ์์ผ๋ฉฐ ์๋ฒ ๋๋ ์์คํ ์ฉ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ก์จ ์๋ ๊ฐ์ ๊ฒฝ๋ ฅ์ ์์์ต๋๋ค. ์๋ฒ ๋๋ ์์คํ ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ์ ๋ฌธ ๊ฐ์ฌ๋ก๋ ํ๋ ์ค์ ๋๋ค. ์์ดํฐ 3GS ๋ฑ์ฅ๊ณผ ๊ฐ์ ์๊ธฐ์ ๋งฅ(๋ถ)์ ์ ๋ฌธํ์๊ณ , ๊ทธ๋๋ถํฐ ๋งฅ(๋ถ) ์๋ํ์ ๊ด์ฌ์ ๊ฐ๊ฒ ๋์์ต๋๋ค. '๋งฅ(๋ถ)์์ ์ฌ์ฉํ ์ ์๋ ์๋ฆฌ ๋ฆฌ๋ชจํธ', 'ํค๋ณด๋๋ง์์คํธ๋ก๋ฅผ ์ด์ฉํ ๊ตฌ๊ธ๋ฒ์ญ๊ธฐ' ๊ฐ์ ์คํ ์์ค๋ฅผ ๊นํ๋ธ(https://github.com/guileschool) ์ ๋๊ณ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์ํ๊ณ ์์ต๋๋ค. ์คํ ์์ค ํ๋์จ์ด '๋น๊ธ๋ณธ๋ธ๋' ์๋ ๋ง์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋งฅ(๋ถ) ์๋ํ๋ฅผ ์ด์ฉํ์ฌ ์์ฐ์ฑ์ ๋์ผ ์ ์๋ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ถ์ผ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๊ณ , ์ด๋ฅผ ํ์๋ก ํ๋ ์ฌ๋๋ค์ ๋๊ณ ์์ต๋๋ค.
๊ฐ์ ์์ฒญ ๋ฐ ๊ธฐํ ๋ฌธ์์ฌํญ์ guileschool@gmail.com์ผ๋ก ๋ณด๋ด์ฃผ์ธ์ :)
์ ์ฒด
101๊ฐ โ (6์๊ฐ 8๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
1. ์์ํ๊ธฐ
03:07
9. echo์ ์ฌ์ฉ๋ฒ
07:03
10. ๋ช ๋ น์ ๊ตฌ์กฐ
02:14
11. glob์ ๊ณต๋ฐฑ
02:23
12. ์ธ์ฉ๋ฌธ
02:22
14. ๋ช ๋ น์ด(wc)
02:20
15. ๋ช ๋ น์ด(tail)
04:29
16. ๋ณ์นญ(alias)
06:04
19. ๋ช ๋ น์ด(read)
04:32
20. while..do..done
04:09
27. ์ ๋ณ์
01:30
30. ํ๊ฒฝ ๋ณ์
02:56
31. declare
03:40
33. globe ํจํด
01:32
34. ๋ช ๋ น์ด(tr)
04:23
35. ๋ช ๋ น์ด(cut)
03:04
36. ํ์ฅ glob
02:39
39. ์ค์ต(DRILL)
00:09