{"id":19253454,"url":"https://github.com/eschirni/minishell","last_synced_at":"2026-05-01T23:36:07.035Z","repository":{"id":214887099,"uuid":"445908840","full_name":"eschirni/minishell","owner":"eschirni","description":"As beautiful as a shell.","archived":false,"fork":false,"pushed_at":"2022-03-03T17:29:03.000Z","size":383,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-05T07:15:46.008Z","etag":null,"topics":["42","42heilbronn","bash","c","fork","minishell","readline","reinventing-the-wheel","shell","unix","unix-signals"],"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/eschirni.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}},"created_at":"2022-01-08T19:22:24.000Z","updated_at":"2022-04-05T15:52:35.000Z","dependencies_parsed_at":"2023-12-31T18:45:17.322Z","dependency_job_id":null,"html_url":"https://github.com/eschirni/minishell","commit_stats":null,"previous_names":["eschirni/minishell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eschirni%2Fminishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eschirni%2Fminishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eschirni%2Fminishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eschirni%2Fminishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eschirni","download_url":"https://codeload.github.com/eschirni/minishell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240347981,"owners_count":19787237,"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","42heilbronn","bash","c","fork","minishell","readline","reinventing-the-wheel","shell","unix","unix-signals"],"created_at":"2024-11-09T18:31:07.084Z","updated_at":"2026-05-01T23:36:07.009Z","avatar_url":"https://github.com/eschirni.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minishell - As beautiful as a shell\n## [@eschirni](https://github.com/eschirni) and [@tzeck](https://github.com/tzeck1)\u003cbr\u003e\n\u003cimg width=\"225\" alt=\"Screenshot 2022-02-28 at 3 29 02 PM\" src=\"https://user-images.githubusercontent.com/65648486/156000211-bfae73ac-9cb0-4d34-a87e-a539b32f5b10.png\"\u003e\n\n## Description of the subject\nThanks to Minishell, you’ll be able to travel through time and come back to problems\npeople faced when Windows didn’t exist. \u003cbr\u003e \u003cbr\u003e\nWe have restrictions which functions we're allowed to use (see [subject pdf](https://github.com/tzeck1/minishell/files/8154030/minishell.pdf)). In addition we have to format our code according to the schools [Norm](https://github.com/tzeck1/minishell/files/8154641/norm.pdf)\n#### **Full subject:** [minishell.pdf](https://github.com/tzeck1/minishell/files/8154030/minishell.pdf) \u003cbr\u003e\n\n## Installation\n1. You might have to install the readline libary with `brew install readline` \u003cbr\u003e\n2. To create the execuatable run `make` \u003cbr\u003e\n3. To start the programm: `./minishell`\n\n## What we've implemented\n**-Own functions:**\ncd, pwd, env, exit, unset, export, echo (all other bash commands are implemented with execv)\u003cbr\u003e\n**-A working history:**\narrow key up/down \u003cbr\u003e\n**-Single and double Quotes** \u003cbr\u003e\n**-Redirections:**\n\u003c (input), \u003e (trunc), \u003e\u003e (append) and \u003c\u003c (heredoc) \u003cbr\u003e\n**-Pipes:**\nsingle and multible pipe(s), combination with redirections possible \u003cbr\u003e\n**-Environment Variables** \u003cbr\u003e \n**-Signals:**\nctrl-C, ctrl-D and ctrl-\\ \u003cbr\u003e\n\n## Structure\n**1. Lexer:** tokenization of the input string e.g. \"CMD, ARGUMENT, PIPE, CMD, ARGUMENT, TRUNC, FILE\" \u003cbr\u003e\n**2. Parser:** filtering parser errors and quotes, redirects output for pipes and redirections, etc. \u003cbr\u003e\n**3. Executor:** executes commands with arguments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feschirni%2Fminishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feschirni%2Fminishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feschirni%2Fminishell/lists"}