{"id":18187827,"url":"https://github.com/0bvim/minishell","last_synced_at":"2025-06-17T09:05:02.939Z","repository":{"id":213189255,"uuid":"733262938","full_name":"0bvim/minishell","owner":"0bvim","description":"This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.","archived":false,"fork":false,"pushed_at":"2024-11-29T13:12:08.000Z","size":4168,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-07T19:03:42.349Z","etag":null,"topics":["42sp","bash","filedescriptor","minishell42"],"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/0bvim.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":"2023-12-18T23:47:44.000Z","updated_at":"2024-11-29T13:12:12.000Z","dependencies_parsed_at":"2024-01-03T00:08:12.852Z","dependency_job_id":"13dc02da-dc2c-45bb-8065-37fdc1969851","html_url":"https://github.com/0bvim/minishell","commit_stats":{"total_commits":355,"total_committers":25,"mean_commits":14.2,"dds":0.6816901408450704,"last_synced_commit":"57735d19085ce18a3530b591d3ff7b56c434a432"},"previous_names":["vinicius-f-pereira/minishell","0xniv/minishell","0bvim/minishell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0bvim/minishell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0bvim%2Fminishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0bvim%2Fminishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0bvim%2Fminishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0bvim%2Fminishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0bvim","download_url":"https://codeload.github.com/0bvim/minishell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0bvim%2Fminishell/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260326669,"owners_count":22992378,"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":["42sp","bash","filedescriptor","minishell42"],"created_at":"2024-11-03T02:03:27.967Z","updated_at":"2025-06-17T09:05:02.890Z","avatar_url":"https://github.com/0bvim.png","language":"C","readme":"![eng](../../../stuff/blob/main/USA-icon.png) [![pt-BR](../../../stuff/blob/main/Brazil-icon.png)](README.pt-BR.md)\n\n# minishell\nThis project is about creating a simple shell.\n\n## Table of Contents\n- [Mandatory](#mandatory-part)\n- [Bonus](#bonus-part)\n- [Download](#download)\n- [License](./LICENSE)\n\n## Mandatory part\nWe need to implement a bash that handle simple commands like\n\n1. redirections\n\t- `output (ls \u003e file)`\n\t- `append (echo Hail \u003e\u003e file)`\n\t- `input (\u003c Makefile cat)`\n\t- `heredoc (cat \u003c\u003c delimiter_to_stop)`\n2. pipes\n\t- `cat Makefile | grep CFLAGS | tr ' ' '#' | wc`\n3. command history\n4. environment variables\n5. signals\n\t- `ctrl-C`\n\t- `ctrl-D`\n\t- `ctrl-\\`\n6. $? (expand to the exit status of the most recently executed foreground pipeline)\n7. builtins\n\t- `echo with option -n`\n\t- `cd with only a relative or absolute path`\n\t- `pwd with no options`\n\t- `export with no options`\n\t- `unset with no options`\n\t- `env with no options or arguments`\n\t- `exit with no options`\n\n### Bonus part\n- Our program has to implement\n\t- `\u0026\u0026 and || with parenthesis for priorities.`\n\t- `Wildcards * should work for the current working directory.`\n\n```bash\n# \u0026\u0026 and || examples\necho Hello \u0026\u0026 echo Bye\nwrong_command || echo right_command\n```\n\n```bash\n# Wildcard example\nls *\ncat *c\n```\n\n## Download\n```ssh\ngit clone git@github.com:vinicius-f-pereira/minishell.git\n```\n\nUse `make` or `make bonus` and follow instructions [`Here`](#mandatory-part)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0bvim%2Fminishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0bvim%2Fminishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0bvim%2Fminishell/lists"}