IT Talks/Linux

๊ณ ๊ธ‰ Bash ์Šคํฌ๋ฆฝํŒ… ๊ฐ€์ด๋“œ

OkOJJ 2014. 4. 25. 10:20

๊ณ ๊ธ‰ Bash ์Šคํฌ๋ฆฝํŒ… ๊ฐ€์ด๋“œ

Bash๋ฅผ ์ด์šฉํ•œ ์‰˜ ์Šคํฌ๋ฆฝํŒ… ์™„์ „ ๊ฐ€์ด๋“œ

Mendel Cooper

Brindlesoft

thegrendel (at) theriver.com

์ฐจํ˜„์ง„

terminus (at) kldp.org

2001๋…„ 12์›” 16์ผ

๋ณธ ํŠœํ† ๋ฆฌ์–ผ์€ ์—ฌ๋Ÿฌ๋ถ„์ด Bash์— ๋Œ€ํ•ด์„œ ์–ด๋– ํ•œ ์‚ฌ์ „ ์ง€์‹๋„ ์—†๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ฉ๋‹ˆ๋‹ค๋งŒ, ๊ธˆ๋ฐฉ ์ค‘/๊ณ ๊ธ‰ ์ˆ˜์ค€์˜ ๋ช…๋ น์–ด๋“ค์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค(...์œ ๋‹‰์Šค์˜ ์Šฌ๊ธฐ๋กญ๊ณ  ๊ตํ›ˆ์ ์ธ ๋ถ€๋ถ„๋“ค์„ ๋ฐฐ์›Œ ๋‚˜๊ฐ€๋ฉด์„œ). ์ด ๋ฌธ์„œ๋Š” ๊ต๊ณผ์„œ๋‚˜, ํ˜ผ์ž ๊ณต๋ถ€ํ•  ๋•Œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด์–ผ, ์‰˜ ์Šคํฌ๋ฆฝํŒ… ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๋ฐ ์†Œ์Šค๋กœ ์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐ์šฐ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง์ ‘ ์งœ ๋ณด๋Š” ๊ฒƒ์ด๋‹ค๋ผ๋Š” ์ „์ œํ•˜์—, ์—ฐ์Šต๋ฌธ์ œ์™€ ์•„์ฃผ ์ž์„ธํ•˜๊ฒŒ ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์˜ˆ์ œ๋“ค๋กœ ๋Šฅ๋™์ ์ธ ๋…์ž๋“ค์˜ ์ฐธ์—ฌ๋ฅผ ์œ ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์˜ ์ตœ์‹  ๋ฒ„์ „์€ ์ €์ž์˜ ํ™ˆํŽ˜์ด์ง€์—์„œ SGML ์†Œ์Šค์™€ HTML์„ "ํƒ€๋ฅด๋ณผ"ํ˜•ํƒœ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์นจ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ change log๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ณ ์นœ ๊ณผ์ •
๊ณ ์นจ 0.12000๋…„ 6์›” 14์ผ๊ณ ์นœ์ด mc
์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค.
๊ณ ์นจ 0.22000๋…„ 10์›” 30์ผ๊ณ ์นœ์ด mc
๋ฒ„๊ทธ ์ˆ˜์ •, ๋‚ด์šฉ๋ฐ ์˜ˆ์ œ ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€.
๊ณ ์นจ 0.32001๋…„ 2์›” 12์ผ๊ณ ์นœ์ด mc
๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ.
๊ณ ์นจ 0.42001๋…„ 7์›” 8์ผ๊ณ ์นœ์ด mc
๋ฒ„๊ทธ ์ˆ˜์ •, ๋” ๋งŽ์€ ๋‚ด์šฉ๋ฐ ์˜ˆ์ œ ์ถ”๊ฐ€ - ์™„์ „ํ•œ ์ฑ… ํ˜•ํƒœ์˜ ๊ฐœ์ •ํŒ.
๊ณ ์นจ 0.52001๋…„ 9์›” 3์ผ๊ณ ์นœ์ด mc
๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ. ๋ฒ„๊ทธ ์ˆ˜์ •, ๋‚ด์šฉ ์ถ”๊ฐ€, ์žฅ๊ณผ ์ ˆ์„ ์žฌํŽธ์„ฑ.
๊ณ ์นจ 1.0.112001๋…„ 12์›” 16์ผ๊ณ ์นœ์ด mc
๋ฒ„๊ทธ ์ˆ˜์ •, ์žฌํŽธ์„ฑ, ๋‚ด์šฉ ์ถ”๊ฐ€. Stable release.

๋ฐ”์น˜๋Š” ๊ธ€

๋ชจ๋“  ๋งˆ๋ฒ•์˜ ๊ทผ์›์ธ Anita์—๊ฒŒ ์ด ์ฑ…์„ ๋ฐ”์นฉ๋‹ˆ๋‹ค.

