์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
Bash์—์„œ ๋„˜์–ด์˜ด

1. ๊ฐœ์š”2. ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ์˜ ์…ธ
2.1. ์…ธ ์Šคํฌ๋ฆฝํŠธ2.2. ์ฃผ์š” ์…ธ ๋ชฉ๋ก
3. ์œˆ๋„์šฐ์˜ ์…ธ
3.1. ๋ฐฐ์น˜ ํŒŒ์ผ
4. ๊ธฐํƒ€ ์šด์˜์ฒด์ œ

Shell

1. ๊ฐœ์š”[ํŽธ์ง‘]

์šด์˜ ์ฒด์ œ์—์„œ ์ปค๋„๊ณผ ์ด์šฉ์ž ์‚ฌ์ด์— ๋ผ์–ด์„œ ์ด์šฉ์ž์˜ ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ๊ทธ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฟŒ๋ ค์ฃผ๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ. Shell์˜ ์‚ฌ์ „์  ์˜๋ฏธ์ธ ์กฐ๊ฐœ/์†Œ๋ผ ๊ป๋ฐ๊ธฐ์—์„œ ๋”ฐ์˜จ ๋ง๋กœ ๋‚ด๋ถ€์˜ ์ปค๋„์ด ์žˆ๊ณ  ์‚ฌ์šฉ์ž๋Š” ์ด๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๊ป๋ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์ปค๋„์— ์ ‘๊ทผํ•œ๋‹ค๋Š” ๊ฐœ๋…์œผ๋กœ ์ปดํ“จํ„ฐ ์ดˆ์ฐฝ๊ธฐ์ธ 60๋…„๋Œ€๋ถ€ํ„ฐ ์‚ฌ์šฉ๋œ ๋‹จ์–ด์ด๋‹ค.

์…ธ์€ ํ”ํžˆ ๋‘ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ, ๋ช…๋ น ์ค„ ์…ธ๊ณผ ๊ทธ๋ž˜ํ”ฝ ์…ธ์ด๋‹ค. ์ „์ž๋Š” CLI์ด๊ณ  ํ›„์ž๋Š” GUI๋ผ ๋ถ€๋ฅธ๋‹ค. CLI๋Š” ๋•Œ๋•Œ๋กœ CUI(character ๋˜๋Š” console user interface)๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

๊ทธ ์™ธ์—๋„ ์ด ํ™˜๊ฒฝ์œผ๋กœ ์ ‘์†ํ•˜๋Š” ๋ณด์•ˆ์ ‘์† ํ”„๋กœ๊ทธ๋žจ(SSH; Secure SHell)์„ ์ผ์ปซ๋Š” ๋ง์ด๊ธฐ๋„ ํ•˜๋‹ค.

2. ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ์˜ ์…ธ[ํŽธ์ง‘]


zsh์— oh-my-zsh๋ฅผ ์ ์šฉํ•˜๊ณ  agnoster ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ์Šต. ํƒˆ์˜ฅ?

์ตœ์ดˆ์˜ ์…ธ์€ ๋ฒจ ์—ฐ๊ตฌ์†Œ์—์„œ ์Šคํ‹ฐ๋ธ ๋ณธ์ด ๊ฐœ๋ฐœํ•œ ๋ณธ ์…ธ(Bourne shell, sh)์ด๋ฉฐ, ์ด๋ฅผ ๊ฐœ์„ ํ•œ ๋ณธ ์–ด๊ฒŒ์ธ ์…ธ(Bash), C์…ธ(csh), ์ฝ˜์…ธ(ksh), Z์…ธ(zsh) ๋“ฑ์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค.

์ตœ์ดˆ์˜ ์…ธ์ด ์–ธ์ œ ์–ด๋””์„œ ๋ˆ„๊ตฌ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ฌด์—‡์ธ๊ฐ€์— ๋Œ€ํ•ด์„œ๋Š” ์•Œ ์ˆ˜ ์—†์œผ๋‚˜, ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ตœ์ดˆ์˜ ์…ธ๋‹ค์šด ์œ ๋‹‰์Šค ์…ธ๋กœ ์•Œ๋ ค์ง„ ๊ฒƒ์€ 1979๋…„๋ง V7 ์œ ๋‹‰์Šค(AT&T์˜ 7๋ฒˆ์งธ ์œ ๋‹‰์Šค)์— ํƒ‘์žฌ๋œ ์…ธ์ด๋‹ค. ์ œ์ž‘์ž์ธ Stephan Bourne์˜ ์ด๋ฆ„์„ ๋”ฐ ๋ณธ์…ธ์ด๋ผ ๋ถ€๋ฅด๋ฉฐ, Algol๋กœ ์งœ์—ฌ์ ”๋‹ค. ์ด ์…ธ์€ ๋‹จ์ˆœํ•˜๊ณ  ์†๋„๊ฐ€ ๋นจ๋ž์œผ๋‚˜, ์–ด๋””๊นŒ์ง€๋‚˜ ๊ท€์ค‘ํ•˜์‹  ์ปดํ“จํ„ฐ๋‹˜์˜ ์ž‘์—…์„ ์ธ๊ฐ„์ด ๋А๋ฆฌ๊ฒŒ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•œ ๋ชฉ์ ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ, ๋Œ€๋‹จํžˆ ๋ถˆ์นœ์ ˆํ–ˆ๋‹ค. ์ฃผ๋กœ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ์ž‘์—…์˜ ์ž๋™ํ™” ์ด์™ธ์˜ ์ผ์„ ํ•˜๊ธฐ๋Š” ๋Œ€๋‹จํ•œ ์ธ๋‚ด์‹ฌ๊ณผ ์ปดํ“จํ„ฐ๋‹˜์— ๋Œ€ํ•œ ๋ณต์ข…์‹ฌ ์—†์ด๋Š” ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•˜์˜€๋‹ค.

๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž ์นœํ™”์ ์œผ๋กœ ๋‚˜์˜จ ๊ฒƒ์ด ๋ฐ”๋กœ Bash์ด๋‹ค. ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ์˜ Brian Fox๊ฐ€ ๊ฐœ๋ฐœํ•˜์˜€์œผ๋ฉฐ, ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ์˜ ๋ฌผ๊ฑด๋‹ต๊ฒŒ ์ฃผ์š” ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ์…ธ๋กœ ์“ฐ์ด๊ณ  ์žˆ๋‹ค. ์œˆ๋„์šฐ 10์—์„œ๋„ Fall Creaters Update ์ดํ›„ ๋ฒ„์ „๋ถ€ํ„ฐ WSL์„ ํ†ตํ•ด Bash Shell์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธฐ์กด์˜ Bash ๋ช…๋ น์–ด๋Š” ๋ฌผ๋ก  ์œˆ๋„์šฐ ์˜์—ญ๊ณผ์˜ ํ†ต์‹ ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ฉ”์ธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์…ธ์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ๋“ค์€ zsh[1]๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

1970๋…„๋Œ€ ๋ง์—๋Š” ๋‹ค๋ฅธ ์…ธ๋“ค๋„ ๋“ฑ์žฅํ•˜์˜€๋Š”๋ฐ, ์บ˜๋ฆฌํฌ๋‹ˆ์•„์˜ ๋ฒ„ํด๋ฆฌ ๋Œ€ํ•™๊ต์˜ Bill Joy๊ฐ€ C์–ธ์–ด๋กœ C์…ธ์„ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ C์…ธ์€ ๋Œ€ํ˜• ์ปดํ“จํ„ฐ์šฉ์ด์—ˆ์œผ๋ฉฐ, Bourne Shell๋ณด๋‹ค๋„ ๋А๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์†๋„ ์ธก๋ฉด์—์„œ ๊ทธ๋‹ค์ง€ ์ข‹์ง€ ๋ชปํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์•˜๋‹ค.

AT&T์˜ David Korn์€ 1988๋…„ ์œ ๋‹‰์Šค SVR4 ๋ฐฐํฌํŒ์— ์ฝ˜์…ธ์„ ํƒ‘์žฌํ•˜์—ฌ ์ฒ˜์Œ์œผ๋กœ ๋ฐฐํฌํ•œ๋‹ค. Paul Falsted๋Š” Z์…ธ์„ ๋งŒ๋“ค์—ˆ๋‹ค.

2.1. ์…ธ ์Šคํฌ๋ฆฝํŠธ[ํŽธ์ง‘]

์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ์˜ ๋งŽ์€ ์…ธ๋“ค์ด ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šด์˜์ฒด์ œ์˜ ๋ช…๋ น๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์‹คํ–‰ํ•˜์—ฌ ๋งŽ์€ ์ž‘์—…์„ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. GUI๊ฐ€ ๊ฐ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์ž๋™ํ™” ํ•˜๊ธฐ ๋งค์šฐ ํž˜๋“  ๋ฐ ๋น„ํ•ด CLI์˜ ์žฅ์ ์ด ๋น›๋‚˜๋Š” ๋ถ€๋ถ„. ์œ ๋‹‰์Šค ๊ณ„์—ด์˜ ์šด์˜์ฒด์ œ๋Š” ๋ณธ๋ž˜ ํ™•์žฅ์ž๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ธฐ์— ํ™•์žฅ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋‹ค๋ฅด๊ฒŒ ๋˜์–ด ์žˆ๋Š” ์…ธ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋„ ๋งŽ์ง€๋งŒ, ๋ณดํ†ต ์…ธ ์Šคํฌ๋ฆฝํŠธ์˜ ํŒŒ์ผ์€ .sh๋ผ๋Š” ํ™•์žฅ์ž๋ฅผ ๊ฐ–๋Š”๋‹ค.

2.2. ์ฃผ์š” ์…ธ ๋ชฉ๋ก[ํŽธ์ง‘]

  • ksh
  • mksh
  • pdksh
  • tcsh
  • bash
  • zsh
  • fish
  • rc
  • dash

3. ์œˆ๋„์šฐ์˜ ์…ธ[ํŽธ์ง‘]

