๋ชฉ์ฐจ
Shell
โข
๋ช
๋ น์ด ์
๋ ฅ, ์คํฌ๋ฆฝํธ ์์ฑ, ํ๋ก์ธ์ค ๊ด๋ฆฌ ๋ฑ์ ์ํํ๋ ๋ช
๋ น์ด ํด์๊ธฐ
โข
์ฌ์ฉ์์ ์
๋ ฅ์ Kernel๋ก ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค
๋ฆฌ๋ ์ค ์ ์ถ๋ ฅ
๋ฒํธ | ์์ฑ๋ช
| ์ค๋ช
| ๋๋ฐ์ด์ค ์์ |
0 | stdin | ํ์ค ์
๋ ฅ, ๋ช
๋ น์ด์ ์
๋ ฅ๋ ๋ด์ฉ์ ์ ์ฅ | ํค๋ณด๋ |
1 | stdout | ํ์ค ์ถ๋ ฅ, ๋ช
๋ น์ด์์ ์ถ๋ ฅ๋ ๋ด์ฉ์ ์ ์ฅ | ํ๋ฉด (๋ชจ๋ํฐ) |
2 | stderr | ํ์ค ์ค๋ฅ, ๋ช
๋ น์ด์์ ์ถ๋ ฅ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ์ฅ | ํ๋ฉด (๋ชจ๋ํฐ) |
Redirection
โข
>: ํ์ค ์ถ๋ ฅ์ ํ์ผ๋ก ์ฌ์ง์ (๋ฎ์ด์ฐ๊ธฐ)
โข
>>: ํ์ค ์ถ๋ ฅ์ ํ์ผ๋ก ์ฌ์ง์ (์ถ๊ฐ)
โข
<: ํ์ค ์
๋ ฅ์ ํ์ผ๋ก ์ฌ์ง์
โข
2> error.log: ํ์ค ์๋ฌ๋ฅผ error.log ํ์ผ๋ก ์ฌ์ง์
Shell ์ข ๋ฅ
โข
sh (Bourne Shell)
โฆ
์ต์ด์ Unix ์
ธ ์ค ํ๋
โฆ
๊ธฐ๋ณธ์ ์ธ ์คํฌ๋ฆฝํ
๊ธฐ๋ฅ ์ ๊ณต
โข
bash (Bourn-Again Shell)
โฆ
Linux์ macOS์ ๊ธฐ๋ณธ ์
ธ
โฆ
๊ณ ๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ (๋ฐฐ์ด, ๋ช
๋ น์ด ์นํ, ์
ธ ํจ์ ๋ฑ)
โข
zsh (Z Shell)
โฆ
๋ณต์กํ ๊ตฌ์ฑ ์ต์
, ํ
๋ง, ํ๋ฌ๊ทธ์ธ, ์๋์์ฑ ๊ธฐ๋ฅ ์ ๊ณต
โฆ
macOS์ ๊ธฐ๋ณธ ์
ธ (Catalina ์ดํ)
ํ๊ฒฝ ์ค์
ํ๊ฒฝ ํ์ผ
โข
~/.profile: ์ ์ฒด ์ธ์
์ ์ ์ฉ๋๋ ํ๋ก๊ทธ๋จ ๋ฐ ํ๊ฒฝ ๋ณ์ ์ ์
โข
~/.bashrc: ๋ณ์นญ, ํจ์, ์
ธ ์ต์
, ํ๋กฌํํธ ์ค์ ๋ฑ bash์ ์ ์ฉ๋๋ ํญ๋ชฉ ์ ์
๋ก๊ทธ์ธ ์ ธ
โข
๋ก๊ทธ์ธ ์ ์ฌ์ฉ๋๋ ์
ธ: ~/.profile ํธ์ถ
โข
Bash Shell:
โฆ
๋ก๊ทธ์ธ ์
ธ ํธ์ถ ์ ~/.bash_profile ์ฌ์ฉ (์กด์ฌํ์ง ์์ผ๋ฉด ~/.profile)
โฆ
๋น๋ก๊ทธ์ธ ์
ธ์ผ ๊ฒฝ์ฐ ~/.bashrc ์ฌ์ฉ
Alias
๋ณ์นญ์ ์ง์ ํ์ฌ ๋ช
๋ น์ด ๋ฑ์ ๋จ์ถํ์ฌ ์ฌ์ฉ
# ๋ณ์นญ ์ง์
alias ๋ณ์นญ='๋ช
๋ น์ด'
# ๋ณ์นญ ํด์
unalias ๋ณ์นญ
Bash
๋ณต์ฌ
ํ๊ฒฝ ๋ณ์
โข
์ค์ ๋ฐ ์กฐํ
โฆ
env: ์ ์ญ ๋ณ์ ์ค์ ์กฐํ
โฆ
set: ์ฌ์ฉ์ ํ๊ฒฝ ๋ณ์ ์ค์ ์กฐํ
โฆ
export ์ ์ญ ๋ณ์ ์ค์
โข
์๊ตฌ์ ํ๊ฒฝ ๋ณ์
โฆ
๊ฐ๋ณ ์ฌ์ฉ์: ~/.bashrc ํ์ผ์ ํ๊ฒฝ ๋ณ์ ์ถ๊ฐ
โช
๋ณ๊ฒฝ ์ฌํญ ์ ์ฉ: source ~/.bashrc ๋ช
๋ น ์คํ
โฆ
๋ชจ๋ ์ฌ์ฉ์: /etc/profile ํ์ผ์ ํ๊ฒฝ ๋ณ์ ์ถ๊ฐ
โข
ํ๊ฒฝ ๋ณ์ ํ์ธ ๋ฐ ๋ณ์ ์ญ์
โฆ
echo $๋ณ์ / unset ๋ณ์