Skip to content

Minishell: A small Shell with team collaboration: Recreate shell functionality with commands, redirects, pipes, environment variables, signals, and more. Developed with github.com/rafalacerda1530

License

Notifications You must be signed in to change notification settings

GitFlaviobc/Minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Minishell - A small Shell but a lot of team work

📋 Table of contents

Intro - Goal - Tecnology - Functionality - How to use - Tests - Update - Author

Intro

  • 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.

📋

🎯 Goal

  • 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

📋

🛠️ Tecnology

  • Language: C
  • VS code
  • WSL ubuntu
  • Norminette 42 (code norm used by école 42)

📋

📚 Functionality

Minishell Flow Minishell Gif

📋

📖 How to use

  • Clone the repository
git clone https://github.com/GitFlaviobc/Minishell
  • to create the minishell
make

or

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

📋

👨‍💻 Tests

  • The makefile is compiling with fsanitize to check for leaks.
  • No special test for this minishell, you can type some of the shell commands.

📋

🆙 Updates

⚠️🚧

📋

😀 Author

Name: Flávio Bonini Campos

Linkedin

📋

About

Minishell: A small Shell with team collaboration: Recreate shell functionality with commands, redirects, pipes, environment variables, signals, and more. Developed with github.com/rafalacerda1530

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published