Minishell is a comprehensive shell program, part of the 42 curriculum, designed to replicate the functionalities of traditional Unix shells, while using the C programming language.
- Command Prompt: Interactive command line interface with a working history.
- Executable Commands: Ability to search and launch executables (PATH, relative, absolute paths).
- Redirections and Pipes: Supports
<
,>
,<<
,>>
redirections, and|
pipes. - Environment Variables: Handles environment variables (
$VAR
,export
,unset
). - Signal Handling: Manages signals like
CTRL-C
,CTRL-D
,CTRL-\
. - Built-in Commands: Includes
echo
,cd
,pwd
,export
,unset
,env
,exit
. - Quoting Mechanism: Correctly handles single (
'
) and double ("
) quotes. - Command Separation: Supports semicolon (
;
) for command separation. - Wildcard Expansion: Implements
*
wildcard expansion. - Exit Status: Correctly returns the exit status of commands.
- Bonus Features: Parenthesis and Wildcard matching
- Clone the repository
- Compile the program:
make
- Run the shell:
./minishell
- C programming language
- Unix system calls and libraries