Linux Shell ๊ธฐ๋ณธ ๋ช ๋ น์ด
์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋, ์ด์ํ ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ ํ์์ด๋ค. ํนํ, ์๋ฒ ํ๊ฒฝ์์ ์์ ์ ์๋ํํ๊ฑฐ๋ ์์คํ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ๋ฆฌ๋ ์ค ์(Bash/Zsh) ๋ช ๋ น์ด๋ฅผ ์์์ผํ๋ค. ๋ช ๋ น์ด๋ค๋ก ์๋ฒ ์ํ ํ์ธ, ํ์ผ ๊ด๋ฆฌ, ๋คํธ์ํฌ ์ค์ ๋ฑ ๋ค์ํ ์์ ์ ์ฌ์ฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์๋ฒ ๊ด๋ฆฌ์ ์์คํ ์ด์์ ํ์์ธ ๋ฆฌ๋ ์ค ์ ๊ธฐ๋ณธ ๋ช ๋ น์ด๋ค์ ์ ๋ฆฌํ๊ณ , ์ด์ด์ ๋ค์ ํฌ์คํ ์๋ Git ๋ช ๋ น์ด(Git Bash)๊น์ง ์์๋ณด๊ณ ์ ํ๋ค.
์์ํ๊ธฐ์ ์์ ํ์๋ Git Bash ๋๋ Ubuntu๋ฅผ ์ฌ์ฉํ ์์ ์ด๋ค.
๋ฆฌ๋ ์ค ์(Shell) ์ด๋?
์(Shell)์ ๊ฐ๋
์์ ์ฌ์ฉ์๊ฐ ์ด์์ฒด์ ์ปค๋๊ณผ ์ง์ ์ํตํ ์ ์๋๋ก ๋์์ฃผ๋ ์์คํ ์ํํธ์จ์ด์ ์ข ๋ฅ์ด๋ค. ์ด์์ฒด์ (OS)๋ ํ๋์จ์ด ์์์ ๊ด๋ฆฌํ๊ณ ์์ฉ์ํํธ์จ์ด์ ์ด๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค. ํนํ, ์๋ฒ ๊ด๋ฆฌ์์ ์์ ๊ด๋ฆฌ์์ ์์คํ ์ฌ์ด์ ์ค์ํ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ฉฐ, ๋ณต์กํ ๋ช ๋ น์ ๊ฐ๋จํ ํ ์คํธ ๋ช ๋ น์ผ๋ก ์ํํ ์ ์๊ฒ ํด์ค๋ค.
- ์์คํ ์ํํธ์จ์ด = OS ์ด์์ฒด์ : ์๋ ์์ฉ ์ํํธ์จ์ด์๊ฒ ํ๋์จ์ด ์ ๊ณต
๋๋ณด๊ธฐ
CPU ์์๊ด๋ฆฌ: ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- ์์ฉ ์ํํธ์จ์ด = ์ดํ๋ฆฌ์ผ์ด์
= ํ๋ก๊ทธ๋จ
- Shell: ์ ์ ๊ฐ ์ปค๋์ ์ง์ ๋ค๋ฃจ๊ธฐ๋ ๋๋ฌด ์ด๋ ค์์ ์์ฉ ์ํํธ์จ์ด๋ก ๊ฐํธํ ์ ์ด ๋ฐ ์ฌ์ฉ์ ์ ๊ณต
- ๊ทธ ์ธ ๋ชจ๋ ์์ฉ ์ํํธ์จ์ด: ์ฐ๋ฆฌ๊ฐ ๋ค์ด๋ฐ๊ณ , ์ค์นํด์ ์ฌ์ฉํ๋ ๋ชจ~๋ ๊ฒ.
์์ ์ข ๋ฅ
๊ณผ๊ฑฐ์๋ sh(Bourne Shell)์ ์ฌ์ฉํ๊ณ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๊ฐ์ง๋ Bash(Bourne-Again Shell)์ Zsh(Z Shell)์ด๋ค.
- Bourne Shell (sh): AT&T ๋ฒจ ์ฐ๊ตฌ์์์ ๊ฐ๋ฐ๋ ์๋ก, ์ ์คํฌ๋ฆฝํธ์ ํ์ค์ผ๋ก ์ฌ์ฉ๋๋ค.
- Bourne-Again Shell(Bash): GNU ํ๋ก์ ํธ์ ์ผํ์ผ๋ก ๊ฐ๋ฐ๋ ์ ๋์ค ๊ณ์ด ์ด์์ฒด์ ์ ๊ธฐ๋ณธ์. ์๋ฒ ๊ด๋ฆฌ ์์ ์ด๋ ํ๊ฒฐ ์ค์ ์ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- Z Shell(Z sh): Bash์ ์ ์ฌํ์ง๋ง, ๋ ๋ง์ ์ปค์คํฐ๋ง์ด์ง ์ต์ ๊ณผ ์ธํฐ๋ํฐ๋ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ณต์กํ ์๋ฒ ๊ด๋ฆฌ ์์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋๋ก ํด์ค๋ค.
๋ฆฌ๋ ์ค ์(Bash/Zsh) ๋ช ๋ น์ด ๋ชจ์
๋๋ ํ ๋ฆฌ ๋ฐ ํ์ผ ํ์
์๋ฒ์์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ํ์ผ์ ์์น๋ฅผ ์ ํํ ํ์ ํด์ผํ๋ค. ์ด๋ฅผ ์ํด ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ค:
- `pwd`: ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์ ๋๊ฒฝ๋ก
- `ls`: ๋๋ ํ ๋ฆฌ ๋ด ํ์ผ ๋ชฉ๋ก ์กฐํ. → `ls -la` ๋๋ `ll`์ ์ฌ์ฉํ๋ฉด ์จ๊น ํ์ผ๊น์ง ์์ธํ ์กฐํ ๊ฐ๋ฅ(`a` ๋ชจ๋ ๊ฑธ, `l` ์์ธํ๊ฒ)
- `cd` ๋๋ ํ ๋ฆฌ ๊ฐ ์ด๋. `cd ..`๋ก ์์ ๋๋ ํ ๋ฆฌ ์ด๋ํ๊ฑฐ๋ `cd /x`๋ก ์ ๋๊ฒฝ๋ก ์ด๋ ๊ฐ๋ฅ
๋๋ ํ ๋ฆฌ ๋ฐ ํ์ผ ์กฐ์
์๋ฒ์์ ํ์ผ์ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๊ณ , ์ด๋ํ๊ฑฐ๋ ๋ณต์ฌํ๋ ์์ ์ ์ํด ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ค:
- `mkdir`: ์ ๋๋ ํ ๋ฆฌ ์์ฑ
- `rm`: ๋๋ ํ ๋ฆฌ๋ ํ์ผ ์ญ์ . `rm -rf`๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ๋๋ ํ ๋ฆฌ๊น์ง ๊ฐ์ ๋ก ์ญ์ (`r`๋ฆฌ์ปฌ์๋ธ, ๋ด๋ถ์ ์๋ ๋๋ ํ ๋ฆฌ๋ค ๋ชจ๋, `f` ๊ฐ์ ๋ก์ญ์ )
- `cp`: ๋๋ ํ ๋ฆฌ๋ ํ์ผ๋ก ๋ณต์ฌ `cp -r` ํ์ ๋๋ ํ ๋ฆฌ๊น์ง ๋ณต์ฌ
- `mv`: ๋๋ ํ ๋ฆฌ๋ ํ์ผ ์ด๋ / ๋ช ์นญ ๋ณ๊ฒฝ
- `touch`: ๋น ํ์ผ ์์ฑ
ํ์ผ ์ถ๋ ฅ
์๋ฒ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ฑฐ๋, ์ค์ ํ์ผ์ ํ์ธํ๋ ์์ , ํ์ผ์ ๋ด์ฉ์ ์ถ๋ ฅํ๊ณ ํ์ธํ ์ ์๋ ๋ช ๋ น์ด๋ค:
- `cat`: ํ์ผ ๋ด์ฉ ์ถ๋ ฅ
- `echo`: ๋ฌธ์์ด ์ถ๋ ฅ, ์ผ๋ฐ์ ์ผ๋ก ํ๊ฒฝ๋ณ์์ ๊ฐ์ ํ์ธํ๋๋ฐ์ ์ฌ์ฉ
- `head`:ํ์ผ์ ์ฒซ ๋ฒ์งธ ๋ช ์ค์ ์ถ๋ ฅ. `head -n 10` ์ผ๋ก ์ฒซ 10์ค ์ถ๋ ฅ ๊ฐ๋ฅ
- `tail`: ํ์ผ์ ๋ง์ง๋ง ๋ช์ค์ ์ถ๋ ฅ. `tail -f`๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ ๋ก๊ทธ ํ์ธ ๊ฐ๋ฅ
๋ช ๋ น์ด ํ์ฅ: | (ํ์ดํ Pipe)
์๋ฒ ๊ด๋ฆฌ์์๋ ์ฌ๋ฌ ๋ช ๋ น์ด๋ฅผ ๊ฒฐํฉํ์ฌ ๋ณต์กํ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ๊ฐ ์์. ์ด๋ฅผ ์ํด ๋ช ๋ น์ด ํ์ฅ ๊ธฐ๋ฅ์ ํ์ฉ.
`|`(ํ์ดํ): ํ ๋ช ๋ น์ด์ ์ถ๋ ฅ์ ๋ค์ ๋ช ๋ น์ด์ ์ ๋ ฅ์ผ๋ก ์ ๋ฌ.
ls | sort | less
- `ls`๋ก ํ์ผ ๋ชฉ๋ก์ ์ถ๋ ฅํ ํ, ์ด๋ฅผ ์ ๋ ฌํ๊ณ `less`๋ก ํ์ด์ง ๋จ์๋ก ๋ณด์ฌ์ค.
- `grep`: ๋ฌธ์์ด ์ค ํน์ ์ ๊ท ํํ์ ์กฐ๊ฑด ํ์. ์ค์๊ฐ ๋ก๊ทธ ์กฐํ์์ ํน์ ๋ด์ฉ์ ๊ฒ์ํ ๋ ์ ์ฉํ๋ค.
tail -f /usr/local/var/log/nginx/access.log | grep "favicon.ico"
tail -f /usr/local/var/log/nginx/access.log | grep -E "127.0.0.1"
tail -f /usr/local/var/log/nginx/access.log | egrep "127.0.0.1"
- `-E`: ์ ๊ทํํ์ ์ฌ์ฉ
- `-i`: ๋์๋ฌธ์ ๊ตฌ๋ถ์๋ ๊ฒ์์ ์ํด
- `n`: ๊ฒ์๋ ๋ผ์ธ ๋๋ฒ ํ๊ธฐ
Override, Append
- `>`: ๋ช ๋ น์ด์ ์ถ๋ ฅ์ ํ์ผ๋ก ๋ฎ์ด์ด๋ค.
- `>>`: ๋ช ๋ น์ด์ ์ถ๋ ฅ์ ํ์ผ์ ์ถ๊ฐํ๋ค.
echo "Hello, Wworld!" >> example.txt
- "Hello, World!" ๋ฌธ์์ด์ `example.txt` ํ์ผ ๋์ ์ถ๊ฐํ๋ค.
๊ธฐํ ๋ช ๋ น์ด ํ์ฅ
- `&&`: ์์ ๋ช ๋ น์ด๊ฐ ์ฑ๊ณตํ ๊ฒฝ์ฐ์๋ง ๋ค์ ๋ช ๋ น์ด ์ํ
- `;`: ์์ ๋ช ๋ น์ด๊ฐ ์คํจํด๋ ๋ค์ ๋ช ๋ น์ด ์คํ
- `&`: ์์ ๋ช ๋ น์ด์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ๋์์ ์คํ
- `||`: ์์ ๋ช ๋ น์ด๊ฐ ์คํจํ๋ฉด ๋ค์ ๋ช ๋ น์ด ์คํ
์ ํธ๋ฆฌํฐ
์๋ฒ ๊ด๋ฆฌ ์์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ํํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ์ ํธ๋ฆฌ๋ ๋ช ๋ น์ด๋ค.
- `chmod`: ํ์ผ ๊ถํ ๋ณ๊ฒฝ. ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๊ถํ์ ์ค์ ํ ์ ์๋ค. → 4(READ) + 2(WRITE) + 1(EXECUTE) | ๋์: Owner + Group + Other
→ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์์ ๋งํฌ (https://www.youtube.com/watch?v=4N4Q576i3zA)
chmod 700 script.sh
- `script.sh` ํ์ผ์ ๋ํด ์์ ์๋ง ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๊ถํ์ ๋ถ์ฌํ๋ค.
- `tar`: ํ์ผ์ ์์ถํ๊ฑฐ๋ ์์ถ์ ํด์ ํ๋ค.
tar -xvf apache-tomcat-9.0.16.tar
- `apache-tomcat-9.0.16.tar`ํ์ผ์ ์์ถ์ ํด์ ํ๊ณ ์ด๋ค ํ์ผ์ด ํ๋ฆฌ๋์ง ์ถ๋ ฅ
- `-x`: extract ์์ถํ๊ธฐ ↔ `-c`: create ์์ถํ๊ธฐ
- `-v`: verbose ์ด๋ค ํ์ผ์ด ํ๋ฆฌ๋์ง ์์ธํ ๋ณด๊ธฐ
- `-f`: filename ์ง์
- `sudo`: ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ช ๋ น์ด ์คํ. ํน์ ๋ช ๋ น์ด๋ฅผ Root ๊ถํ์ผ๋ก ์คํํ ๋ ์ฌ์ฉ
- `vi`: ํ ์คํธ ํ์ผ์ ํธ์งํ๋ ์๋ํฐ. ↔ `code`: VSCode ์๋ํฐ
๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ ์๋ฒ ๊ด๋ฆฌ์์ ํ์์ ์ธ ๋๊ตฌ์ด๋ค. ๋ช ๋ น์ด๋ค์ ์ดํดํ๊ณ ํ์ฉํ๊ฒ๋๋ฉด ์ถํ์ ์๋ฒ ์ด์์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ํ ์ ์๋ค.
ํด๋น ํฌ์คํ ์ ์์์ผ๋ก ๋ค์ ํฌ์คํ ์ Git Bash๋ฅผ ์ด์ฉํ์ฌ Git ๋ช ๋ น์ด๋ค์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.
โน๏ธ์ฐธ๊ณ
[ASAC 6๊ธฐ ๊ฐ์์๋ฃ]
https://www.youtube.com/watch?v=4N4Q576i3zA
'๐ปDEV-STUDY > HTTP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5. ์น ๋ณด์ HTTPS & CORS (0) | 2024.08.27 |
---|---|
4. Session (4) | 2024.08.24 |
3. Web Storage (0) | 2024.08.24 |
2. HTTP Cookie (4) | 2024.08.23 |
1. ์ฟ ํค(Cookie) & ์ธ์ (Session) + JWT (0) | 2024.08.23 |