{"id":20173435,"url":"https://github.com/abdellahbellakrim/minishell_42","last_synced_at":"2026-05-08T06:04:59.666Z","repository":{"id":208674599,"uuid":"496309722","full_name":"AbdellahBellakrim/minishell_42","owner":"AbdellahBellakrim","description":"Simple shell program written in C","archived":false,"fork":false,"pushed_at":"2023-11-22T17:18:16.000Z","size":2217,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T16:14:46.585Z","etag":null,"topics":["algorithms","bash","c","data-structures","low-level-programming","parsing","shell","unix"],"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/AbdellahBellakrim.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}},"created_at":"2022-05-25T16:29:53.000Z","updated_at":"2024-04-25T18:24:34.000Z","dependencies_parsed_at":"2023-11-22T18:30:34.522Z","dependency_job_id":"72568b92-3859-4080-aa35-5a22902d3816","html_url":"https://github.com/AbdellahBellakrim/minishell_42","commit_stats":null,"previous_names":["abdellahbellakrim/minishell_42"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdellahBellakrim%2Fminishell_42","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdellahBellakrim%2Fminishell_42/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdellahBellakrim%2Fminishell_42/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdellahBellakrim%2Fminishell_42/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbdellahBellakrim","download_url":"https://codeload.github.com/AbdellahBellakrim/minishell_42/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241610978,"owners_count":19990505,"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":["algorithms","bash","c","data-structures","low-level-programming","parsing","shell","unix"],"created_at":"2024-11-14T01:36:09.363Z","updated_at":"2026-05-08T06:04:59.595Z","avatar_url":"https://github.com/AbdellahBellakrim.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minishell\n\nMinishell is a simple shell program written in C. It provides a command-line interface that allows users to interact with their computer through a series of commands. This project aims to replicate the functionality of a basic shell, similar to Bash, and provides a set of features and functionalities that allow users to execute commands, handle processes, and perform various operations on files and directories.\n\n## Features\n\n- **Prompt**: Minishell displays a prompt when waiting for a new command, indicating that it is ready to accept user input.\n- **Command Execution**: The shell searches for and launches the appropriate executable based on the PATH variable, or using a relative or absolute path.\n- **History**: Minishell maintains a working history of previously executed commands, allowing users to navigate and recall previous commands.\n- **Quotes Handling**: The shell interprets and handles single quotes ('), preventing the interpretation of metacharacters within the quoted sequence. Double quotes (\") prevent interpretation of metacharacters, except for the dollar sign ($).\n- **Redirections**: Minishell supports input (\u003c) and output (\u003e) redirection, allowing users to redirect the input or output of a command to/from a file. Append mode (\u003e\u003e) for output redirection is also supported. Here documents (\u003c\u003c) can be used to read input until a specified delimiter is encountered.\n- **Pipes**: The shell supports pipes (|) to connect the output of one command as the input of another command in a pipeline.\n- **Environment Variables**: Minishell handles environment variables ($ followed by a sequence of characters) and expands them to their corresponding values.\n- **Built-in Commands**: The shell implements several built-in commands, including echo, cd, pwd, export, unset, env, and exit.\n- **Signal Handling**: Minishell handles signals such as ctrl-C, ctrl-D, and ctrl-\\ in an interactive mode, providing behavior similar to Bash.\n\n## Bonus Features\n\nIn addition to the mandatory requirements, the Minishell project includes the following bonus features:\n\n- **Logical Operators**: The shell supports logical operators (\u0026\u0026 and ||) with parentheses for priorities.\n- **Wildcard Expansion**: Minishell implements wildcard (*) functionality for the current working directory.\n\nPlease note that the bonus part will only be evaluated if the mandatory part is implemented perfectly.\n\n## Getting Started\n\nTo compile and run Minishell, follow these steps:\n\n1. Clone the repository: `git clone \u003crepository-url\u003e`\n2. Navigate to the project directory: `cd Minishell`\n3. Compile the source code: `make`\n4. Run Minishell: `./minishell`\n\n## Acknowledgments\n\nThis project was completed as part of a programming assignment and is based on the requirements provided in the project description.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdellahbellakrim%2Fminishell_42","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdellahbellakrim%2Fminishell_42","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdellahbellakrim%2Fminishell_42/lists"}