{"id":22942003,"url":"https://github.com/lilien86/minishell","last_synced_at":"2026-05-07T05:34:55.645Z","repository":{"id":227816854,"uuid":"771984329","full_name":"Lilien86/Minishell","owner":"Lilien86","description":"Minishell is a basic Unix shell for executing commands and managing processes 🖥️","archived":false,"fork":false,"pushed_at":"2024-06-18T22:06:25.000Z","size":1242,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T20:16:54.400Z","etag":null,"topics":["42","executing","linux","minishell","unix-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/Lilien86.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":"2024-03-14T10:11:36.000Z","updated_at":"2024-07-09T11:22:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"394c9488-9447-45e9-a485-9ba1c02f1bf7","html_url":"https://github.com/Lilien86/Minishell","commit_stats":null,"previous_names":["lilien86/42-minishell","lilien86/minishell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilien86%2FMinishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilien86%2FMinishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilien86%2FMinishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lilien86%2FMinishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lilien86","download_url":"https://codeload.github.com/Lilien86/Minishell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239535190,"owners_count":19654995,"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","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":["42","executing","linux","minishell","unix-shell"],"created_at":"2024-12-14T13:46:19.567Z","updated_at":"2026-05-07T05:34:55.605Z","avatar_url":"https://github.com/Lilien86.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🖳 Minishell \n\n🌐[My Twitter account](https://x.com/Lilien_RIG)\n\n\nThe Minishell project is about building a simplified [Unix shell](https://en.wikipedia.org/wiki/Unix_shell#:~:text=A%20Unix%20shell%20is%20a,the%20system%20using%20shell%20scripts.), focusing on basic command execution, process management, and input/output handling to simulate core shell functionalities in a minimalistic style. 🚀\n\n![Untitled](https://github.com/Lilien86/42-minishell/assets/125573483/247b1202-2b1b-4793-b0f5-031d8fd2cef7)\n\n## How to use it :\n#### (Works only on Mac or Linux) ⚠️\n\n```bash\n# Clone the repository\ngit clone https://github.com/Lilien86/42-minishell.git\n\n# Navigate to the project directory\ncd minishell\n\n# Build the project using Make\nmake\n\n# Run minishell and enjoy (:\n./minishell\n```\n## Features 🌟\n- Executes commands from an absolute, relative, or environment PATH like `/bin/ls` or `ls`.\n- Supports single and double quotes.\n- Redirections and pipes (`\u003e`, `\u003e\u003e`, `\u003c\u003c`, `\u003c`, `|`).\n- Handles environment variables (`$HOME`) and the return code (`$?`).\n- Ctrl-C, Ctrl-\\, and Ctrl-D are implemented to handle interrupts and exits.\n- Built-in functions: `echo`, `pwd`, `cd`, `env`, `export`, `unset`, and `exit`.\n- Using all commands of the original shell.\n\n## Sources\n- [Minishell: Building a mini-bash](https://m4nnb3ll.medium.com/minishell-building-a-mini-bash-a-42-project-b55a10598218)\n- [What is the Pipe is C](https://www.codequoi.com/en/pipe-an-inter-process-communication-method/)\n- [Handling files descriptors](https://www.codequoi.com/en/handling-a-file-by-its-descriptor-in-c/)\n- [Understanding signals](https://medium.com/@razika28/signals-ad83f38f80b6)\n## Credits\n#### This project was made with [Yvann](https://x.com/yvann_mp4) in 3 months at [42 School](https://en.wikipedia.org/wiki/42_(school)).\n- I was responsible for the execution, redirection, multi pipes, here doc, and handleing files descriptor.\n- Yvann took care of the parsing, tokenise, signals and builtins.\n\n#### You can find the subject publish on thsi web site\n- [Subject](https://yannick.eu/content/files/2023/07/en.subject.minishell.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilien86%2Fminishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilien86%2Fminishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilien86%2Fminishell/lists"}