minishell is a simplified shell program implemented in C, designed to replicate core functionalities of the UNIX shell. This project is part of the 42 School curriculum and aims to provide a deeper understanding of system calls, process management, and shell behavior.
- Execution of commands: Supports both built-in commands and external binaries.
- Environment variable management: Export, unset, and modify environment variables.
- Redirections: Input (
<), output (>), and append (>>) redirections. - Pipes (
|): Create pipelines to connect commands. - Signal handling: Handles
Ctrl+C,Ctrl+D, andCtrl+\to mimic bash behavior. - Built-in commands:
cd: Change directory.echo: Print messages to standard output.pwd: Print the current working directory.export: Set environment variables.unset: Remove environment variables.env: Display environment variables.exit: Exit the shell.
- GCC or another C compiler
make- Linux operating system
- Clone the repository:
git clone https://github.com/schardot/minishell.git cd minishell - Build the executable:
make
- Run the shell:
./minishell
minishell/
|-- src/ # Source code files
|-- include/ # Header files
|---- libft/ # Custom C library
|-- Makefile # Build system
|-- README.md # Project documentation
Developed by Natália Schardosim and Elmira Kechedzhi as part of the 42 School curriculum.
This project is licensed under the MIT License.