[Linux] ์…ธ(Shell)


์…ธ(Shell)


  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•ด ์ปค๋„์— ์ „๋‹ฌํ•˜๋Š” ๋ช…๋ น์–ด ํ•ด์„๊ธฐ(command interpreter)

  • ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ๋Œ€ํ™”์‹ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต

  • ๋กœ๊ทธ์ธํ•  ๋–„ ์‹คํ–‰๋˜์–ด ์‚ฌ์šฉ์ž๋ณ„๋กœ ์‚ฌ์šฉ ํ™˜๊ฒฝ ์„ค์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

  • ์…ธ ์ž์ฒด๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด

  • ์ž…์ถœ๋ ฅ ๋ฐฉํ–ฅ ์žฌ์ง€์ •(redirection)๊ณผ ํŒŒ์ดํ”„(pipe) ๊ธฐ๋Šฅ ์ œ๊ณต

  • ํฌ์–ด๊ทธ๋ผ์šด๋“œ/๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ํ›„ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋กœ๊ทธ์ธ ์…ธ(login shell)๊ณผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ณ€๊ฒฝ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ ์…ธ(sub shell)๋กœ ๊ตฌ๋ถ„



์…ธ(Shell)์˜ ์ข…๋ฅ˜


  • ๋ณธ์…ธ(Bourne shell) ๊ณ„์—ด

    • ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ๊ฐ€ $

    • ๋Œ€๋ถ€๋ถ„์˜ ์…ธ์€ ๋ณธ์…ธ ๊ณ„์—ด์˜ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ํ™•๋Œ€ ๋ฐœ์ „ํ•œ ํ˜•ํƒœ

    • ๋ณธ์…ธ

      • /bin/sh

      • ์œ ๋‹‰์Šค์—์„œ ๊ธฐ๋ณธ ์…ธ๋กœ ์‚ฌ์šฉ

    • ์ฝ˜์…ธ(korn shell)

      • /bin/ksh

      • AT&T ์‚ฌ์˜ ๋ฐ์ด๋น„๋“œ ์ฝ˜์ด ๊ฐœ๋ฐœ

      • ๋ช…๋ น์–ด ์™„์„ฑ ๊ธฐ๋Šฅ, ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ

    • ๋ฐฐ์‰ฌ์…ธ(bash shell)

      • /bin/bash

      • ๋ณธ์…ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ GNU ํ”„๋กœ์ ํŠธ์— ์˜ํ•ด ๊ฐœ๋ฐœ

      • Linux ํ‘œ์ค€ ์…€๋กœ ์ฑ„ํƒ

      • ๋ช…๋ น์–ด ์™„์„ฑ ๊ธฐ๋Šฅ, ํžˆ์Šคํ† ๋ฆฌ, ๋ช…๋ น์–ด ์น˜ํ™˜, ํŽธ์ง‘ ๋“ฑ ์ง€์›

    • ์ง€์…ธ(z shell)

      • ๊ฐ•๋ ฅํ•œ history ๊ธฐ๋Šฅ

      • ํŒŒ์ผ๋ช… ์ค‘๊ฐ„์—์„œ๋ถ€ํ„ฐ ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํƒญ์ด๋‚˜ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์ด์šฉํ•ด ์„ ํƒ ๊ฐ€๋Šฅ

  • C์…ธ ๊ณ„์—ด

    • ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ๊ฐ€ %

    • ๋ณธ์…ธ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ๊ณผ ๋ช…๋ น์–ด ํžˆ์Šคํ† ๋ฆฌ(history), ๋ณ„๋ช…(alias), ์ž‘์—… ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

    • C์…€

      • /bin/csh

      • ๋ฒ„ํด๋ฆฌ ๋Œ€ํ•™ ๋นŒ์กฐ์ด๊ฐ€ ๊ฐœ๋ฐœ

      • C ์–ธ์–ด์˜ ํŠน์ง• ํฌํ•จ

    • tc์…ธ

      • /bin/tcsh

      • BSD ๊ณ„์—ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ

  • /etc/shells : ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์…ธ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ

  • /etc/passwd : ํŒŒ์ผ์—์„œ ๊ณ„์ •๋งˆ๋‹ค ํ• ๋‹น๋œ ์…ธ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ

  • echo $SHELL : ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์…ธ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด

  • chsh : ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ์…ธ ๋ณ€๊ฒฝ

    • ์˜ต์…˜ -s : ์ง€์ •ํ•˜๋Š” ์…ธ์„ ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  ๋กœ๊ทธ์ธ ์…ธ๋กœ ๋ณ€๊ฒฝ

    • chsh -l ๋ช…๋ น์–ด = /etc/shells ํŒŒ์ผ ๋‚ด์šฉ

    • ์…ธ ๋ณ€๊ฒฝ ํ›„ ์žฌ๋ถ€ํŒ… ํ•ด์•ผ ๋ช…๋ น์–ด ์ธ์‹๋จ

  • usermod : ๊ด€๋ฆฌ์ž ํ™˜๊ฒฝ์—์„œ ์ง€์ •๋œ ๊ณ„์ •์˜ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝ

    • ์˜ต์…˜ -s : ๊ธฐ์กด์˜ ์…ธ์—์„œ ์ƒˆ๋กœ์šด ์…ธ๋กœ ๋ณ€๊ฒฝ

Categories:

Linux   ๋ฆฌ๋ˆ…์Šค