์ฐจ๋ก€
Part 1. ์†Œ๊ฐœ
1. ์™œ ์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์•ผ ํ•˜์ฃ ?
2. #! ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
2.1. ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ•˜๊ธฐ
2.2. ๋ชธํ’€๊ธฐ ์—ฐ์Šต๋ฌธ์ œ(Preliminary Exercises)
Part 2. ๊ธฐ์ดˆ ๋‹จ๊ณ„
3. ์ข…๋ฃŒ์™€ ์ข…๋ฃŒ ์ƒํƒœ(Exit and Exit Status)
4. ํŠน์ˆ˜ ๋ฌธ์ž
5. ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜ ์†Œ๊ฐœ
5.1. ๋ณ€์ˆ˜ ์น˜ํ™˜(Variable Substitution)
5.2. ๋ณ€์ˆ˜ ํ• ๋‹น(Variable Assignment)
5.3. Bash ๋ณ€์ˆ˜๋Š” ํƒ€์ž…์ด ์—†๋‹ค(untyped)
5.4. ํŠน์ˆ˜ํ•œ ๋ณ€์ˆ˜ ํƒ€์ž…
6. ์ฟผ์šฐํŒ…(quoting)
7. ํ…Œ์ŠคํŠธ
7.1. ํ…Œ์ŠคํŠธ(Test Constructs)
7.2. ํŒŒ์ผ ํ…Œ์ŠคํŠธ ์—ฐ์‚ฐ์ž
7.3. ๋น„๊ต ์—ฐ์‚ฐ์ž(์ด์ง„)
7.4. ์ค‘์ฒฉ๋œ if/then ์กฐ๊ฑด ํ…Œ์ŠคํŠธ
7.5. ์—ฌ๋Ÿฌ๋ถ„์ด ํ…Œ์ŠคํŠธ๋ฌธ์„ ์–ผ๋งˆ๋‚˜ ์ดํ•ดํ–ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ
8. ์—ฐ์‚ฐ์ž ์ด์•ผ๊ธฐ(Operations and Related Topics)
8.1. ์—ฐ์‚ฐ์ž(Operators)
8.2. ์ˆซ์ž ์ƒ์ˆ˜(Numerical Constants)
Part 3. ์ค‘๊ธ‰ ๋‹จ๊ณ„(Beyond the Basics)
9. ๋ณ€์ˆ˜ ์žฌ๊ฒ€ํ† (Variables Revisited)
9.1. ๋‚ด๋ถ€ ๋ณ€์ˆ˜(Internal Variables)
9.2. ๋ฌธ์ž์—ด ์กฐ์ž‘
9.3. ๋งค๊ฐœ๋ณ€์ˆ˜ ์น˜ํ™˜(Parameter Substitution)
9.4. ๋ณ€์ˆ˜ ํƒ€์ž… ์ง€์ •: declare ๋‚˜ typeset
9.5. ๋ณ€์ˆ˜ ๊ฐ„์ ‘ ์ฐธ์กฐ
9.6. $RANDOM: ๋žœ๋คํ•œ ์ •์ˆ˜ ๋งŒ๋“ค๊ธฐ
9.7. ์ด์ค‘์†Œ๊ด„ํ˜ธ(The Double Parentheses Construct)
10. ๋ฃจํ”„์™€ ๋ถ„๊ธฐ(Loops and Branches)
10.1. ๋ฃจํ”„
10.2. ์ค‘์ฒฉ๋œ ๋ฃจํ”„
10.3. ๋ฃจํ”„ ์ œ์–ด
10.4. ํ…Œ์ŠคํŠธ์™€ ๋ถ„๊ธฐ(Testing and Branching)
11. ๋‚ด๋ถ€ ๋ช…๋ น์–ด(Internal Commands and Builtins)
11.1. ์ž‘์—… ์ œ์–ด ๋ช…๋ น์–ด
12. ์™ธ๋ถ€ ํ•„ํ„ฐ, ํ”„๋กœ๊ทธ๋žจ, ๋ช…๋ น์–ด
12.1. ๊ธฐ๋ณธ ๋ช…๋ น์–ด
12.2. ๋ณต์žกํ•œ ๋ช…๋ น์–ด
12.3. ์‹œ๊ฐ„/๋‚ ์งœ ๋ช…๋ น์–ด
12.4. ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ ๋ช…๋ น์–ด
12.5. ํŒŒ์ผ, ์•„์นด์ด๋ธŒ(archive) ๋ช…๋ น์–ด
12.6. ํ†ต์‹  ๋ช…๋ น์–ด
12.7. ํ„ฐ๋ฏธ๋„ ์ œ์–ด ๋ช…๋ น์–ด
12.8. ์ˆ˜ํ•™์šฉ ๋ช…๋ น์–ด
12.9. ๊ธฐํƒ€ ๋ช…๋ น์–ด
13. ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž์šฉ ๋ช…๋ น์–ด
14. ๋ช…๋ น์–ด ์น˜ํ™˜(Command Substitution)
15. ์‚ฐ์ˆ  ํ™•์žฅ(Arithmetic Expansion)
16. I/O ์žฌ์ง€ํ–ฅ
16.1. exec ์“ฐ๊ธฐ
16.2. ์ฝ”๋“œ ๋ธ”๋Ÿญ ์žฌ์ง€ํ–ฅ
16.3. ์‘์šฉ
17. Here Documents
18. ์‰ฌ์–ด๊ฐ€๊ธฐ
Part 4. ๊ณ ๊ธ‰ ์ฃผ์ œ๋“ค(Advanced Topics)
19. ์ •๊ทœ ํ‘œํ˜„์‹(Regular Expressions)
19.1. ์ •๊ทœ ํ‘œํ˜„์‹์˜ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ
19.2. Globbing
20. ์„œ๋ธŒ์‰˜(Subshells)
21. ์ œํ•œ๋œ ์‰˜(Restricted Shells)
22. ํ”„๋กœ์„ธ์Šค ์น˜ํ™˜(Process Substitution)
23. ํ•จ์ˆ˜
23.1. ๋ณต์žก ํ•จ์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ณต์žก์„ฑ(Complex Functions and Function Complexities)
23.2. ์ง€์—ญ ๋ณ€์ˆ˜์™€ ์žฌ๊ท€ ํ•จ์ˆ˜(Local Variables and Recursion)
24. ๋ณ„์นญ(Aliases)
25. ๋ฆฌ์ŠคํŠธ(List Constructs)
26. ๋ฐฐ์—ด
27. ํŒŒ์ผ๋“ค
28. /dev ์™€ /proc
28.1. /dev
28.2. /proc
29. ์ œ๋กœ์™€ ๋„(Of Zeros and Nulls)
30. ๋””๋ฒ„๊น…
31. ์˜ต์…˜
32. ๋ช‡ ๊ฐ€์ง€ ์ง€์ €๋ถ„ํ•œ ๊ฒƒ๋“ค(Gotchas)
33. ์Šคํƒ€์ผ ์žˆ๊ฒŒ ์Šคํฌ๋ฆฝํŠธ ์งœ๊ธฐ
33.1. ๋น„๊ณต์‹ ์‰˜ ์Šคํฌ๋ฆฝํŒ… ์Šคํƒ€์ผ์‹œํŠธ
34. ์ž์งˆ๊ตฌ๋ ˆํ•œ ๊ฒƒ๋“ค
34.1. ๋Œ€ํ™”(interactive)ํ˜• ๋ชจ๋“œ์™€ ๋น„๋Œ€ํ™”(non-interactive)ํ˜• ๋ชจ๋“œ ์‰˜๊ณผ ์Šคํฌ๋ฆฝํŠธ
34.2. ์‰˜ ๋ž˜ํผ(Shell Wrappers)
34.3. ํ…Œ์ŠคํŠธ์™€ ๋น„๊ต: ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•
34.4. ์ตœ์ ํ™”
34.5. ํŒ ๋ชจ์Œ(Assorted Tips)
34.6. ๊ดด์ƒํ•œ ๊ฒƒ(Oddities)
34.7. ์ด์‹์„ฑ ๋ฌธ์ œ(Portability Issues)
34.8. ์œˆ๋„์šฐ์ฆˆ์—์„œ์˜ ์‰˜ ์Šคํฌ๋ฆฝํŒ…
35. Bash, ๋ฒ„์ „ 2
36. ํ›„๊ธฐ(Endnotes)
36.1. ์ €์ž ํ›„๊ธฐ(Author's Note)
36.2. ์ €์ž์— ๋Œ€ํ•ด์„œ
36.3. ์ด ์ฑ…์„ ๋งŒ๋“œ๋Š”๋ฐ ์“ด ๋„๊ตฌ๋“ค
36.3.1. ํ•˜๋“œ์›จ์–ด
36.3.2. ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ”„๋ฆฐํŠธ์›จ์–ด
36.4. ํฌ๋ ˆ๋”ง
์„œ์ง€์‚ฌํ•ญ
A. ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๋ณด๋‚ด์ค€ ์Šคํฌ๋ฆฝํŠธ๋“ค(Contributed Scripts)
B. Sed ์™€ Awk ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ž…๋ฌธ์„œ
B.1. Sed
B.2. Awk
C. ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ข…๋ฃŒ ์ฝ”๋“œ
D. I/O์™€ I/O ์žฌ์ง€ํ–ฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ
E. ์ง€์—ญํ™”(Localization)
F. ์ƒ˜ํ”Œ .bashrc ํŒŒ์ผ
G. ๋„์Šค(DOS) ๋ฐฐ์น˜ ํŒŒ์ผ์„ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜
H. ์—ฐ์Šต๋ฌธ์ œ
I. Copyright
์˜ˆ ๋ชฉ๋ก
2-1. cleanup: /var/log ์— ์žˆ๋Š” ๋กœ๊ทธ ํŒŒ์ผ๋“ค์„ ์ฒญ์†Œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ
2-2. cleanup: ์œ„ ์Šคํฌ๋ฆฝํŠธ์˜ ํ–ฅ์ƒ๋˜๊ณ  ์ผ๋ฐ˜ํ™”๋œ ๋ฒ„์ „.
3-1. ์ข…๋ฃŒ/์ข…๋ฃŒ ์ƒํƒœ
3-2. !์œผ๋กœ ์กฐ๊ฑด์„ ๋ถ€์ •ํ•˜๊ธฐ
4-1. ์ฝ”๋“œ ๋ธ”๋Ÿญ๊ณผ I/O ์žฌ์ง€ํ–ฅ
4-2. ์ฝ”๋“œ ๋ธ”๋Ÿญ์˜ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ธฐ
4-3. ์ตœ๊ทผ ํ•˜๋ฃจ๋™์•ˆ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์„ ๋ฐฑ์—…ํ•˜๊ธฐ
5-1. ๋ณ€์ˆ˜ ํ• ๋‹น๊ณผ ์น˜ํ™˜
5-2. ํ‰๋ฒ”ํ•œ ๋ณ€์ˆ˜ ํ• ๋‹น
5-3. ํ‰๋ฒ”ํ•˜๊ณ  ์žฌ๋ฏธ์žˆ๋Š” ๋ณ€์ˆ˜ ํ• ๋‹น
5-4. ์ •์ˆ˜? ๋ฌธ์ž์—ด?
5-5. ์œ„์น˜ ๋งค๊ฐœ๋ณ€์ˆ˜
5-6. whwhois ๋„๋ฉ”์ธ ๋„ค์ž„ ๋ฃฉ์—…
5-7. shift ์“ฐ๊ธฐ
6-1. ์ด์ƒํ•œ ๋ณ€์ˆ˜๋ฅผ ์—์ฝ”ํ•˜๊ธฐ
6-2. ์ด์Šค์ผ€์ดํ”„๋œ ๋ฌธ์ž๋“ค
7-1. ๋ฌด์—‡์ด ์ฐธ์ธ๊ฐ€?
7-2. [ ] ์™€ test ์˜ ๋™์ผํ•จ
7-3. (( ))๋กœ ์‚ฐ์ˆ ์‹ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ
7-4. ์‚ฐ์ˆ  ๋น„๊ต์™€ ๋ฌธ์ž์—ด ๋น„๊ต
7-5. ๋ฌธ์ž์—ด์ด ๋„์ธ์ง€ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ
7-6. zmost
8-1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์“ฐ๊ธฐ
8-2. && ์™€ || ๋ฅผ ์“ด ๋ณตํ•ฉ ์กฐ๊ฑด ํ…Œ์ŠคํŠธ
8-3. ์ˆซ์ž ์ƒ์ˆ˜ ํ‘œ๊ธฐ๋ฒ•:
9-1. $IFS ์™€ ๋นˆ ์นธ
9-2. ํƒ€์ž„ ์•„์›ƒ ์ฒ˜๋ฆฌ ์ž…๋ ฅ
9-3. ํƒ€์ž„ ์•„์›ƒ ์ฒ˜๋ฆฌ ์ž…๋ ฅ, ํ•œ ๋ฒˆ ๋”
9-4. ๋‚ด๊ฐ€ ๋ฃจํŠธ์ธ๊ฐ€?
9-5. arglist: $* ๊ณผ $@ ๋กœ ์ธ์ž๋ฅผ ๋‚˜์—ดํ•˜๊ธฐ
9-6. ์ผ๊ด€์„ฑ ์—†๋Š” $*๊ณผ $@์˜ ๋™์ž‘
9-7. $IFS ๊ฐ€ ๋น„์–ด ์žˆ์„ ๋•Œ $*์™€ $@
9-8. ๋ฐ‘์ค„ ๋ณ€์ˆ˜(underscore variable)
9-9. ๊ทธ๋ž˜ํ”ฝ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํฌ๋งท ํ™•์žฅ์ž๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ฉด์„œ ๋ณ€ํ™˜
9-10. ๋งค๊ฐœ๋ณ€์ˆ˜ ์น˜ํ™˜๊ณผ : ์“ฐ๊ธฐ
9-11. ๋ณ€์ˆ˜์˜ ๊ธธ์ด
9-12. ๋งค๊ฐœ๋ณ€์ˆ˜ ์น˜ํ™˜์—์„œ์˜ ํŒจํ„ด ๋งค์นญ
9-13. ํŒŒ์ผ ํ™•์žฅ์ž ๋ฐ”๊พธ๊ธฐ:
9-14. ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ„ด ๋งค์นญ ์‚ฌ์šฉํ•˜๊ธฐ
9-15. ๋ฌธ์ž์—ด์˜ ์ ‘๋‘, ์ ‘๋ฏธ์–ด์—์„œ ์ผ์น˜ํ•˜๋Š” ํŒจํ„ด ์ฐพ๊ธฐ
9-16. declare๋ฅผ ์จ์„œ ๋ณ€์ˆ˜ ํƒ€์ž… ์ง€์ •ํ•˜๊ธฐ
9-17. ๊ฐ„์ ‘ ์ฐธ์กฐ
9-18. awk์—๊ฒŒ ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ๋„˜๊ธฐ๊ธฐ
9-19. ๋žœ๋คํ•œ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ
9-20. RANDOM ์œผ๋กœ ์ฃผ์‚ฌ์œ„๋ฅผ ๋˜์ง€๊ธฐ
9-21. RANDOM ์— seed๋ฅผ ๋‹ค์‹œ ์ง€์ •ํ•ด ์ฃผ๊ธฐ
9-22. C ํ˜•ํƒœ์˜ ๋ณ€์ˆ˜ ์กฐ์ž‘
10-1. ๊ฐ„๋‹จํ•œ for ๋ฃจํ”„
10-2. ๊ฐ [list] ํ•ญ๋ชฉ์ด ์ธ์ž๋ฅผ ๋‘ ๊ฐœ์”ฉ ๊ฐ–๋Š” for ๋ฌธ
10-3. Fileinfo: ๋ณ€์ˆ˜์— ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ ๋ชฉ๋ก์— ๋Œ€ํ•ด ๋™์ž‘
10-4. for ๋ฌธ์—์„œ ํŒŒ์ผ ์กฐ์ž‘ํ•˜๊ธฐ
10-5. in [list]๊ฐ€ ๋น ์ง„ for ๋ฌธ
10-6. for ๋ฌธ์˜ [list]์— ๋ช…๋ น์–ด ์น˜ํ™˜ ์“ฐ๊ธฐ
10-7. ์ด์ง„ ํŒŒ์ผ์— grep ๊ฑธ๊ธฐ
10-8. ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ๋Œ€ํ•ด ์›์ €์ž‘์ž(authorship)๋ฅผ ํ™•์ธ ํ•˜๊ธฐ
10-9. ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด ์žˆ๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋“ค์„ ๋‚˜์—ดํ•˜๊ธฐ
10-10. ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด ์žˆ๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋“ค์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ธฐ
10-11. C ํ˜•ํƒœ์˜ for ๋ฃจํ”„
10-12. ๋ฐฐ์น˜ ๋ชจ๋“œ๋กœ efax ์‚ฌ์šฉํ•˜๊ธฐ
10-13. ๊ฐ„๋‹จํ•œ while ๋ฃจํ”„
10-14. ๋‹ค๋ฅธ while ๋ฃจํ”„
10-15. ๋‹ค์ค‘ ์กฐ๊ฑด while ๋ฃจํ”„
10-16. C ํ˜•ํƒœ์˜ ๋ฌธ๋ฒ•์„ ์“ฐ๋Š” while ๋ฃจํ”„
10-17. until ๋ฃจํ”„
10-18. ์ค‘์ฒฉ๋œ ๋ฃจํ”„
10-19. ๋ฃจํ”„์—์„œ break์™€ continue์˜ ์˜ํ–ฅ
10-20. ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ๋ฃจํ”„์—์„œ ํƒˆ์ถœํ•˜๊ธฐ
10-21. ๋” ์ƒ์œ„ ๋ฃจํ”„ ๋ ˆ๋ฒจ์—์„œ ๊ณ„์†ํ•˜๊ธฐ(continue)
10-22. case ์“ฐ๊ธฐ
10-23. case๋กœ ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ
10-24. case์šฉ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋ช…๋ น์–ด ์น˜ํ™˜ ์“ฐ๊ธฐ
10-25. ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด ๋งค์นญ
10-26. ์ž…๋ ฅ์ด ์•ŒํŒŒ๋ฒณ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ
10-27. select๋กœ ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ
10-28. ํ•จ์ˆ˜์—์„œ select๋ฅผ ์จ์„œ ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ
11-1. printf๊ฐ€ ์‹ค์ œ๋กœ ์“ฐ์ด๋Š” ์˜ˆ์ œ
11-2. read๋กœ ๋ณ€์ˆ˜ ํ• ๋‹นํ•˜๊ธฐ
11-3. read๋กœ ์—ฌ๋Ÿฌ์ค„์˜ ์ž…๋ ฅ ๋„ฃ๊ธฐ
11-4. read๋ฅผ ํŒŒ์ผ ์žฌ์ง€ํ–ฅ๊ณผ ๊ฐ™์ด ์“ฐ๊ธฐ
11-5. ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝํ•˜๊ธฐ
11-6. let์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ.
11-7. eval์˜ ํšจ๊ณผ ๋ณด์—ฌ์ฃผ๊ธฐ
11-8. ๊ฐ•์ œ๋กœ ๋กœ๊ทธ ์•„์›ƒ ์‹œํ‚ค๊ธฐ
11-9. "rot13" ๋ฒ„์ „
11-10. ์œ„์น˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ set ์“ฐ๊ธฐ
11-11. ๋ณ€์ˆ˜๋ฅผ "์–ธ์…‹"(unset) ํ•˜๊ธฐ
11-12. export๋ฅผ ์จ์„œ, ๋‚ด์žฅ๋œ awk ์Šคํฌ๋ฆฝํŠธ์— ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ
11-13. getopts๋กœ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋„˜์–ด์˜จ ์˜ต์…˜๊ณผ ์ธ์ž ์ฝ๊ธฐ
11-14. ๋ฐ์ดํƒ€ ํŒŒ์ผ "ํฌํ•จํ•˜๊ธฐ"
11-15. exec ํšจ๊ณผ
11-16. ์ž‘์—…์„ ๊ณ„์† ํ•ด ๋‚˜๊ฐ€๊ธฐ ์ „์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜๊ธธ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ
12-1. CDR ๋””์Šคํฌ๋ฅผ ๊ตฌ์šธ ๋•Œ ls๋กœ ๋ชฉ์ฐจ ๋งŒ๋“ค๊ธฐ
12-2. Badname, ํŒŒ์ผ ์ด๋ฆ„์— ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์€ ๋ฌธ์ž๋‚˜ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ์„ ์ง€์šฐ๊ธฐ.
12-3. inode ๋กœ ํŒŒ์ผ์„ ์ง€์šฐ๊ธฐ
12-4. ์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง์šฉ xargs ๋กœ๊ทธ ํŒŒ์ผ
12-5. copydirxargs๋กœ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ
12-6. expr ์“ฐ๊ธฐ
12-7. date ์“ฐ๊ธฐ
12-8. ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋‘ ํŒŒ์ผ์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด cmp ์“ฐ๊ธฐ.
12-9. ๋‚ฑ๋ง ๋นˆ๋„์ˆ˜ ๋ถ„์„
12-10. 10์ž๋ฆฌ ๋žœ๋คํ•œ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ
12-11. tail๋กœ ์‹œ์Šคํ…œ ๋กœ๊ทธ๋ฅผ ๋ชจ๋‹ˆํ„ฐํ•˜๊ธฐ
12-12. ์Šคํฌ๋ฆฝํŠธ์—์„œ "grep"์„ ์—๋ฎฌ๋ ˆ์ดํŠธ ํ•˜๊ธฐ
12-13. ๋ชฉ๋ก์— ๋“ค์–ด ์žˆ๋Š” ๋‚ฑ๋ง๋“ค์˜ ์œ ํšจ์„ฑ ํ™•์ธํ•˜๊ธฐ
12-14. toupper: ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟˆ.
12-15. lowercase: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๋ช…์„ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟˆ.
12-16. du: ๋„์Šค์šฉ ํ…์ŠคํŠธ ํŒŒ์ผ์„ UNIX์šฉ์œผ๋กœ ๋ณ€ํ™˜.
12-17. rot13: ์ดˆํ—ˆ์ ‘(ultra-weak) ์•”ํ˜ธํ™”, rot13.
12-18. "Crypto-Quote" ํผ์ฆ ๋งŒ๋“ค๊ธฐ
12-19. ํŒŒ์ผ ๋ชฉ๋ก ํ˜•์‹ํ™”.
12-20. column ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์„ ํ˜•์‹ํ™” ํ•˜๊ธฐ
12-21. nl: ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ด๋Š” ์Šคํฌ๋ฆฝํŠธ.
12-22. cpio๋กœ ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ ์˜ฎ๊ธฐ๊ธฐ
12-23. rpm ์•„์นด์ด๋ธŒ ํ’€๊ธฐ
12-24. C ์†Œ์Šค์—์„œ ์ฃผ์„์„ ์ œ๊ฑฐํ•˜๊ธฐ
12-25. /usr/X11R6/bin ๋‘˜๋Ÿฌ๋ณด๊ธฐ
12-26. basename๊ณผ dirname
12-27. ์ธ์ฝ”๋“œ๋œ ํŒŒ์ผ์„ uudecodeํ•˜๊ธฐ
12-28. ์ €๋‹น์— ๋Œ€ํ•œ ์›” ์ƒํ™˜์•ก(Monthly Payment on a Mortgage)
12-29. ์ง„๋ฒ• ๋ณ€ํ™˜(Base Conversion)
12-30. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ bc ์‹คํ–‰
12-31. seq๋กœ ๋ฃจํ”„์— ์ธ์ž๋ฅผ ๋งŒ๋“ค์–ด ๋„ฃ๊ธฐ
12-32. ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ๊ฐˆ๋ฌด๋ฆฌํ•˜๊ธฐ
12-33. ํŒŒ์ผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ง€์šฐ๊ธฐ
12-34. m4 ์“ฐ๊ธฐ
13-1. ์ง€์›€ ๊ธ€์ž(erase character) ์„ธํŒ…ํ•˜๊ธฐ
13-2. ๋น„๋ฐ€์Šค๋Ÿฐ ๋น„๋ฐ€๋ฒˆํ˜ธ: ํ„ฐ๋ฏธ๋„ ์—์ฝ” ๋„๊ธฐ
13-3. ํ‚ค๋ˆ„๋ฆ„ ์•Œ์•„๋‚ด๊ธฐ
13-4. pidof ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ด๊ธฐ
13-5. CD ์ด๋ฏธ์ง€ ํ™•์ธํ•˜๊ธฐ
13-6. ํ•œ ํŒŒ์ผ์—์„œ ํ•œ๋ฒˆ์— ํŒŒ์ผ ์‹œ์Šคํ…œ ๋งŒ๋“ค๊ธฐ
13-7. ์ƒˆ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ์ถ”๊ฐ€ํ•˜๊ธฐ
13-8. killall/etc/rc .d/init.d ์—์„œ ์ธ์šฉ
16-1. exec์œผ๋กœ ํ‘œ์ค€์ž…๋ ฅ์„ ์žฌ์ง€ํ–ฅ ํ•˜๊ธฐ
16-2. ์žฌ์ง€ํ–ฅ๋œ while ๋ฃจํ”„
16-3. ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ์žฌ์ง€ํ–ฅ๋œ while ๋ฃจํ”„
16-4. ์žฌ์ง€ํ–ฅ๋œ until ๋ฃจํ”„
16-5. ์žฌ์ง€ํ–ฅ๋œ for ๋ฃจํ”„
16-6. ์žฌ์ง€ํ–ฅ๋œ for ๋ฃจํ”„(ํ‘œ์ค€์ž…๋ ฅ, ํ‘œ์ค€์ถœ๋ ฅ ๋ชจ๋‘ ์žฌ์ง€ํ–ฅ๋จ)
16-7. ์žฌ์ง€ํ–ฅ๋œ if/then ํ…Œ์ŠคํŠธ
16-8. ์ด๋ฒคํŠธ ๋กœ๊น…ํ•˜๊ธฐ
17-1. dummyfile: ๋‘ ์ค„์งœ๋ฆฌ ๋”๋ฏธ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
17-2. broadcast: ๋กœ๊ทธ์ธ ํ•ด ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฉ”์„ธ์ง€ ๋ณด๋‚ด๊ธฐ
17-3. cat์œผ๋กœ ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฉ”์„ธ์ง€ ๋งŒ๋“ค๊ธฐ
17-4. ํƒญ์ด ์ง€์›Œ์ง„ ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฉ”์„ธ์ง€
17-5. Here document์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์น˜ํ™˜ํ•˜๊ธฐ
17-6. ๋งค๊ฐœ๋ณ€์ˆ˜ ์น˜ํ™˜ ๋„๊ธฐ
17-7. upload"Sunsite" incoming ๋””๋ ‰ํ† ๋ฆฌ์— ํŒŒ์ผ ํ•œ ์Œ์„ ์—…๋กœ๋“œ
17-8. "์•„๋ฌด๊ฐœ"(anonymous) Here Document
20-1. ์„œ๋ธŒ์‰˜์—์„œ ๋ณ€์ˆ˜์˜ ํ†ต์šฉ ๋ฒ”์œ„(variable scope)
20-2. ์‚ฌ์šฉ์ž ํ”„๋กœํŒŒ์ผ ๋ณด๊ธฐ
20-3. ํ”„๋กœ์„ธ์Šค๋ฅผ ์„œ๋ธŒ์‰˜์—์„œ ๋ณ‘๋ ฌ๋กœ ๋Œ๋ฆฌ๊ธฐ
21-1. ์ œํ•œ๋œ ๋ชจ๋“œ๋กœ ์Šคํฌ๋ฆฝํŠธ ๋Œ๋ฆฌ๊ธฐ
23-1. ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜
23-2. ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜
23-3. ๋‘ ์ˆซ์ž์ค‘ ํฐ ์ˆ˜ ์ฐพ๊ธฐ
23-4. ์ˆซ์ž๋ฅผ ๋กœ๋งˆ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๊ธฐ
23-5. ํ•จ์ˆ˜์—์„œ ํฐ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ธฐ
23-6. ํฐ ๋‘ ์ •์ˆ˜ ๋น„๊ตํ•˜๊ธฐ
23-7. ์‚ฌ์šฉ์ž ๊ณ„์ • ์ด๋ฆ„์—์„œ ์‹ค์ œ ์ด๋ฆ„์„ ์•Œ์•„๋‚ด๊ธฐ
23-8. ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์˜์—ญ(Local variable visibility)
23-9. ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์“ด ์žฌ๊ท€ ํ•จ์ˆ˜
24-1. ์Šคํฌ๋ฆฝํŠธ์—์„œ ์“ฐ์ด๋Š” ๋ณ„์นญ(alias)
24-2. unalias: ๋ณ„์นญ์„ ์„ค์ •, ํ•ด์ œํ•˜๊ธฐ
25-1. "and list"๋ฅผ ์จ์„œ ๋ช…๋ น์–ด์ค„ ์ธ์ž ํ™•์ธํ•˜๊ธฐ
25-2. "and list"๋ฅผ ์จ์„œ ๋ช…๋ น์–ด์ค„ ์ธ์ž๋ฅผ ํ™•์ธํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•
25-3. "or lists"์™€ "and list"๋ฅผ ๊ฐ™์ด ์“ฐ๊ธฐ
26-1. ๊ฐ„๋‹จํ•œ ๋ฐฐ์—ด ์‚ฌ์šฉ๋ฒ•
26-2. ๋ฐฐ์—ด์˜ ํŠน๋ณ„ํ•œ ํŠน์„ฑ ๋ช‡ ๊ฐ€์ง€
26-3. ๋นˆ ๋ฐฐ์—ด๊ณผ ๋นˆ ์›์†Œ
26-4. ์•„์ฃผ ์˜ค๋ž˜๋œ ์นœ๊ตฌ: ๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort)
26-5. ๋ณต์žกํ•œ ๋ฐฐ์—ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜: ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด(Sieve of Erastosthenes)
26-6. ๋ณต์žกํ•œ ๋ฐฐ์—ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜: ๊ธฐ๋ฌ˜ํ•œ ์ˆ˜ํ•™ ๊ธ‰์ˆ˜ ํƒ์ƒ‰(Exploring a weird mathematical series)
26-7. 2์ฐจ์› ๋ฐฐ์—ด์„ ํ‰๋‚ด๋‚ธ ๋‹ค์Œ, ๊ธฐ์šธ์ด๊ธฐ(tilting it)
28-1. ํŠน์ • PID์™€ ๊ด€๋ จ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ฐพ๊ธฐ
28-2. ์˜จ๋ผ์ธ ์—ฐ๊ฒฐ ์ƒํƒœ
29-1. ์ฟ ํ‚ค ํ•ญ์•„๋ฆฌ๋ฅผ ์ˆจ๊ธฐ๊ธฐ
29-2. /dev/zero๋กœ ์Šค์™‘ ํŒŒ์ผ ์„ธํŒ…ํ•˜๊ธฐ
29-3. ๋žจ๋””์Šคํฌ ๋งŒ๋“ค๊ธฐ
30-1. ๋ฒ„๊ทธ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ
30-2. test24, ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ
30-3. "assert"๋กœ ์กฐ๊ฑด์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ
30-4. exit ์žก์•„์ฑ„๊ธฐ(Trapping at exit)
30-5. Control-C ๊ฐ€ ๋ˆŒ๋ ธ์„ ๋•Œ ๊นจ๋—์ด ์ฒญ์†Œํ•˜๊ธฐ
30-6. ๋ณ€์ˆ˜ ์ถ”์ ํ•˜๊ธฐ
32-1. ์„œ๋ธŒ์‰˜ ํ•จ์ •(Subshell Pitfalls)
34-1. ์‰˜ ๋ž˜ํผ(shell wrapper)
34-2. ์กฐ๊ธˆ ๋ณต์žกํ•œ ์‰˜ ๋ž˜ํผ(shell wapper)
34-3. awk ์Šคํฌ๋ฆฝํŠธ ์‰˜ ๋ž˜ํผ(shell wrapper)
34-4. Bash ์Šคํฌ๋ฆฝํŠธ์— ๋‚ด์žฅ๋œ ํŽ„
34-5. ํ•˜๋‚˜๋กœ ๋ฌถ์ธ Bash ์Šคํฌ๋ฆฝํŠธ์™€ ํŽ„ ์Šคํฌ๋ฆฝํŠธ
34-6. ์ž์‹ ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋ถ€๋ฅด๋Š” ์Šคํฌ๋ฆฝํŠธ
35-1. ๋ฌธ์ž์—ด ํ™•์žฅ
35-2. ๊ฐ„์ ‘ ๋ณ€์ˆ˜ ์ฐธ์กฐ - ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•
35-3. ๋ฐฐ์—ด๊ณผ ์•ฝ๊ฐ„์˜ ํŠธ๋ฆญ์„ ์จ์„œ ํ•œ ๋ฒŒ์˜ ์นด๋“œ๋ฅผ 4๋ช…์—๊ฒŒ ๋žœ๋คํ•˜๊ฒŒ ๋Œ๋ฆฌ๊ธฐ
A-1. manview: ํฌ๋งท๋œ ๋งจ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋Š” ์Šคํฌ๋ฆฝํŠธ
A-2. mailformat: ์ด๋ฉ”์ผ ๋ฉ”์„ธ์ง€๋ฅผ ํฌ๋งทํ•ด์„œ ๋ณด๊ธฐ
A-3. rn: ๊ฐ„๋‹จํ•œ ํŒŒ์ผ์ด๋ฆ„ ๋ณ€๊ฒฝ ์œ ํ‹ธ๋ฆฌํ‹ฐ
A-4. encryptedpw: ๋กœ์ปฌ์— ์•”ํ˜ธํ™” ๋˜์–ด ์žˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ftp ์‚ฌ์ดํŠธ์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ
A-5. copy-cd: ๋ฐ์ดํƒ€ CD๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ
A-6. days-between: ๋‘ ๋‚ ์งœ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•ด ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ
A-7. behead: ๋ฉ”์ผ๊ณผ ๋‰ด์Šค ๋ฉ”์„ธ์ง€ ํ—ค๋”๋ฅผ ์ œ๊ฑฐํ•ด ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ
A-8. ftpget: ftp์—์„œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•ด ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ
A-9. password: 8 ๊ธ€์ž์งœ๋ฆฌ ๋žœ๋คํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ
A-10. fifo: ๋„ค์ž„๋“œ ํŒŒ์ดํ”„๋ฅผ ์จ์„œ ๋งค์ผ ๋ฐฑ์—…ํ•ด ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ
A-11. ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋กœ ์†Œ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ
A-12. tree: ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ
A-13. ๋ฌธ์ž์—ด ํ•จ์ˆ˜๋“ค: C ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜
A-14. ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํƒ€ ๋ฒ ์ด์Šค
F-1. ์ƒ˜ํ”Œ .bashrc ํŒŒ์ผ
G-1. VIEWDATA.BAT: ๋„์Šค์šฉ ๋ฐฐ์น˜ ํŒŒ์ผ
G-2. viewdata.sh: VIEWDATA.BAT ์˜ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „


๋ฐ˜์‘ํ˜•