almayor / minishell

A personal implementation of a minimal Linux shell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

minishell

This project is part of the official curriculum at School 42.

Disclaimer

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.

Overview

  • 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 and SIGTERM
    • an informative user prompt
  • 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

Run

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

Resources

Acknowledgements

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.

About

A personal implementation of a minimal Linux shell

License:MIT License


Languages

Language:C 81.3%Language:Python 12.1%Language:Makefile 6.6%