The Minishell project is part of the 42 curriculum and challenges students to build a simple Unix-like shell. The goal is to replicate basic shell functionality, allowing users to interact with the operating system through command-line inputs.
-
Command Parsing and Execution:
- Interpret user input and execute corresponding system commands.
-
Pipes and Redirection:
- Implement support for pipes (
|) to connect processes. - Handle input/output redirection (
>,<).
- Implement support for pipes (
-
Environment Variables:
- Support common shell commands like
echo,cd,pwd,export,unset, andenv. - Manage and modify environment variables.
- Support common shell commands like
-
Signal Handling:
- Manage signals like:
Ctrl-C: Interrupt the current process.Ctrl-D: End-of-file (EOF) input handling.Ctrl-\: Quit signal.
- Manage signals like:
-
Process Management:
- Use system calls like
fork(),execve(), andwaitpid()to create and manage processes.
- Use system calls like
The Minishell project enhances understanding of:
- Low-level process management.
- System calls for process creation and execution.
- Shell input parsing and command execution.
- Unix-like systems and how shells interact with the OS.
By the end of the project, you'll have a deeper appreciation for how operating systems manage processes, signals, and input/output, which are critical for systems programming.
