โจ๏ธ minishell
heeheeshell
by yeha and kukim
@42seoul : (2020.11.10 ~ 2021.01.03)
๐ About
- ๊ฐ๋จํ ์ ํ๋ก๊ทธ๋จ์ ๊ตฌํํฉ๋๋ค.(The objective of this project is for you to create a simple shell.)
- ์๋์ bash์ ๋์ผํฉ๋๋ค.
- bash์ ์๋ ๋ฐฉ์, Standard Stream, foreground & background process, fork, IPC, pipe, execve, signal ๋ฑ์ ๊ณต๋ถํฉ๋๋ค.
- ์ด์ ํ๋ก์ ํธ libft, get_next_line ํ์ฉ
- ๊ตฌํ ๋ชฉ๋ก
- echo, exit, return value, env, export, unset, cd, pwd
- $PATH
- multiline string
- ๊ทธ ์ธ command : /bin/[command]
- redir(<,>, >>)</,>
- pipe(|)
๐ Review
- ์ฌ์ ์ง์์ ์ป๊ธฐ ์ํด OS ์คํฐ๋๋ฅผ ๋ ๋ฌ ๋์ ์งํํ๋ฉฐ ์ฐ์ต ๋ฌธ์ ๋ ํจ๊ป ์ ์ถํ๋ค.
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ์์ ๋ด๋ถ ๋์์ ์๊ฒ ๋์๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋งค์ฐ ๋๋ผ์ด ์ผ์ด๋ค.ex)zsh์์ ls -al ๋ช ๋ น์ด ์คํํ๋ฉด zsh๋ ์์ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ํ๋ก์ธ์ค๋ /bin/ls ๋ฅผ ์คํํ๋ค๋! ๋๋์ง ์๋ํ๊ฐ?
- ๋ถ๋ชจ/์์ ํ๋ก์ธ์ค ์์ฑ, IPCํต์ ์ ๋ํด ์ดํดํ๊ฒ ๋์๊ณ signal๊ณผ exit ์ข ๋ฃ ์ฝ๋๋ ์๊ฒ๋์๋ค.
- Nginx ์๋น์ค๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ ๋ ์ด๋ป๊ฒ ๋์ํ ๊น? ๊ถ๊ธํ๋๋ฐ ์ด ํ๋ก์ ํธ๋ฅผ ํตํด ๋ถ๋ชจ/์์ ํ๋ก์ธ์ค ๋ถ๊ธฐ ํ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ waitpid() ํ์ง ์๊ณ ์ข ๋ฃํ๋ฉด ๋๋ค๋ ๊ฒ๋ ์๊ฒ ๋์๋ค.
- ํ ์ค ํ : ์๋ ๋ด๊ฐ ์์ ๋ง๋ค์๋ค๊ณ ? ๐๐๐๐
๐ Run
- echo, Multi line, exit, return value, ';' cat, cd, pwd
- env, export, unset, Signal(Ctrl + C, \, D), redir, pipe
๋๊ธ0