์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
Manual pages์์ ๋์ด์ด
1. ๊ฐ์[ํธ์ง]
โman์ manual page ํ๋ฉด
UNIX, Linux ๊ณ์ด์ ๊ธฐ๋ณธ์ ์ธ ํ๋ก๊ทธ๋จ, ์์คํ ์ฝ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์, ๋๋ฐ์ด์ค ํ์ผ, ํ์ผํฌ๋ฉง ์ ๋์ค ๋ฐ ๋ฆฌ๋ ์ค ์์คํ ์ ๋ํ ๋ํ ์ ๋ฐ์ ์ธ ์ ๋ณด๊ฐ ์ ๋ ฅ๋์ด ์๋ ๋งค๋ด์ผ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋งจ ํ์ด์ง(man page)๋ก ์ค์ฌ์ ๋ถ๋ฅธ๋ค, ๋งจ ํ์ด์ง ์ค ํน์ ํ ํญ๋ชฉ์ ์ง์นญํ ๋๋ ํญ๋ชฉ ์ด๋ฆ(์น์ ๋ฒํธ)[1] ๋ก ํํ ํ๋ค.
๋งจ ํ์ด์ง ์ญ์ ๋งค๋ด์ผ๋ก ์กด์ฌ ํ๋ฉฐ ์ฌ์ฉ๋ฒ์ man man์ ์ ๋ ฅํ๋ฉด ๋๋ค(์์ ์ด๋ฏธ์ง ์ฐธ๊ณ ). ๋งจ ํ์ด์ง์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ man [ํญ๋ชฉ] ์ผ๋ก ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ์ฌ์ฉ๋ฐฉ๋ฒ ์ฐธ๊ณ .
๋งจ ํ์ด์ง๋ UNIX, Linux ๊ณ์ด์ ๊ธฐ๋ณธ์ ์ธ ํ๋ก๊ทธ๋จ ์ค ํ๋๋ก์ ์์ด๋ก ์์ฑ ๋์ด ์๊ณ ํฐ๋ฏธ๋๋ฅผ ์ํด ๋ง๋ค์ด์ก๋ค. ์ด๋ฅผ ์น ๋ฐ ํ๊ธ๋ก ๋ฒ์ญํ๋ ํ๊ธ ๋งจ ํ์ด์ง ํ๋ก์ ํธ๋ ํ์๋์๋ค.
2. ์ฌ์ฉ๋ฐฉ๋ฒ[ํธ์ง]
UNIX, Linux ํฐ๋ฏธ๋์์ "man [๋ณด๊ณ ์ถ์ ๋งค๋ด์ผ์ด๋ฆ]"์ ์
๋ ฅํ๋ฉด ์์ธํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ค.
๊ฐํน ๋งค๋ด์ผ์ ์ด๋ฆ์ ๊ฐ์ง๋ง ๋ค๋ฅธ ๋งค๋ด์ผ์ธ ํญ๋ชฉ[2] ๋ค์ด ์๋ค. ์ด๋ฐ ํญ๋ชฉ์ ์น์ (section)์ ํตํด ๊ตฌ๋ถํ๊ฒ ๋์ด ์์ผ๋ฏ๋ก ๋ช ์์ ์ผ๋ก "man [์น์ ] [ํญ๋ชฉ]"์ฒ๋ผ ๋ช ์์ ์ผ๋ก ๊ธฐ๋ก ๋์ด์ผ ํ๋ค. ๊ฐ ์น์ ์ ๋ํ ์์ธํ ์๊ฐ๋ "man [์น์ ] intro"๋ฅผ ํตํด ๋ณผ ์ ์๋ค.
man page ์น์ ๋ค์ ์๋์ ๊ฐ๋ค.
๊ฐํน ๋งค๋ด์ผ์ ์ด๋ฆ์ ๊ฐ์ง๋ง ๋ค๋ฅธ ๋งค๋ด์ผ์ธ ํญ๋ชฉ[2] ๋ค์ด ์๋ค. ์ด๋ฐ ํญ๋ชฉ์ ์น์ (section)์ ํตํด ๊ตฌ๋ถํ๊ฒ ๋์ด ์์ผ๋ฏ๋ก ๋ช ์์ ์ผ๋ก "man [์น์ ] [ํญ๋ชฉ]"์ฒ๋ผ ๋ช ์์ ์ผ๋ก ๊ธฐ๋ก ๋์ด์ผ ํ๋ค. ๊ฐ ์น์ ์ ๋ํ ์์ธํ ์๊ฐ๋ "man [์น์ ] intro"๋ฅผ ํตํด ๋ณผ ์ ์๋ค.
man page ์น์ ๋ค์ ์๋์ ๊ฐ๋ค.
์น์
๋ฒํธ | ์น์
์ค๋ช
|
1 | ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ๋๋ ์ ๋ช
๋ น |
2 | ์์คํ
ํธ์ถ (system call) |
3 | ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ (ํ๋ก๊ทธ๋จ์ ํฌํจ๋ ํจ์๋ค) |
4 | ํน๋ณํ ํ์ผ (์ฃผ๋ก /dev ์ ํฌํจ๋ ๋ค๋ฐ์ด์ค ํ์ผ๋ค) |
5 | ํ์ผ ํฌ๋งท ๋ฐ ๊ท์น (/etc/passed ๊ฐ์ ํ์ผ) |
6 | ๊ฒ์ |
7 | ๊ธฐํ (๋งคํฌ๋ก ํจํค์ง๋ ๊ท์ฝ ๊ฐ์ ๋ด์ฉ์ ๋ด๊ณ ์์. ์: man(7), groff(7)) |
8 | ์์คํ
๊ด๋ฆฌ์๋ฅผ ์ํ ๋ช
๋ น - (๋ณดํต์ root ์ฌ์ฉ์๋ฅผ ์ํจ) |
9 | ์ปค๋ ๋ฃจํด (ํ์ค์๋) |
man ๋ช ๋ น์ด์ ์ฌ์ฉ ์์ ๋ ์๋์ ๊ฐ๋ค.
# ๋ฐ์ด๋๋ฆฌ ํ๋ก๊ทธ๋จ์ธ printf์ ๋งค๋ด์ผ์ ๋ณด๊ณ ์ถ๋ค๋ฉด
prompt$ man printf
# ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ printf ํจ์์ ๋งค๋ด์ผ์ ๋ณด๊ณ ์ถ๋ค๋ฉด ์์ ์ด๊ฑฐ๋ ์น์
๋ถ๋ฅ ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ์ ํด๋นํ๋ 3์ ์ถ๊ฐ๋ก ์ง์ ํด์
prompt$ man 3 printf
๊ฒ์์ vi ํค๋งคํ์ ๋ฐ๋ผ
/๋ก ์์ํ์ฌ ์ ๊ทํํ์์ ์
๋ ฅํ๋ฉด ๋๋ค. ๋ค์ ๊ฒ์๊ฒฐ๊ณผ๋ก ์ด๋ํ ๋๋ n, ์ด์ ๊ฒ์๊ฒฐ๊ณผ๋ N์ ๋๋ฅด๋ฉด ๋๋ค. ๋ํ ๊ฐ๋
์ฑ์ ๋์ด๊ธฐ ์ํด ์์์ ์ปค์คํฐ๋ง์ด์ฆํ ์ ์๋ค. #3. ์ฅ์ [ํธ์ง]
CUI(ํฐ๋ฏธ๋)ํ๊ฒฝ์์ ์ ๋์ค ๋ฐ ๋ฆฌ๋
์ค ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ, ํจ์, API, ํน์ ํ์ผ ๊ฐ์ด ์ด์์ฒด์ ์ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ๋ค ๋ด๊ณ ์๋ค. ์ธํฐ๋ท์ด ์ง์๋์ง ์๋๋ผ๋ API ํจ์์ ์ฌ์ฉ๋ฒ, ํ๋ผ๋ฉํฐ ๊ฐ์ ์ธ์ธํ ๋ด์ฉ์ด ๋ด๊ฒจ ์๊ธฐ ๋๋ฌธ์ ์ ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ ํน์ ๋ฒ์ ๋ณ๋ก ์ฌ์ฉ๋ฒ์ด ๋ค๋ฅธ ๋ช ๋ น์ด๊ฐ ์์ ๊ฒฝ์ฐ, ๋งจ ํ์ด์ง๋ ํ์ฌ ์์คํ ์ ์ค์น๋ ๋ฐ๋ก ๊ทธ ๋ฒ์ ์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ค์น๋ ๋ฒ์ ์ ๋ง๋ ์ต์ ์กฐํฉ์ ์ฐพ์๋ด๊ณ ์ ํ ๋๋ ๋งจ ํ์ด์ง๊ฐ ์ ์ฉํ๋ค.
์ผ๋จ ๊ฐ์ฅ ์ฌ์ด printf ๋ฑ์ผ๋ก ์์ํ์ฌ, ์ ์ ๋ณต์กํ ํจ์๋ค์ ์ฐพ์ ๋ณด๋ ํํ๋ก ์ ๊ทผํ๋๋ก ํ์. ๋น์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ์ ํ์คํ ํฅ์์์ผ ์ค ๊ฒ์ด๋ค. ์ ๋ฌผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ด์ ์ ๋ฌธํ๋ ์ฌ๋์ ๋งจ ํ์ด์ง๋ณด๋ค๋ ์ฑ ์ด ๋ซ๋ค.
๊ทธ๋ฆฌ๊ณ ํน์ ๋ฒ์ ๋ณ๋ก ์ฌ์ฉ๋ฒ์ด ๋ค๋ฅธ ๋ช ๋ น์ด๊ฐ ์์ ๊ฒฝ์ฐ, ๋งจ ํ์ด์ง๋ ํ์ฌ ์์คํ ์ ์ค์น๋ ๋ฐ๋ก ๊ทธ ๋ฒ์ ์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ค์น๋ ๋ฒ์ ์ ๋ง๋ ์ต์ ์กฐํฉ์ ์ฐพ์๋ด๊ณ ์ ํ ๋๋ ๋งจ ํ์ด์ง๊ฐ ์ ์ฉํ๋ค.
์ผ๋จ ๊ฐ์ฅ ์ฌ์ด printf ๋ฑ์ผ๋ก ์์ํ์ฌ, ์ ์ ๋ณต์กํ ํจ์๋ค์ ์ฐพ์ ๋ณด๋ ํํ๋ก ์ ๊ทผํ๋๋ก ํ์. ๋น์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ์ ํ์คํ ํฅ์์์ผ ์ค ๊ฒ์ด๋ค. ์ ๋ฌผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ด์ ์ ๋ฌธํ๋ ์ฌ๋์ ๋งจ ํ์ด์ง๋ณด๋ค๋ ์ฑ ์ด ๋ซ๋ค.
4. ๋จ์ [ํธ์ง]
์ ๋์ค์ ๋ฅ์ํ ๊ฐ๋ฐ์๋ค์ด ์ด ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ณด์ ์
์ฅ์์๋ ๋ถ์น์ ํ๊ฑฐ๋ ์ด๋ ค์ด ๋ด์ฉ์ด ๋ง๋ค. xkcd์ ๋ฉ๋ด์ผ์ ๋ํ ๋งํ. man page๋ ๋นผ๋๋ฐ๋ ๋ชปํ๊ณ ์ค๋ฅธ์ชฝ ๋์ ์์นํ๋ค(...)
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ช ๋ น์ด๊ฐ ๋งจ ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์๋๋ค. ์๋ ํํฐ ๋ช ๋ น์ด๋ค์ ์์ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก๋ง ๋งค๋ด์ผ์ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.[3] info ๋ช ๋ น์ด ์ด ๊ฒฝ์ฐ์ ๋์์ด ๋ ์๋ ์์ง๋ง ๊ตฌ๊ธ๊ฒ์์ผ๋ก ์ฐพ์๋ด๋ ์ ๋ณด์๋ ์์ ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ช ๋ น์ด๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋งจ ํ์ด์ง๋ ์ฉ ์ข์ ์ ํ์ ์๋๋ค. ๋์ฒด์ ์ธ ์ฌ์ฉ๋ฒ์ ์๋๋ฐ ๋ช๋ช ์ต์ ์ด ๊ธฐ์ต๋์ง ์์ ๋ ๋น ๋ฅด๊ฒ ์ด๋ํ๋ ์ฉ๋๊ฐ ๊ฐ์ฅ ์ ์ ํ๋ค.
์ ๋์ค๋ ๋ฆฌ๋ ์ค์์ ์์ฃผ ์ฌ์ฉํ๋ vi ํค๋งคํ, ๊ณ ์ ํญ ํฐ๋ฏธ๋ UI, ์์ ๋ณ๊ฒฝ ์ค์ ๋ฑ์ ์ต์ํ์ง ์์ ๊ฒฝ์ฐ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ํด๋น man page๋ฅผ ์ฐพ๋๊ฒ ๋ ํธํ ์๋ ์๋ค. ์๋ฅผ๋ค์ด
๋งจ ํ์ด์ง๋ ๋ณดํต ์ผ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ์๋ ๋๋ฌด ๊ธธ๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค. ์ด ๊ฒฝ์ฐ ๋งจ ํ์ด์ง๋ฅผ ์ฝ๊ธฐ ์ ์
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ช ๋ น์ด๊ฐ ๋งจ ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์๋๋ค. ์๋ ํํฐ ๋ช ๋ น์ด๋ค์ ์์ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก๋ง ๋งค๋ด์ผ์ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.[3] info ๋ช ๋ น์ด ์ด ๊ฒฝ์ฐ์ ๋์์ด ๋ ์๋ ์์ง๋ง ๊ตฌ๊ธ๊ฒ์์ผ๋ก ์ฐพ์๋ด๋ ์ ๋ณด์๋ ์์ ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ช ๋ น์ด๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋งจ ํ์ด์ง๋ ์ฉ ์ข์ ์ ํ์ ์๋๋ค. ๋์ฒด์ ์ธ ์ฌ์ฉ๋ฒ์ ์๋๋ฐ ๋ช๋ช ์ต์ ์ด ๊ธฐ์ต๋์ง ์์ ๋ ๋น ๋ฅด๊ฒ ์ด๋ํ๋ ์ฉ๋๊ฐ ๊ฐ์ฅ ์ ์ ํ๋ค.
์ ๋์ค๋ ๋ฆฌ๋ ์ค์์ ์์ฃผ ์ฌ์ฉํ๋ vi ํค๋งคํ, ๊ณ ์ ํญ ํฐ๋ฏธ๋ UI, ์์ ๋ณ๊ฒฝ ์ค์ ๋ฑ์ ์ต์ํ์ง ์์ ๊ฒฝ์ฐ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ํด๋น man page๋ฅผ ์ฐพ๋๊ฒ ๋ ํธํ ์๋ ์๋ค. ์๋ฅผ๋ค์ด
man printf๋ผ๊ณ ๊ตฌ๊ธ์ ๊ฒ์ํ๋ฉด ์ฒซ๋ฒ์งธ ๊ฒฐ๊ณผ๋ก ์ด๋ฐ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. ๋จ, ๊ตฌ๊ธ ๊ฒ์์์ ๋์จ man page๊ฐ ์ค๋ช
ํ๋ ํ๋ก๊ทธ๋จ ๋ฒ์ ์ด ์์ ์ ์ปดํจํฐ์ ์ค์น๋ ํ๋ก๊ทธ๋จ ๋ฒ์ ๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ ์ฃผ์ํด์ผํ๋ค.๋งจ ํ์ด์ง๋ ๋ณดํต ์ผ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ์๋ ๋๋ฌด ๊ธธ๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค. ์ด ๊ฒฝ์ฐ ๋งจ ํ์ด์ง๋ฅผ ์ฝ๊ธฐ ์ ์
tldr ํน์ bropages ๋ฅผ ์ด์ฉํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด๋ค.[4] ์์ปจ๋ tldr ls ๋ผ๊ณ ์
๋ ฅํ๋ฉด tl;dr๋ผ๋ ์ด๋ฆ์ ๊ฑธ๋ง๊ฒ ls ์ปค๋งจ๋์ ๊ด๋ จํด ์์ฃผ ์ฌ์ฉํ ๋ฒํ ์์ ๋ช ๊ฐ๋ง์ ์งค๋งํ๊ฒ ๋์ดํด์ค๋ค.[1] ์๋ฅผ ๋ค์ด open system call API๋ open(2) ๋ก ํํ
[2] ์๋ฅผ ๋ค์ด system call API ์ค ํ๋์ธ fork()์ C์ธ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์์ธ fork()๋ ๊ฐ๊ฐ 2๋ฒ ์น์
๊ณผ 3๋ฒ ์น์
์์ ์ฐพ์์ผ ํ๋ค.
[3] ๋ณดํต ๊นํ๋ธ์ README.md ํ์ผ๋ก ์๋ดํ๋ค.
[4] ์ ์๋ 2020๋
5์ ํ์ฌ ์ฐ๋ถํฌ ๊ธฐ๋ณธ ์ ์ฅ์์ ํฌํจ๋์ด์๊ธฐ ๋๋ฌธ์ ์ค์น๋ ๊ฐํธํ๋ค (
sudo apt install tldr).