์œˆ๋„์šฐ์—๋Š” Windows ํƒ์ƒ‰๊ธฐ(EXPLORER.EXE)๋ผ๋Š” GUI ํ™˜๊ฒฝ์˜ ์…ธ์ด ์žˆ๋‹ค. ์ž‘์—…ํ‘œ์‹œ์ค„๊ณผ ์‹œ์ž‘ ๋ฉ”๋‰ด, ๋ฐ”ํƒ•ํ™”๋ฉด ๋ฐ ์•„์ด์ฝ˜, ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

CLI ํ™˜๊ฒฝ์œผ๋กœ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ, ํŒŒ์›Œ์…ธ[2]์ด ์žˆ๋‹ค. ๋˜ํ•œ ๋ฆฌ๋ˆ…์Šค ์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ bash๋ฅผ ๊ฑฐ์ณ์„œ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์—„๋ฐ€ํ•˜๊ฒŒ ๋”ฐ์ง€๋ฉด bash๋งŒ์ด ๋ฆฌ๋ˆ…์Šค ์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ์œ ์ผํ•œ ์…ธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์ด๋“ค์€ ์ผ๋‹จ ์šด์˜์ฒด์ œ๊ฐ€ ๊ธฐ๋™๋˜๊ณ  GUIํ™˜๊ฒฝ์˜ ์…ธ(Windows ํƒ์ƒ‰๊ธฐ)๊ฐ€ ์‹คํ–‰๋œ ์ดํ›„ ์ผ์ข…์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ฒ˜๋Ÿผ ์‹คํ–‰๋œ๋‹ค. ์œˆ๋„์šฐ 3.0๊ณผ 3.1์€ ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ์ž[3]๋ผ๋Š” ์…ธ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์œˆ๋„์šฐ 2.1๊นŒ์ง€๋Š” MS-DOS ์‹คํ–‰ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํ˜„์žฌ ์ฐจ๊ธฐ ์…ธ์ธ ์œˆ๋„์šฐ ํ„ฐ๋ฏธ๋„์ด ์ถœ์‹œ๋˜์—ˆ๋‹ค.

3.1. ๋ฐฐ์น˜ ํŒŒ์ผ[ํŽธ์ง‘]

Batch File

์œˆ๋„ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด. GUI์ด๋ฏ€๋กœ ์ž๋™ํ™”๊ฐ€ ๊ณค๋ž€ํ•œ Windows ํƒ์ƒ‰๊ธฐ๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ CUI ํ™˜๊ฒฝ์ธ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ์ž๋™ํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด ์ค€๋‹ค.[4]

ํ™•์žฅ์ž๋Š” MS-DOS ์‹œ์ ˆ๋ถ€ํ„ฐ ๋‚ด๋ ค์˜ค๋Š” .bat๊ณผ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ๊ณ ์œ ์˜ .cmd๊ฐ€ ์žˆ๋‹ค. ์•„์ง๋„ .bat ํ™•์žฅ์ž๊ฐ€ ๋„๋ฆฌ ์“ฐ์ธ๋‹ค.

4. ๊ธฐํƒ€ ์šด์˜์ฒด์ œ[ํŽธ์ง‘]

  • MS-DOS - COMMAND.COM์ด ์…ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์œˆ๋„์šฐ NT ๊ณ„์—ด์˜ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(cmd.exe)๋Š” COMMAND.COM์œผ๋กœ๋ถ€ํ„ฐ ๋ช…๋ น์–ด ํ˜•์‹์„ ๋น„๋กฏํ•˜์—ฌ ๋งŽ์€ ๊ฒƒ์„ ๋ฌผ๋ ค๋ฐ›์•˜๋‹ค. ๋‹จ, COMMAND.COM๊ณผ cmd.exe ์‚ฌ์ด์˜ ์ง์ ‘์ ์ธ ๊ด€๋ จ์€ ์—†๊ณ , ๋‹จ์ง€ ์ •์‹ ์ ์ธ ํ›„์†์ž‘์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ํ˜„์žฌ cmd.exe๋Š” ํ›„์† ์†Œํ”„ํŠธ์›จ์–ด์ธ PowerShell๋กœ ๋Œ€์ฒด๋˜๊ณ  ์žˆ๋‹ค. MS-DOS 6.0๊นŒ์ง€๋Š” MS-DOS ์…ธ์ด๋ผ๋Š” ๊ทธ๋ž˜ํ”ฝ ์…ธ๋„ ์žˆ๋‹ค.
[1] ๋ณดํ†ต oh-my-zsh์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
[2] ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์˜ ์ฐจ์„ธ๋Œ€ ๋ฒ„์ „
[3] ์œˆ๋„์šฐ 3.1์—์„œ๋Š” 'ํ”„๋กœ๊ทธ๋žจ๊ด€๋ฆฌ์ž'๋ผ๊ณ  ๋ถ™์—ฌ ์“ด๋‹ค.
[4] ๋ฌผ๋ก  CUI ์‘์šฉํ”„๋กœ๊ทธ๋žจ ํ•œ์ •.