Skip to content

Custom shell program 🐚 designed for effective command parsing, process execution, and managing shell environments

Notifications You must be signed in to change notification settings

yvann-ba/MiniShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Minishell 🐚

Minishell is a simplified Bash shell environment capable of parsing commands and launching executables with arguments, plus several built-in functions. πŸš€

⭐ My 42 score for this project:

image

πŸ“„ Official 42 School Subject:

https://github.com/rphlr/42-Subjects/blob/main/common-core/minishell/en.subject.pdf

How to use it :

(Works only on Mac or Linux)

# Clone the repository
git clone https://github.com/yvann-ba/minishell.git

# Navigate to the project directory
cd minishell

# Build the project using Make
make

# Run minishell and enjoy (:
./minishell

Features 🌟

  • Executes commands from an absolute, relative, or environment PATH like /bin/ls or ls.
  • Supports single and double quotes.
  • Redirections and pipes (>, >>, <<, <, |).
  • Handles environment variables ($HOME) and the return code ($?).
  • Ctrl-C, Ctrl-, and Ctrl-D are implemented to handle interrupts and exits.
  • Built-in functions: echo, pwd, cd, env, export, unset, and exit.

Credits

This project was made with Lilien in 3 months at 42 School.

  • I was responsible for the parsing, environment variables, built-in functions, and signal handling.
  • Lilien took care of the execution, heredoc, redirection and piping, input files.

About

Custom shell program 🐚 designed for effective command parsing, process execution, and managing shell environments

Topics

Resources

Stars

Watchers

Forks