Skip to content
This repository has been archived by the owner on Oct 8, 2024. It is now read-only.
/ 42sh Public archive

42sh is an Epitech project where you have to recreate from scratch a terminal based on tcsh.

Notifications You must be signed in to change notification settings

capuchegianni/42sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project logo

42sh - Shell Programming


42sh is one of the three big projects ending the 1st year at Epitech. It follows the Minishell 1 and 2 that were introducing us to the baiscs of a shell.

📝 Table of Contents

🧐 About

From 7 may 2023 to 11 may 2023

The goal of this project was to recreate a terminal in C based on tcsh. Unlike previous Epitech projects, we were authorized to use the whole libc which allowed us to discover a plurality of new functions that we never heard of before or even other assiociated libs as termios.h in our project.

💻 Features

We achieved to implement a lot of features in this project:

  • The basics:
    • Command execution
    • Error handling
    • Return values
    • Separators (; && ||)
    • Redirections (only > and >>)
  • The builtins:
    • Setenv
    • Unsetenv
    • Cd
    • Echo (our school wanted us to redo the command we don't know why)
    • Alias
    • Unalias
    • History
    • Exit
  • Some add-ons:
    • Being able to navigate through the string with the left and right arrows
    • display the last command used with the up arrow, same on the other way with the down arrow
    • autocomplete the command when pressing tab and the string is not empty
    • display the current folder files when pressing tab
    • A personnalized prompt

➕ To be added

  • We still need to improve our shell with these few things:
    • Pipes
    • Left redirections (< and <<)
    • Globbings (*, ? or !)
    • Improve our inhibitors (only detect basic characters as \n or \t for example)
    • Local variables

🤖 Tester

In the repository you can find a tests folder that will help you testing your project. This is the tester given by Epitech but with more tests availables. I also changed the tester.sh file to be more efficient but I'm not the best with scripting so do not hesitate to make it further!

📆 Conclusion

This project was pretty fun to do, even if we were only three to work on it (instead of 4 or 5 persons). We got 52.8% at our final test with a crash but I already fixed them all. If you have any question about this project do not hesitate to contact me through my github account!

✍️ Authors

About

42sh is an Epitech project where you have to recreate from scratch a terminal based on tcsh.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published