About • How to use • Mandatory • Bonus • Norminette • Contributing
This project consists of creating a simple shell. It serves as a practical introduction to the world of processes and file descriptors. The goal is to develop a program capable of reading commands, parsing them, and executing them, mimicking the basic behavior of Bash.
- Subject
PDF
git clone https://github.com/realgetOff/mini_hell.git
cd mini_hellmake./mini_hellmake - Compile so_long files.
make clean - Delete all .o (object files) files.
make fclean - Delete all .o (object files) and .a (executable) files.
make re - Use rules fclean + all.
- Prompt: Displays a prompt when waiting for a new command.
- History: Working command history.
- Execution: Searches and launches executables (PATH, absolute or relative paths).
- Signals: - ctrl-C displays a new prompt. ctrl-D exits the shell. ctrl-\ does nothing.
- Quotes: - ' (Single quotes) prevent interpretation of meta-characters. " (Double quotes) prevent interpretation except for $.
- Redirections: Handles <, >, >>, and << (heredoc).
- Pipes: Connects the output of a command to the input of the next.
- Environment: Handles $ expansion and $? for exit status.
BUILT-INS
- echo (with -n), cd, pwd, export, unset, env, exit.
- Logical Operators: Handles && and || with parentheses for priorities.
- Wildcards: Handles * for the current working directory.
At 42 School, it is expected that almost every project is written following the Norm.
- No memory leaks (except from the readline library).
- Only one global variable allowed (for signals).
- Compliance with the 42 Norm (v3).
- 42 Norms - Information about 42 code norms.
PDF - Norminette - Tool to respect the code norm, made by 42.
GitHub - 42 Header - 42 header for Vim.
GitHub
If you find any issues or have suggestions for improvements, feel free to fork the repository and open an issue or submit a pull request.
All credits go to @jotavare for the original README template.
