์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
Manual pages์—์„œ ๋„˜์–ด์˜ด
1. ๊ฐœ์š”2. ์‚ฌ์šฉ๋ฐฉ๋ฒ•3. ์žฅ์ 4. ๋‹จ์ 

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 ์„น์…˜๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์„น์…˜ ๋ฒˆํ˜ธ
์„น์…˜ ์„ค๋ช…
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 ๋“ฑ์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ, ์ ์  ๋ณต์žกํ•œ ํ•จ์ˆ˜๋“ค์„ ์ฐพ์•„ ๋ณด๋Š” ํ˜•ํƒœ๋กœ ์ ‘๊ทผํ•˜๋„๋ก ํ•˜์ž. ๋‹น์‹ ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Šฅ๋ ฅ์„ ํ™•์‹คํžˆ ํ–ฅ์ƒ์‹œ์ผœ ์ค„ ๊ฒƒ์ด๋‹ค. ์•„ ๋ฌผ๋ก  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ด์ œ ์ž…๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋งจ ํŽ˜์ด์ง€๋ณด๋‹ค๋Š” ์ฑ…์ด ๋‚ซ๋‹ค.

4. ๋‹จ์ [ํŽธ์ง‘]

์œ ๋‹‰์Šค์— ๋Šฅ์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์ด ์“ด ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๋ณด์ž ์ž…์žฅ์—์„œ๋Š” ๋ถˆ์นœ์ ˆํ•˜๊ฑฐ๋‚˜ ์–ด๋ ค์šด ๋‚ด์šฉ์ด ๋งŽ๋‹ค. xkcd์˜ ๋ฉ”๋‰ด์–ผ์— ๋Œ€ํ•œ ๋งŒํ™”. 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).