{"id":17948607,"url":"https://github.com/debrunbaix/shellbrunbaix","last_synced_at":"2026-05-01T13:32:37.051Z","repository":{"id":259726943,"uuid":"878895693","full_name":"debrunbaix/shellbrunbaix","owner":"debrunbaix","description":"Shell written in C to validate my C skills. ","archived":false,"fork":false,"pushed_at":"2024-10-29T08:38:25.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T15:32:02.786Z","etag":null,"topics":["c","shell"],"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/debrunbaix.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":"2024-10-26T12:06:04.000Z","updated_at":"2024-10-29T08:38:29.000Z","dependencies_parsed_at":"2025-05-03T21:45:07.386Z","dependency_job_id":null,"html_url":"https://github.com/debrunbaix/shellbrunbaix","commit_stats":null,"previous_names":["debrunbaix/shellbrunbaix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/debrunbaix/shellbrunbaix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debrunbaix%2Fshellbrunbaix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debrunbaix%2Fshellbrunbaix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debrunbaix%2Fshellbrunbaix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debrunbaix%2Fshellbrunbaix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debrunbaix","download_url":"https://codeload.github.com/debrunbaix/shellbrunbaix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debrunbaix%2Fshellbrunbaix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32499681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["c","shell"],"created_at":"2024-10-29T09:07:42.300Z","updated_at":"2026-05-01T13:32:36.615Z","avatar_url":"https://github.com/debrunbaix.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShellBrunbaix\n\n## Description 📜\n\nShellBrunbaix is a basic shell written in C that reads user input, tokenizes the input, and executes commands. It mimics some basic functionalities of standard Unix shells by allowing users to execute external commands like `ls`, `pwd`, `echo`, etc., and includes the ability to exit the shell with the `exit` command and to change directory with the `cd` command.\n\n### Features ⚙️\n\n- Reads and processes user commands.\n- Tokenizes the input into command and arguments.\n- Uses `fork` and `execvp` to execute external commands in child processes.\n- Handles simple error cases and displays appropriate messages.\n- Allows exiting the shell with the `exit` command.\n- Allows to change directory with `cd`.\n- Prompt change based on the `username` \u0026 the `current directory`.\n\n### Future Improvements 🔄\n\nHere are some features that could be added to enhance the functionality of ShellBrunbaix:\n\n- **Input/Output Redirection**: Allow users to redirect the output of commands using `\u003e` or `\u003c`.\n- **Pipe Handling**: Implement support for piping (`|`) between commands.\n- **Command History**: Keep track of previously entered commands and allow the user to access them.\n- **Autocomplete**: Add support for tab-completion of commands and file paths.\n\n### File Structure 📂\n\n```bash\n├── include\n│   └── shell.h\n├── LICENSE\n├── Makefile\n├── README.md\n└── src\n    ├── config.c\n    ├── executor.c\n    ├── intern.c\n    ├── main.c\n    └── parser.c\n```\n\n## Compilation and Execution 🛠️\n\nTo compile and run the ShellBrunbaix, follow these steps:\n\n1. **Clone the Repository** (if hosted on GitHub):\n\n    ```bash\n    git clone https://github.com/your-username/shellbrunbaix.git\n    cd shellbrunbaix\n    ```\n\n2. **Compile the Source Code**:\n\n    The project uses a `Makefile` to simplify the compilation process. Simply run:\n\n    ```bash\n    make\n    ```\n\n    This will generate an executable named `shellbrunbaix`.\n\n3. **Run the Shell**:\n\n    To start the shell, run:\n\n    ```bash\n    ./shellbrunbaix\n    ```\n\n    You will see a custom prompt (`/\u003e`) where you can enter commands.\n\n4. **Use the Shell**:\n\n    - Enter commands like `ls`, `pwd`, or `echo Hello`.\n    - Type `exit` to close the shell.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebrunbaix%2Fshellbrunbaix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebrunbaix%2Fshellbrunbaix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebrunbaix%2Fshellbrunbaix/lists"}