Intro - Goal - Tecnology - Functionality - How to use - Tests - Update - Author
- This project was done in duo with Rafael Lacerda
- This is a minishell, recreate some of the shell functionality.
- Learned a lot about how the shell works inside and some new commands.
- My first project in a team (duo).
- We decided to work together on the tasks. And I learned that 2 brains makes thinking process more efficient.
- I learned about pipes, tolkens, execve, builtin functions, and a lot about shell commands.
- Fixed more my knowledge about signals, parsing, File Descriptors, manipulate files.
- After I finished the project I looked for ways of parsing (because it was a lot of work). I found things about parsing algorithms and compiler design. I will study more about this.
- The goal is to recreate some functionality of the shell.
- Read the line input and save the history
- Builtin commands:
- echo, with/out flag -n
- cd
- pwd (no options)
- export (no options)
- unset (no options)
- env (no options)
- exit (no options)
- Single quotes, inhibit all interpretation of a sequence of characters.
- Double quotes, inhibit all interpretation of a sequence of characters except for $.
- Redirects
- <
- >
- <<
- >> , No history update
- Pipes
- Environmment variables
-
$VARIABLE including $ ? - Signals ctrl+d , ctrl+\ , ctrl+c
- execve to execute other shell commands
- Language: C
- VS code
- WSL ubuntu
- Norminette 42 (code norm used by école 42)
- Clone the repository
git clone https://github.com/GitFlaviobc/Minishell- to create the minishell
makeor
make all- to delete all obj (.o) files created
make clean- to delete all created files
make fclean- to delete all files and recreate the minishell
make re- to run the minishell, feel free to test any commands.
./minishell- The makefile is compiling with fsanitize to check for leaks.
- No special test for this minishell, you can type some of the shell commands.
