This project is part of the official curriculum at School 42.
In School 42, almost every project must be written to comply with a coding standard (also known as the "Norm"). As a result, the implementation of certain parts may appear strange.
- Official instructions
- A personal implementation of a Linux shell with minimal functionality
- builtins:
cd
,env
,setenv
,unsetenv
,echo
,exit
- separation of commands with
;
- management of
SIGINT
andSIGTERM
- an informative user prompt
- builtins:
- Only the following functions are allowed
malloc
,free
access
open
,close
,read
,write
opendir
,readdir
,closedir
getcwd
,chdir
stat
,lstat
,fstat
fork
,execve
wait
,waitpid
,wait3
,wait4
signal
,kill
To compile, run
git clone https://github.com/almayor/minishell
cd minishell
git submodule --init --recursive
make
You can run unit tests with make test
We are grateful to the entire team behind School 42 and its Moscow branch, as well as to my fellow students for help and support.
If you have any questions, please contact me on Github.