{"id":17686036,"url":"https://github.com/ombhd/minishell_42","last_synced_at":"2026-05-09T04:33:32.149Z","repository":{"id":129306623,"uuid":"320269826","full_name":"ombhd/minishell_42","owner":"ombhd","description":"Simple shell that behaves like bash","archived":false,"fork":false,"pushed_at":"2021-06-29T16:14:02.000Z","size":1312,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T20:30:06.358Z","etag":null,"topics":["1337school","42born2code","bash","shell"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ombhd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-12-10T12:45:08.000Z","updated_at":"2022-06-09T13:08:04.000Z","dependencies_parsed_at":"2023-07-28T05:30:37.546Z","dependency_job_id":null,"html_url":"https://github.com/ombhd/minishell_42","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ombhd/minishell_42","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombhd%2Fminishell_42","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombhd%2Fminishell_42/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombhd%2Fminishell_42/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombhd%2Fminishell_42/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ombhd","download_url":"https://codeload.github.com/ombhd/minishell_42/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombhd%2Fminishell_42/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["1337school","42born2code","bash","shell"],"created_at":"2024-10-24T10:29:44.961Z","updated_at":"2026-05-09T04:33:32.126Z","avatar_url":"https://github.com/ombhd.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minishell_42\n## Contributors\n\n - Omar BOUYKOURNE \u0026nbsp;\u0026nbsp;@su-omb \u0026nbsp;\t:   42login =\u003e `obouykou`\n - Yassin SLATI \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;@sltyassin\u0026nbsp;\u0026nbsp;: \t42login =\u003e `yslati`\n\n## Subject\n\n[minishell_subject](https://github.com/su-omb/minishell42/blob/main/en.subject.pdf)\n\n## How to use?\n\n 1.  `make`  \n 2.  `./minishell`\n 3.  Run your commands\n\n## Simple shell that behaves like bash and contains these commands built-in :\n\n 1.  `echo` with option `-n`.   \n 2.  `cd` with only a relative or absolute path.\n 3.  `pwd` without any options.\n 4.  `export` without any options.\n 5.  `unset` without any options.\n 6.  `env` without any options and any arguments.\n 7.  `exit` without any options.\n\n## and works with these delimiters :\n\n - Semicolon `;` in the command separates commands like in bash.\n -  Single quotes `'` and double quotes `\"` work like in bash except for multiline commands.\n - Redirections `\u003c` `\u003e` `\u003e\u003e` work like in bash except for file descriptor aggregation.\n - Pipes `|` work like in bash.\n - Backslash `\\` works like in bash.\n - Environment variables (`$` followed by characters) work like in bash.\n - `$?` works like in bash.\n - `ctrl-C`, `ctrl-D` and `ctrl-\\` have the same result as in bash.\n\n## Some Sources :\n\n - [Unix Processes in C](https://www.youtube.com/watch?v=cex9XrZCU14\u0026list=PLfqABt5AS4FkW5mOn2Tn9ZZLLDwA3kZUY)\n - [Writing your own shell fundamentals](https://www.cs.purdue.edu/homes/grr/SystemsProgrammingBook/Book/Chapter5-WritingYourOwnShell.pdf)\n - [Shell System Calls Signals](https://cdn.discordapp.com/attachments/769898609562746880/776363294013128734/Shells_SystemCalls_Signals.ppt)\n - [How does copy-on-write work in fork?](https://stackoverflow.com/questions/27161412/how-does-copy-on-write-work-in-fork?rq=1)\n - [ Building a Bash-like application](https://medium.com/@ssreehari/building-a-bash-like-application-e17122609be4)\n - [ execve() linux man](https://linux.die.net/man/2/execve)\n - [exit command status](https://www.cyberciti.biz/faq/linux-bash-exit-status-set-exit-statusin-bash/)\n\n\n## NB:\n\n - Please, if you have other useful sources, you can post them in an issue here in GitHub, thanks in advance.\n - Maybe you will find some special cases that doesn't work, please post an issue if there are any.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fombhd%2Fminishell_42","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fombhd%2Fminishell_42","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fombhd%2Fminishell_42/lists"}