Welcome to KINDERshell๐ฅ [์ฌ์ง ์ฝ์ ์์ ] ๊ฐ๋ฐ ๊ธฐ๊ฐ : 8/24 ~
The objective of this project is for you to create a simple shell. Yes, your own little bash or zsh. You will learn a lot about processes and file descriptors.
With Minishell, youโll be able to travel through time and come back to problems people faced when Windows didnโt exist.
-
์ธํฐํ๋ฆฌํฐ๋ ๋ช ๋ น ํ๋กฌํํธ(
$>
)๋ฅผ ๋์์ผํ๋ค.- ์ฌ์ฉ์๊ฐ enter ํค๋ฅผ ๋๋ฌ ๋ช ๋ น์ค(command line)์ ์ ๋ ฅํ ๋ ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
- ํ๋กฌํํธ๋ ๋ช ๋ น์ด ์์ ํ ์คํ๋ ํ์๋ง ๋ค์ ํ์๋๋ค.
-
ํ๊ฒฝ๋ณ์ PATH์ ์๋๊ฒฝ๋ก, ์ ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ์คํ ํ์ผ(The executable)์ ์ฐพ๊ณ ์คํํ๋ค.
- ์คํ ํ์ผ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํ๊ณ ํ๋กฌํํธ๋ฅผ ๋ค์ ํ์ํ๋ค.
-
Working History๋ฅผ ๋ณด์ฌ์ค๋ค.
-
์ ์ญ๋ณ์๋ 1๊ฐ๊น์ง๋ง ํ์ฉํ๋ค.
-
๋ซํ์ง ์์ ๋ฐ์ดํ๋, , ;, . ๊ฐ์ ํน์๋ฌธ์์ ๋ํด์ ํด์ํ์ง ์์๋ ๋๋ค.
-
๋ค์๊ณผ ๊ฐ์ ์ ๋ด์ฅ ํจ์๋ฅผ ๊ตฌํํ๋ค. (Builtin directory)
echo
(-n
option only)cd
(์๋๊ฒฝ๋ก, ์ ๋๊ฒฝ๋ก๋ง)pwd
(option์ ์ธ)export
(option ์ ์ธ)unset
(option ์ ์ธ)env
(option, argument์ ์ธ)exit
(option ์ ์ธ))
-
๋ค์์ ๊ธฐ๋ฅ๋ค์ Bash shell์ ์ ์ฌํ๊ฒ ๋์ํด์ผํ๋๋ก ๊ตฌํํ๋ค.
'
,"
- file redirection (
<<
,<
,>
,>>
) - ํ์ดํ(
|
) - ํ๊ฒฝ๋ณ์(
$
์ดํ์ ๋ณ์ ex)$HOME ) $?
(exit code)ctrl-C
,ctrl-D
,ctrl-\
-
์ด์ธ์ ์ ์๋์ง ์์ ์ฌํญ๋ค์ ๋ฌด์๋์ด๋ ์ข๋ค.
-
๋ชจ๋ ์ฌํญ์์ Bash๋ฅผ ์ฐธ๊ณ ํ๊ธธ ์ถ์ฒํ๋ค.
- malloc, free
- read, write, open, close
- opendir, readdir, closedir
- getcwd, chdir
- stat, lstat, fstat
- fork, execve, wait, waitpid, wait3, wait4
- signal, kill, exit
- strerror, errno
- dup, dup2, pipe