Welcome to our MiniShell project! This is a 42 school project that involves reimplementing a "mini" bash terminal. A program capable of parsing a prompt and launching executables with arguments, along with a few built-in functions.
- ✨ Interactive Prompt: Display a prompt while waiting for a new command.
- 📜 Command History: Keep track of command history using readline.
- 🚀 Command Execution: Execute binaries found in the PATH, relative, or absolute paths.
- 🛡️ Signal Handling: Graceful handling of ctrl-C, ctrl-D, and ctrl-\ like in bash.
- 💬 Quoting: Handle single (') and double (") quotes to prevent shell interpretation of meta-characters.
- 🔄 Redirections: Implement input (<), output (>), append (>>), and here-document (<<) redirections.
- 🔗 Pipes: Support for pipes (|) to pass output of one command as input to another.
- 🌐 Environment Variables: Expand environment variables and handle special $? variable.
- 🔧 Built-in Commands: Includes echo, cd, pwd, export, unset, env, and exit.
- CC: Ensure you have CC installed to compile the project.
- Make: A make utility to build the project.
- Valgrind: For checking memory leaks and ensuring there are no errors