Skip to content

Latest commit

ย 

History

History
104 lines (71 loc) ยท 3.12 KB

File metadata and controls

104 lines (71 loc) ยท 3.12 KB

Shell Script

์‰˜

  • ์œ ๋‹‰์Šค ๊ณ„์—ด์˜ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ™”ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ปค๋„ ์‚ฌ์ด์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ๋ช…๋ น์„ ํ•ด์„ํ•˜์—ฌ ์ปค๋„์— ์ „๋‹ฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์‰˜์€ ๊ทธ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•œ๋ฐ, Bash(๋ฐฐ์‰ฌ), Tcsh(C์‰˜), Ksh(์ฝ˜์‰˜), Zsh(Z์‰˜), Fish(Friendly Interactive SHell) ๋“ฑ์ด ์žˆ๋‹ค.

์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ž€?

  • ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ž€ Unix ์ปค๋งจ๋“œ ๋“ฑ์„ ๋‚˜์—ดํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด ๋ฌธ๋ฒ•์ด ์กด์žฌํ•˜์ง€๋งŒ, ๋ณดํ†ต ์šด์˜์ฒด์ œ์˜ ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค.

๊ธฐ๋ณธ ์„ค์ •

  • ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ํ™•์žฅ์ž๋Š” .sh์ด๋‹ค.
#!/bin/sh

echo "Hello World"
  • ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋งจ ์œ„์— #!/bin/sh๋ฅผ ์จ์ค˜์•ผ ํ•œ๋‹ค. ์‹œ์Šคํ…œ์— ์ง€๊ธˆ๋ถ€ํ„ฐ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•œ ๋…€์„์ด๋‹ค.

๊ถŒํ•œ ๋ถ€์—ฌ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Permission denied๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์œ„์™€ ๊ฐ™์ด ์‹คํ–‰์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ์ด์œ ๋Š” hello.sh์— ๊ถŒํ•œ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์‰˜ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ls -al ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ถŒํ•œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์‹คํ–‰ ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • r: ์ฝ๊ธฐ ๊ถŒํ•œ(read)
    • w: ์“ฐ๊ธฐ ๊ถŒํ•œ(write)
    • x: ์‹คํ–‰ ๊ถŒํ•œ(execute)
  • chmod ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ–‰๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
$ chmod +x hello.sh

  • ๊ทธ๋Ÿฐ๋ฐ ์‹คํ–‰๊ถŒํ•œ์„ ๊ฐ ์‚ฌ์šฉ์ž์— ๋งž๊ฒŒ ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ์ˆซ์ž๋ฅผ ํ†ตํ•ด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ „์ฒด
r=400 r=40 r=4
w=200 w=20 w=2
x=100 x=10 x=1
  • ๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ถ€์—ฌํ•œ๋‹ค๋ฉด
    • ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” rwx ๋ชจ๋‘ ๋ถ€์—ฌ
    • ๊ทธ๋ฃน์—๋Š” rx๋งŒ ๋ถ€์—ฌ
    • ์ „์ฒด์—๋Š” wx๋งŒ ๋ถ€์—ฌ
$ chmod 753 hello.sh


์‰˜ ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•


์˜จ๋ผ์ธ ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„


์ฐธ๊ณ ์ž๋ฃŒ