Skip to content

The goal of this project is to create a simple shell. Will be your own little bash or zsh. You are going to learn a lot about processes and file descriptors.

Notifications You must be signed in to change notification settings

mbani01/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minishell

The goal of this project is to create a simple shell. Will be your own little bash or zsh. You are going to learn a lot about processes and file descriptors.

Available options

Minishell runs executables from an absolute, relative or environment PATH (/bin/ls or ls), including arguments or options. ', \ and " work the same as bash, except for multiline commands.

You can separate commands with ;, as well as use redirections > >> < and pipes |.

Environment variables are handled, like $HOME, including the return code $?.

Finally, you can use Ctrl-C to interrupt and Ctrl-\ to quit a program, as well as Ctrl-D to throw an EOF, same as in bash.

A few of the functions are "built-in", meaning we don't call the executable, we re-coded them directly. It's the case for echo, pwd, cd, env, export, unset and exit.

Allowed Functions

How To Use

Deployment

git clone https://github.com/mbani01/minishell.git
make && ./minishell

Back To The Top

Credit

This two-person project was done with mamoussa.

I was responsible for the lexing, parsing, argument checking, and environment variables.

Mamoussa took care of the execution, built-in functions, signal handling ,redirection and piping .

About

The goal of this project is to create a simple shell. Will be your own little bash or zsh. You are going to learn a lot about processes and file descriptors.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published