โœ’๏ธ Linux Programming/with Docker

[Linux] ์‰˜ ์Šคํฌ๋ฆฝํŠธ์™€ ์‰˜ ๋ณ€์ˆ˜ + ํŠน์ˆ˜ ๋ณ€์ˆ˜์™€ ๋ฐฐ์—ด (chmod, nano, echo, bash, ./, #, read, set, readonly, unset)

A Lim Han 2022. 10. 31. 15:07

5. ์‰˜ ์Šคํฌ๋ฆฝํŠธ์™€ ์‰˜ ๋ณ€์ˆ˜ + ํŠน์ˆ˜ ๋ณ€์ˆ˜์™€ ๋ฐฐ์—ด (chmod, nano, echo, bash, ./, #, read, set, readonly, unset)

 

 

# ์‰˜ ๋ฐ ์Šคํฌ๋ฆฝํŠธ & ์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์‰˜ ์Šคํฌ๋ฆฝํŠธ

- ์‰˜

: OS ์ƒ์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ช…๋ น์„ ์ฝ๊ณ  ํ•ด์„ํ•œ ํ›„ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ์ผ์ข…์˜ ๋ช…๋ น์–ด ํ•ด์„๊ธฐ

 

- ์Šคํฌ๋ฆฝํŠธ

: ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ์ƒํƒœ์˜ ํ”„๋กœ๊ทธ๋žจ

 

- ์‰˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

: ์‰˜์˜ ๋ช…๋ น์–ด๋“ค์„ ํ•ฉ์ณ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ์ •

 

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

: ์‰˜ ๋ช…๋ น์–ด๋“ค์„ ๋ชจ์•„ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ฐฐ์น˜ ํŒŒ์ผ(Batch File)

 

- ๋ฐฐ์น˜ ํŒŒ์ผ(Batch File)

: ํ™•์žฅ์ž๋ฅผ " .sh " ๋กœ ๊ฐ€์ง€๋Š” ํŒŒ์ผ

 

 

 

 

# ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์˜ˆ์ œ 1 ์‹ค์Šต

 

+ ์ฃผ์˜!

: ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ธฐ์— ์•ž์„œ, nano ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰๊ถŒํ•œ(x)์„ ๊ฐ€์ ธ์•ผ ํ•จ

์‹ค์Šตํ•  ๋Œ€์ƒ์ธ prac1.sh ํŒŒ์ผ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹คํ–‰๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์คŒ

-->  chmod u+x [ํŒŒ์ผ๋ช…] ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ ์‹คํ–‰๊ถŒํ•œ ๋ถ€์—ฌ

 

 

 

1. nano  [ํŒŒ์ผ๋ช…]  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ

 

 

2. ์Šคํฌ๋ฆฝํŠธ์— echo "hello!!!" ์ž…๋ ฅ

+ control - -->  enter ํ‚ค  -->  control - X

์„ ํ†ตํ•ด ํƒˆ์ถœ ๊ฐ€๋Šฅ

 

 

3.  ./ prac1.sh ์ด๋‚˜ bash prac1.sh ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ž…๋ ฅ๋œ ์Šคํฌ๋ฆฝํŠธ ํ™•์ธ

"hello!!!"๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถœ๋ ฅ

 

 

 

 

# ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์ž…์ถœ๋ ฅ ๋ฐ ์ฝ”๋ฉ˜ํŠธ

์ฝ”๋ฉ˜ํŠธ ์ž…๋ ฅ ์ถœ๋ ฅ
# [์ฝ”๋ฉ˜ํŠธ ๋‚ด์šฉ] read [์ž…๋ ฅ๋ฌธ] echo [์ถœ๋ ฅ๋ฌธ]

 

 

 

1. nano [ํŒŒ์ผ๋ช…]  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ

sample2.sh ํŒŒ์ผ ์‚ฌ์šฉ

 

 

2.  ./ [ํŒŒ์ผ๋ช…] ๊ณผ bash[ํŒŒ์ผ๋ช…] ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๋‚ด์šฉ ํ™•์ธ

 

 

 

 

# ์‰˜ ์Šคํฌ๋ฆฝํŠธ์™€ ๋ณ€์ˆ˜

- ๋ณ€์ˆ˜ ์„ ์–ธ

# [๋ณ€์ˆ˜๋ช…] = [์˜๋ฌธ์ž & ์ˆซ์ž & ์–ธ๋”๋ฐ”(_)]

                 = "[๋ฌธ์ž์—ด]"

                 = $[์ฐธ์กฐํ•  ๊ฐ’]

 

+ ์ฃผ์˜!

: " = " ๊ธฐํ˜ธ์˜ ์•ž๊ณผ ๋’ค์—๋Š” ๊ณต๋ฐฑ์ด ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

 

 

 

- ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜ ๋ชฉ๋ก ์ถœ๋ ฅ ๋ช…๋ น์–ด

# set

 

 

 

- ์ฝ๊ธฐ ์ „์šฉ ์‰˜ ๋ณ€์ˆ˜

# readonly [๋ณ€์ˆ˜๋ช…]

 

1. nano ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ

 

 

2.  ./ [ํŒŒ์ผ๋ช…] ๊ณผ bash[ํŒŒ์ผ๋ช…] ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๋‚ด์šฉ ํ™•์ธ

 

 

 

- ์‰˜ ๋ณ€์ˆ˜ ์‚ญ์ œ ๋ช…๋ น์–ด

# unset [์‚ญ์ œํ•  ๋ณ€์ˆ˜๋ช…]

ex4 ๋ณ€์ˆ˜ ์‚ญ์ œ

 

 

 

- ํŠน์ˆ˜ ๋ณ€์ˆ˜

$?

: ์ด์ „์— ์‹คํ–‰๋œ ๋ช…๋ น์˜ ์ข…๋ฃŒ ์ƒํƒœ(= exit ๋ช…๋ น์— ์ค€ ์ธ์ž)๊ฐ€ ์„ค์ •๋˜๋Š” ๋ณ€์ˆ˜

: ๋ช…๋ น ์ˆ˜ํ–‰ ์„ฑ๊ณต  -->  0 ์ถœ๋ ฅ

: ๋ช…๋ น ์ˆ˜ํ–‰ ์‹คํŒจ  -->  1 ์ถœ๋ ฅ

 

$!

: ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋œ ๋ช…๋ น์˜ ํ”„๋กœ์„ธ์Šค ID(=PID) ์„ค์ • ๋ณ€์ˆ˜

 

$$

: ๋ช…๋ น ์ž์‹ , ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ํ”„๋กœ์„ธ์Šค ID ์„ค์ •

 

$#

: ์‹คํ–‰ ์‹œ ์ง€์ •๋œ ์ธ์ˆ˜ ๊ฐœ์ˆ˜ ์„ค์ • ๋ณ€์ˆ˜

 

$@

: ์‰˜ ์Šคํฌ๋ฆฝํŠธ, set ๋ช…๋ น์˜ ๋ชจ๋“  ์ธ์ž ์„ค์ • ๋ณ€์ˆ˜

-->  ๊ฐ๊ฐ์˜ ๊ฐ’์„ " " ๋กœ ๋ฌถ์ธ ์ƒํƒœ๋กœ ์ „๊ฐœ

 

$* 

: ์‰˜ ์Šคํฌ๋ฆฝํŠธ, set ๋ช…๋ น์˜ ๋ชจ๋“  ์ธ์ž ์„ค์ • ๋ณ€์ˆ˜

-->  ๋ชจ๋“  ๊ฐ’์„ ํ•˜๋‚˜์˜ " " ๋กœ ๋ฌถ์–ด ํ•œ๊บผ๋ฒˆ์— ์ „๊ฐœ

 

$0

: ์‹คํ–‰๋œ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ช… ์„ค์ •

 

$[10๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜ N]

: N๋ฒˆ์งธ์˜ ์ธ์ˆ˜ ์„ค์ •

 

 

 

 

# ๋ช…๋ นํ–‰์ธ์ž ๊ด€๋ จ ๋ณ€์ˆ˜ ์‹ค์Šต

1. nano ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑ

 

 

2.  ./ [ํŒŒ์ผ๋ช…] ๊ณผ bash[ํŒŒ์ผ๋ช…] ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๋‚ด์šฉ ํ™•์ธ

 

 

 

 

# ๋ฐฐ์—ด๊ณผ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜

: ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— 1๊ฐœ ์ด์ƒ์˜ ๊ฐ’ ์ €์žฅ ๊ฐ€๋Šฅ

 

1. nano ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์—ด๊ธฐ  -->  ์•„๋ž˜์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ

 

 

 

2.  ./ [ํŒŒ์ผ๋ช…] ๊ณผ bash[ํŒŒ์ผ๋ช…] ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๋‚ด์šฉ ํ™•์ธ

๋ฐฐ์—ด ์ธ๋ฑ์Šค์˜ 0, 3์— ํ•ด๋‹นํ•˜๋Š” My ์™€ Alim ๋งŒ์ด ์ถœ๋ ฅ๋จ์„ ํ™•์ธ