This project is an introduction to the world of Unix system programming.
The objective of this project is for you to create a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
make
./minishell
- Prompt display
- Command execution
- Environment variables
- Signal handling (
Ctrl-C
,Ctrl-D
,Ctrl-\\
) - Built-in commands:
-
pwd
-
echo [-n] [string ...]
-
cd with oldpwd support
-
export support for += and without value
-
unset
-
env
-
exit [status]
-
- Pipes
|
- Redirections
>
,>>
,<
and<<
- Logical operators
&&
and||
- Parentheses
()
for logical operators and pipes - expansion
-
~
-
$?
-
$
-
""
-
''
- wildcards expansion (
*
,?
) - unescaped characters (
\
,\n
) - Support of non_interactive / interactive mode
- Execute commands through the Arguments
- Working directory and
$PATH
management - Support of multiple commands separated by
;
-
make debug