Minishell is a project from Ecole 42 that focuses on building a minimal shell program in C. The goal of the project is to implement a basic command line interface capable of executing commands, managing environment variables, and supporting input/output redirection.
In this project, you will create a shell that can interpret user commands and execute them. The shell should support various built-in commands and handle processes through the fork
, exec
, and wait
system calls.
- To understand how a shell works and how it interacts with the operating system.
- To gain experience in process management and execution in C.
- To learn about handling strings, parsing commands, and managing environment variables.
- To implement features like input/output redirection and piping.
- Command Execution: Execute commands entered by the user.
- Built-in Commands: Implement essential built-in commands such as
cd
,echo
,exit
, and others. - Environment Variables: Support for managing and manipulating environment variables.
- Input/Output Redirection: Handle input/output redirection using
<
and>
operators. - Piping: Implement piping functionality with the
|
operator to connect commands.
-
Compiling the Project: Use
make
to compile the shell program:make
-
Running the Shell:
./minishell
-
Using Commands