Skip to content

thlibers/minishell

Repository files navigation

This project has been created as part of the 42 curriculum by nclavel, thlibers

STILL IN BUILD

Description:

Minishell is a shell coded in C. To do this project we have reused the project called pipex done earlier on the 42 curriculum.

A shell is a CommandLine user Interface (CLI) that bridges between the user and the system by interpreting the command typed by the user in his terminal. A lot of different shells are available, like sh, bash, zsh, fish and many more.

This project deepened our understanding of how UNIX systems work and how a program can parse and process a command string to execute what the user wants to do.

Instruction:

  1. Build the project using make
make
# OR 
make minishell
  1. Launch the shell
./minishell
  • Remove every compilation object file
make clean
  • Remove every compilation object file and remove the compiled file
make fclean
  • Remove every compilation object file, remove the compiled file and rebuild the project
make re

Available features:

  • Use minishell on a non tty mode (partial support)
  • Fully fonctional piping system
  • Fully functional history
  • Fully fonctional builtin
  • Complete expand token
  • File redirection
  • Heredoc support
  • Condition priority
  • Wildcard expand

Technical choice

A lexer (also called a tokenizer) reads raw text one character at a time and splits it into meaningful pieces called tokens. After the user types a command line, the lexer processes that input and produces tokens labeled with their exact types (see the list of operators in the "Available features" section) .


An Abstract Syntax Tree (AST) is a tree-shaped data structure used to represent commands for execution. It has a top node called a root, intermediate nodes called branches (subnodes), and leaf nodes where data are stored.


Example:



Ressources used:


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors