
1. ์ (์ ธ)
- ๋ช ๋ น์ด์ ์ปค๋์ด ๋ํ๋ฅผ ํ ์ ์๊ฒ ๋์์ฃผ๋ ์ผ์ข ์ ์ธํฐํ์ด์ค
- ๋ช ๋ น์ด ํด์๊ธฐ๋ผ๊ณ ๋ด๋๋จ
์ ์ ๊ฐ ์ ธ(๋ช ๋ น์ด ํด์๊ธฐ)์ ๋ช ๋ น์ ์ ๋ฌํ๋ฉด ์ ธ์ด ์ปค๋ํํ ๋ถํํ๊ณ , ์ปค๋์ด ๋ด๋ถ์ ์ธ ์์ ์ ์คํํ ํ ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ธ์ ํตํด ์ ์ ์๊ฒ๋ก ์ ๋ฌ

์ ธ(shell)์ ๊ป์ง์ด๋ผ๋ ๋ป์ผ๋ก ์ปค๋์ ๊ฐ์ธ๊ณ ์์ด์ ๊ทธ๋ฐ ์ด๋ฆ์ด ๋์๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ : ์์คํ ์ฝ(syscall), ์ ธ, ์ปค๋๋ชจ๋ vs ์ ์ ๋ชจ๋
2. ์ ธ ์ข ๋ฅ
์ฌ์ฉ์ ํ๋กฌํํธ๊ฐ $์ด๋ฉด ๋ณธ ์ ธ ๊ณ์ด, %์ด๋ฉด C์ ธ ๊ณ์ด์ด๋ค.
- Bourne-Shell(/bin/sh) - ์ ๋์ค์ ์ค๋ฆฌ์ง๋ ์. ์ํธ ๋ํํ ๋ฐฉ์ ๋ถ๊ฐ๋ฅ
- C shell(/bin/csh) - C ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง. ๋น ์กฐ์ด(vi ์๋ํฐ ๋ง๋ ์ฌ๋)๊ฐ ๋ง๋ค์์.
- Bourne-agin shell(/bin/bash) - ๋ฆฌ๋ ์ค์ ํ์ค ์. GNU ๊ฐ๋ฐํ ๋ ๋ง๋ค์ด์ง. ksh+csh๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ
- Korn Shell (/bin/ksh) - ๋ณธ์ ํ์ฅํ. AT&T์ ๋ฐ์ด๋น๋ ์ฝ์ด ๋ง๋ฆ.
- TENEX C shell (/bin/tcsh)

3. ์ฌ์ฉ์ค์ธ ์ ํ์ธ
<bash />
echo $SHELL
SHELL์ ํ์ฌ ์ฌ์ฉ์ค์ธ ์์ ๋ํ๋ด๋ ํ๊ฒฝ ๋ณ์์ด๋ค.
๋ํ /etc/passwd ํ์ผ์์๋ ํ์ธํ ์ ์๋ค. (์ฐธ๊ณ : [Linux] /etc ๋๋ ํ ๋ฆฌ)

๋ํ /etc/shells์์ ์ฌ์ฉํ ์ ์๋ ์๋ค์ ์ข ๋ฅ๋ ํ์ธํ ์ ์๋ค

4. ์ ๋ณ๊ฒฝ
<bash />
chsh [์ต์
] ๊ณ์ ๋ช
์
ธ
#์ต์
# -s : ์ง์ ํ๋ ์
ธ์ ์์ผ๋ก ๋ก๊ทธ์ธํ ์
ธ๋ก ๋ณ๊ฒฝ (์ฌ๋ถํ
ํด์ผ์ง ๋ช
๋ น์ด ์ธ์๋จ)
# -l : /etc/shells ํ์ผ ์์ ์ง์ ํ ์
ธ์ ๋์ด
usermod [์ต์
] ๊ณ์ ๋ช
#์ต์
-s ๋ณ๊ฒฝ ์
ธ : ์๋ก์ด ์
ธ๋ก ๋ณ๊ฒฝ ์ ์ฌ์ฉ
5. ์ ์คํฌ๋ฆฝํธ (Shell Script)
์ ๋ช ๋ น์ด๋ค์ ์งํฉ์ ๋ชจ์๋ ํ์ผ์ ์ ์คํฌ๋ฆฝํธ๋ผ๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ฆ Unix ์ปค๋งจ๋ ๋ฑ์ ๋์ดํด์ ์คํํ๋ ๊ฒ์ด๋ค.
[ ์์ ]
์ ์์ฒด๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
<bash />
#!/bin/bash #/bin/bash๋ฅผ ์คํํ๊ฒ ๋ค๋ ์๋ฏธ. ์๋ฅผ shebang์ด๋ผ๊ณ ํ๋ค.
#compile.sh
echo "gcc -o $1 $1.c" #๋งค๊ฐ๋ณ์๋ $๋ฅผ ๋ถ์ธ๋ค.
gcc -o $1 $1.c
์ ์คํฌ๋ฆฝํธ์์ ์ถ๋ ฅ์ echo, ์ ๋ ฅ์ read๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ๋ ค๋ฉด ์์ bash ๋ช ๋ น์ด๋ฅผ ๋ถ์ด๊ฑฐ๋ +x ๊ถํ์ ์ฃผ๋ฉด ๋๋ค.
<bash />bash compile.sh chmod +x compile.sh
6. ์ ํ๊ฒฝ ์ค์
์๋ ๋ณผ๋ ์ณ๋ ํ์ผ๋ค์ ๋ค ์ ์คํฌ๋ฆฝํธ ํ์ผ์ผ๋ก, CTF์์ Dockerfile์ ์ค ๋ ๋ง์ด ์ ํด๋ดค์ ๊ฒ์ด๋ค.
bash ์์ด ๋ํ์ ๋ก๊ทธ์ธ ์๋ก ์คํ๋๋ฉด ์ฐ์ /etc/profile์ ์คํํ๋ค. ๋ง์ฝ์ ์์ผ๋ฉด ~/.bash_profile, ~/.bash_login, ~/profile์ ์ฐจ๋ก๋ก ์ฐพ์ ํ์ ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒฌํ ํ์ผ ์ค์์ ์ฝ์ด์ฌ ์ ์๋ ํ์ผ์ ์คํํ๊ฒ ๋๋ค.
๋ก๊ทธ์ธ ์์ด ์ข ๋ฃ๋๋ฉด ~/.bash_logout ํ์ผ์ด ์๋ค๋ฉด ์๋ฅผ ์คํํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ก๊ทธ์ธ ์์ด ์๋ ๋ํ์ ์๋ก ์คํ๋ ๊ฒฝ์ฐ ~/.bashrc ํ์ผ์ ์คํํ๊ฒ ๋๋ค.
Reference
[์ฑ ] UNIX ์์คํ ํ๋ก๊ทธ๋๋ฐ
'๐ฅ๏ธ Computer Science > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ๋ ์ค์์ ํ๋์จ์ด ์ ๋ณด ํ์ธํ๋ ๋ฐฉ๋ฒ (0) | 2024.04.13 |
---|---|
[Linux] /proc ๋๋ ํ ๋ฆฌ (1) | 2023.10.04 |
[Linux] Virtual Device (๊ฐ์ ์ฅ์น) (1) | 2023.09.04 |
[Linux] inode, ์ฌ๋ณผ๋ฆญ ๋งํฌ(์ํํธ ๋งํฌ), ํ๋๋งํฌ (0) | 2023.05.31 |
[Hackerschool FTZ] Trainer 1~10 (0) | 2023.05.29 |