45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# 🐚 minishell – Custom UNIX Shell 💻
|
||
|
||
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. 🌐
|
||
|
||
## 📝 Project Overview
|
||
|
||
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. 🚀
|
||
|
||
### Features:
|
||
- 🔹 **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.
|
||
|
||
## 🛠️ Installation & Setup
|
||
|
||
To get started, follow these steps to set up and run the project:
|
||
|
||
1. **Clone the repository**:
|
||
```bash
|
||
git clone https://github.com/your-username/minishell.git
|
||
cd minishell
|
||
make
|
||
```
|
||
|
||
2. **Run the shell**:
|
||
```bash
|
||
./minishell
|
||
```
|
||
|
||
## 🔍 Technologies Used
|
||
|
||
- 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.
|
||
|
||
## 🎯 Goals of the Project
|
||
- 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! 💻
|