{"id":22211421,"url":"https://github.com/almayor/minishell","last_synced_at":"2026-05-17T03:45:45.761Z","repository":{"id":113056932,"uuid":"294998739","full_name":"almayor/minishell","owner":"almayor","description":"A personal implementation of a minimal Linux shell","archived":false,"fork":false,"pushed_at":"2020-09-27T05:20:15.000Z","size":2665,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T05:43:58.486Z","etag":null,"topics":["21school","42","42school","linux","minishell"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/almayor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-12T18:03:20.000Z","updated_at":"2020-09-27T05:20:17.000Z","dependencies_parsed_at":"2023-03-17T18:45:40.967Z","dependency_job_id":null,"html_url":"https://github.com/almayor/minishell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/almayor/minishell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almayor%2Fminishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almayor%2Fminishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almayor%2Fminishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almayor%2Fminishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/almayor","download_url":"https://codeload.github.com/almayor/minishell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almayor%2Fminishell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270968746,"owners_count":24677166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["21school","42","42school","linux","minishell"],"created_at":"2024-12-02T20:31:39.333Z","updated_at":"2025-10-29T22:36:31.593Z","avatar_url":"https://github.com/almayor.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minishell\n\n*This project is part of the official curriculum at [School 42](https://en.wikipedia.org/wiki/42_(school)).*\n\n## Disclaimer\n\n\u003e In [School 42](https://en.wikipedia.org/wiki/42_(school)), almost every project must be written to comply with a coding standard (also known as the \"[Norm](./docs/subjects/norme.en.pdf)\"). As a result, the implementation of certain parts may appear strange.\n\n\n## Overview\n\n* [Official instructions](docs/subjects/minishell.en.pdf)\n* A personal implementation of a Linux shell with minimal functionality\n\t* builtins: `cd`, `env`, `setenv`, `unsetenv`, `echo`, `exit`\n\t* separation of commands with `;`\n\t* management of `SIGINT` and `SIGTERM`\n\t* an informative user prompt\n* Only the following functions are allowed\n\t* `malloc`, `free`\n\t* `access`\n\t* `open`, `close`, `read`, `write`\n\t* `opendir`, `readdir`, `closedir`\n\t* `getcwd`, `chdir`\n\t* `stat`, `lstat`, `fstat`\n\t* `fork`, `execve`\n\t* `wait`, `waitpid`, `wait3`, `wait4`\n\t* `signal`, `kill`\n\n## Run\n\nTo compile, run\n\n```sh\ngit clone https://github.com/almayor/minishell\ncd minishell\ngit submodule --init --recursive\nmake\n```\nYou can run unit tests with `make test`\n\n## Resources\n\n* \u003chttps://brennan.io/2015/01/16/write-a-shell-in-c/\u003e\n\n## Acknowledgements\n\nWe are grateful to the entire team behind School 42 and its [Moscow branch](https://21-school.ru\n), as well as to my fellow students for help and support.\n\n---\nIf you have any questions, please contact me on Github.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falmayor%2Fminishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falmayor%2Fminishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falmayor%2Fminishell/lists"}