03A. ๋ฐฐ์ฌ(bash)์ ๋นํธ์ธ ๋ช ๋ น
03A. ๋ฐฐ์ฌ(bash)์ ๋นํธ์ธ ๋ช ๋ น ๊ด๋ จ
๋ฐฐ์ฌ์์ ๋นํธ์ธ(built-in) ๋ช ๋ น์ด์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
- ํ์ดํ, ๋ฆฌ๋ค์ด๋ ์
env
,set
,export
1. ํ์ดํ, ๋ฆฌ๋ค์ด๋ ์
ํ์ค ์ ๋ ฅ, ์ถ๋ ฅ, ์๋ฌ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ํ์ดํ์ ๋ฆฌ๋ค์ด๋ ์ ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
ํ์ดํ
ํ์ดํ๋ command1 | command2
์ ๊ฐ์ ํํ๋ก ์ฌ์ฉ๋๊ณ , command
1์ ํ์ค ์ถ๋ ฅ์ command2
์ ํ์ค ์
๋ ฅ์ผ๋ก ์ ๋ฌํฉ๋๋ค. &
๋ฅผ ๋ถ์ด๋ฉด ํ์ค ์๋ฌ๋ ํจ๊ป ์ ๋ฌํฉ๋๋ค.
command1 | command2
command1 |& commnad2
# file.txt์ ๋ด์ฉ์ ์ฝ์ด์, grep์ ์
๋ ฅ์ผ๋ก ์ ๋ฌ
cat file.txt | grep a
๋ฆฌ๋ค์ด๋ ์
๋ฆฌ๋ค์ด๋ ์
์ command > filename
์ ๊ฐ์ ํํ๋ก ์ฌ์ฉ๋๊ณ , ํ์ผ์ ์ฝ์ด์ ํ์ค ์
๋ ฅ์ผ๋ก ์ ๋ฌํ๊ฑฐ๋, ํ์ค์ถ๋ ฅ์ ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. ํ์ผ ๋์ ๋ช
๋ น์ ๊ฒฐ๊ณผ๋ฅผ ์
๋ ฅ, ์ถ๋ ฅํ ์๋ ์์ต๋๋ค. &
๋ฅผ ๋ถ์ด๋ฉด ํ์ค ์๋ฌ๋ ํจ๊ป ์ ๋ฌํฉ๋๋ค.
๋ฆฌ๋ค์ด๋ ์ | ๋ด์ฉ |
---|---|
< | ํ์ผ ์ฝ๊ธฐ |
> | ํ์ผ ์ฐ๊ธฐ(overwrite) |
>> | ํ์ผ ์ฐ๊ธฐ(insert) |
# ํ์ผ ์
๋ ฅ
command < infile
# ํ์ผ ์ถ๋ ฅ
command > outfile
command >> outfile
command >& outfile
command >>& outfile
2>&1
์ /dev/null
์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ 2>&1 ์ด๋ผ๋ ํํ์ ๋ณผ ์ ์์ต๋๋ค. ์ด ๋ช ๋ น์ ํ์ค์๋ฌ(2)๋ฅผ ํ์ค์ถ๋ ฅ(1)์ผ๋ก ๋ฆฌ๋ค์ด๋ ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ฆฌ๋ ์ค๋ ํ์ค ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ซ์๋ก ํํํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ผ๊ณ ํฉ๋๋ค.
๊ตฌ๋ถ | ํ์ผ ๋์คํฌ๋ฆฝํฐ |
---|---|
ํ์ค ์ ๋ ฅ | 0 |
ํ์ค ์ถ๋ ฅ | 1 |
ํ์ค ์๋ฌ | 2 |
/dev/null
์ ํ์ค ์ถ๋ ฅ์ ๋ฒ๋ฆฌ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๋์คํฌ๋ฆฝํฐ ์
๋๋ค. ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅ๋๋ ๋ก๊ทธ๋ฅผ ๋ณด์ง ์๊ธฐ ์ํด ์ฌ์ฉํ๊ณ , 2>&1
๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ํ์ค ์ถ๋ ฅ, ํ์ค ์๋ฌ๋ฅผ ํ๋ฉด์ ํ์ํ์ง ์๋ ์ฉ๋๋ก ์ฌ์ฉํฉ๋๋ค.
# sample.sh์ ํ์ค ์ถ๋ ฅ์ ๋ณด์ด์ง ์๋๋ก ๋ฆฌ๋ค์ด๋ ์
sample.sh > /dev/null
# sample.sh์ ํ์ค ์ถ๋ ฅ, ์๋ฌ๋ฅผ ๋ณด์ด์ง ์๋๋ก ๋ฆฌ๋ค์ด๋ ์
sample.sh > /dev/null 2>&1