Skip to content

๐Ÿ’ป CLI ํ™˜๊ฒฝ ์•Œ์•„๋ณด๊ธฐ 250622 โ€‹

๐Ÿค” ํ„ฐ๋ฏธ๋„์ด๋ž€? โ€‹

ํ„ฐ๋ฏธ๋„ (Terminal) โ€‹

  • ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ†ตํ•˜๋Š” ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(Command Line Interface, CLI)
  • ์‚ฌ์šฉ์ž๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ํŒŒ์ผ ํƒ์ƒ‰, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰, ์‹œ์Šคํ…œ ์„ค์ • ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ„ฐ๋ฏธ๋„์˜ ์ •์˜ โ€‹

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

์‰˜(Shell)

  • ์ •์˜: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ , ์ด๋ฅผ ์ปค๋„์— ์ „๋‹ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
  • ๊ธฐ๋Šฅ:
    • ๋ช…๋ น์–ด ํ•ด์„ (Command parsing)
    • ๋ช…๋ น ์‹คํ–‰ (Execute or forward to kernel)
    • ์ž…๋ ฅ/์ถœ๋ ฅ ์ฒ˜๋ฆฌ
    • ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ (์‰˜ ์Šคํฌ๋ฆฝํŠธ)
  • ์ข…๋ฅ˜: Bash, Zsh, Fish, Ksh ๋“ฑ

์ปค๋„(Kernel)

  • ์ •์˜: ์ปค๋„์€ ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ(Core)์œผ๋กœ, ํ•˜๋“œ์›จ์–ด์™€ ์ง์ ‘ ์†Œํ†ตํ•˜๋ฉฐ ์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปดํ“จํ„ฐ์˜ ๋‡Œ์ด์ž ์ค‘์•™๊ด€๋ฆฌ์ž
  • ๊ธฐ๋Šฅ:
    • ํ•˜๋“œ์›จ์–ด ์ œ์–ด (CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ๋“ฑ)
    • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ (ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ์ „ํ™˜)
    • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น)
    • ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ
    • ์ž…์ถœ๋ ฅ(I/O) ๊ด€๋ฆฌ

์ž‘๋™ํ๋ฆ„

  1. ์‚ฌ์šฉ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์— ๋ช…๋ น์–ด ์ž…๋ ฅ
  2. ์‰˜์ด ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ปค๋„์— ์š”์ฒญ
  3. ์ปค๋„์ด ํ•˜๋“œ์›จ์–ด์— ๋ช…๋ น์„ ๋‚ด๋ ค ์‹คํ–‰

CLI vs GUI โ€‹

CLI (Command Line Interface) โ€‹

  • ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ช…๋ น์–ด ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•œ๋‹ค.
  • ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ฒฐ๊ณผ๋„ ํ…์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋˜๋ฉฐ, ๋ณต์žกํ•œ ์ž‘์—…์ด๋‚˜ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

GUI (Graphical User Interface) โ€‹

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

CLI๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์ด์œ  โ€‹

  1. ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ CLI ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
  2. ์„œ๋ฒ„ ๊ด€๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„ CLI ํ™˜๊ฒฝ์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค.
  3. ์ž๋™ํ™”์™€ ๋ฐ˜๋ณต ์ž‘์—…์— ํƒ์›”ํ•˜๋‹ค.
  4. ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๊ฐ€ ์ ๋‹ค.
  5. ๋ช…๋ น์–ด ์กฐํ•ฉ์„ ํ†ตํ•ด ์œ ์—ฐํ•œ ์ž‘์—… ํ๋ฆ„์„ ๋งŒ๋“ ๋‹ค.
  6. GUI๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์„ธ๋ถ€ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์šด์˜์ฒด์ œ ๋ณ„ ํ„ฐ๋ฏธ๋„ โ€‹

MAC์—์„œ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰ ๋ฐฉ๋ฒ• โ€‹

  • ์‹คํ–‰๋ฐฉ๋ฒ•

    1. ์• ํ”Œ ๋ฉ”๋‰ด ๋˜๋Š” Finder์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ > ์œ ํ‹ธ๋ฆฌํ‹ฐ > ํ„ฐ๋ฏธ๋„์„ ์ฐพ์•„ ์‹คํ–‰
    2. Command + Space๋ฅผ ๋ˆŒ๋Ÿฌ Spotlight ๊ฒ€์ƒ‰์ฐฝ์— "ํ„ฐ๋ฏธ๋„" ์ž…๋ ฅ ํ›„ ์‹คํ–‰
  • ํŠน์ง•

    1. ๊ธฐ๋ณธ ์‰˜์€ Bash ๋˜๋Š” Zsh๋ฅผ ์‚ฌ์šฉ
    2. ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌ๋ˆ…์Šค์™€ ์œ ์‚ฌํ•œ ๋ช…๋ น์–ด ํ™˜๊ฒฝ ์ œ๊ณต
    3. GUI ๊ธฐ๋ฐ˜์ธ MacOS์—์„œ๋„ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ํšจ์œจ์ ์ธ ๋ช…๋ น์–ด ์ž‘์—… ๊ฐ€๋Šฅ

ํ„ฐ๋ฏธ๋„ ๊ธฐ์ดˆ ๋ช…๋ น์–ด โ€‹

ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ โ€‹

  • ls : ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ํŒŒ์ผ๊ณผ ํด๋” ๋ชฉ๋ก ๋ณด๊ธฐ
  • cd : ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™
  • mkdir : ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  • echo : ํ…์ŠคํŠธ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ (ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ๋‚ด์šฉ ์ž‘์„ฑ)
  • cp : ํŒŒ์ผ ๋ณต์‚ฌ
  • rm : ํŒŒ์ผ ์‚ญ์ œ (๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ ์‹œ rm -r)

ํŒŒ์ผ ๋‚ด์šฉ ๋ณด๊ธฐ ๋ฐ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ โ€‹

  • cat : ํŒŒ์ผ ๋‚ด์šฉ์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅ
  • echo : ํ…์ŠคํŠธ ์ถœ๋ ฅ

๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํŒŒ์ผ ์ •๋ณด โ€‹

  • pwd : ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ํ‘œ์‹œ
  • clear : ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด ์ง€์šฐ๊ธฐ

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ โ€‹

  • ps : ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ๋ณด๊ธฐ
  • kill : ํŠน์ • ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ

๋„คํŠธ์›Œํฌ ์ž‘์—… โ€‹

  • ping : ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ ํ…Œ์ŠคํŠธ

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ โ€‹

  • $PATH : ์‹œ์Šคํ…œ ๊ฒฝ๋กœ ๋ณ€์ˆ˜ ํ™•์ธ
  • export : ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

์‹ค์Šต ๊ณผ์ œ โ€‹

beginner01