{"id":31074140,"url":"https://github.com/mhmdhussein/42-minishell","last_synced_at":"2026-05-09T05:33:45.020Z","repository":{"id":312695628,"uuid":"1045690577","full_name":"mhmdhussein/42-minishell","owner":"mhmdhussein","description":"A UNIX shell written in C for the 42 school curriculum. Supports command execution, pipes, redirections, environment variables, and built-in commands. Designed to mimic bash behavior while reinforcing knowledge of processes, signals, and file descriptors.","archived":false,"fork":false,"pushed_at":"2025-09-01T11:30:48.000Z","size":46,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-16T02:22:16.744Z","etag":null,"topics":["42","42-project","bash","c","minishell","process-management","shell","system-programming","unix"],"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/mhmdhussein.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-27T15:09:43.000Z","updated_at":"2025-09-03T11:02:06.000Z","dependencies_parsed_at":"2025-09-01T13:26:54.853Z","dependency_job_id":"de37cc64-2e7d-493c-a05e-dd17f73d4f67","html_url":"https://github.com/mhmdhussein/42-minishell","commit_stats":null,"previous_names":["mhmdhussein/42-minishell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mhmdhussein/42-minishell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhmdhussein%2F42-minishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhmdhussein%2F42-minishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhmdhussein%2F42-minishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhmdhussein%2F42-minishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhmdhussein","download_url":"https://codeload.github.com/mhmdhussein/42-minishell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhmdhussein%2F42-minishell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32808490,"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":["42","42-project","bash","c","minishell","process-management","shell","system-programming","unix"],"created_at":"2025-09-16T02:03:38.873Z","updated_at":"2026-05-09T05:33:45.012Z","avatar_url":"https://github.com/mhmdhussein.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minishell: A Bash Shell Implementation\n\n## Overview\n\nThe **Minishell** project is a simplified implementation of a UNIX shell written in C. It replicates basic shell behavior such as executing commands, handling redirections, and managing processes. The project helps understand how shells work under the hood, including parsing, process management, and file descriptors. 🐚⚙️🖥️\n\n## Features\n\n* Command execution with `execve`.\n* Built-in commands:\n\n  * `echo` (with `-n` option)\n  * `cd` (with relative/absolute paths and `~`)\n  * `pwd`\n  * `export`\n  * `unset`\n  * `env`\n  * `exit`\n* Pipes (`|`) for inter-process communication.\n* Input/output redirections (`\u003c`, `\u003e`, `\u003e\u003e`, `\u003c\u003c`).\n* Environment variable expansion (`$VAR`).\n* Signal handling (`Ctrl-C`, `Ctrl-\\`, `Ctrl-D`) similar to bash.\n* Robust error handling and exit codes matching bash behavior.\n\n## Program Details\n\n* **Program Name:** `minishell`\n* **Usage:**\n\n  ```bash\n  ./minishell\n  ```\n* Minishell provides an interactive prompt where users can type commands and see results, just like a regular shell.\n\n## Running the Program\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/MohammadHusssein/42-minishell.git\n   cd 42-minishell\n   ```\n2. Compile the program:\n\n   ```bash\n   make\n   ```\n3. Run the shell:\n\n   ```bash\n   ./minishell\n   ```\n\n## Acknowledgements\nA huge thank you to my partner [Razane Traoui](https://github.com/razanetraoui) for her dedication, teamwork, and countless hours spent debugging and building this project together, couldn’t have done it without you! 🙌👩‍💻👨‍💻\n\n\n## License\n\nThis project is licensed under the [MIT License](https://opensource.org/licenses/MIT). Feel free to use, modify, and distribute with proper attribution. 📜🔓✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhmdhussein%2F42-minishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhmdhussein%2F42-minishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhmdhussein%2F42-minishell/lists"}