Welcome to minishell, a project that implements a custom UNIX shell from the ground up! π This shell allows for command execution, pipe management, and process handling. π
In this project, we create a fully functional UNIX shell that supports various commands, piping between processes, and robust error handling. The shell is designed to handle signals π‘ and fork processes efficiently π΄, simulating the behavior of bash and other traditional UNIX shells. π
- πΉ Command execution: Run shell commands with ease.
- πΉ Pipe management: Link commands together for streamlined output processing.
- πΉ Signal handling: Manage signals effectively within the shell environment.
- πΉ Process forking: Create child processes to execute commands.
- πΉ Error handling: Robust mechanisms to handle errors gracefully.
To get started, follow these steps to set up and run the project:
-
Clone the repository:
git clone https://github.com/mdev9/minishell.git cd minishell make
-
Run the shell:
./minishell
- C π»: Primary language used to implement the shell.
- System Calls π: Leveraging UNIX system calls for process management and execution.
- Pipes π°: Implementing inter-process communication through pipes.
- Signals β‘: Handling OS signals for effective process management.
- Create a functional UNIX shell that mimics common shell behaviors.
- Understand key operating system concepts such as process management and system calls.
- Enhance programming skills in C through practical application.
Thank you for checking out minishell! π Happy coding! π»