{"id":25638650,"url":"https://github.com/stenwire/unix_shell_clone","last_synced_at":"2026-06-24T09:33:29.183Z","repository":{"id":108320250,"uuid":"489072886","full_name":"stenwire/unix_shell_clone","owner":"stenwire","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-23T13:30:44.000Z","size":641,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-06-24T09:33:20.743Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/stenwire.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-05T17:48:20.000Z","updated_at":"2023-09-23T13:28:29.000Z","dependencies_parsed_at":"2025-02-23T02:33:29.300Z","dependency_job_id":"d3a2fd1b-6429-4965-995b-8e5617ca1b5f","html_url":"https://github.com/stenwire/unix_shell_clone","commit_stats":null,"previous_names":["stenwire/unix_shell_clone"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/stenwire/unix_shell_clone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stenwire%2Funix_shell_clone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stenwire%2Funix_shell_clone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stenwire%2Funix_shell_clone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stenwire%2Funix_shell_clone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stenwire","download_url":"https://codeload.github.com/stenwire/unix_shell_clone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stenwire%2Funix_shell_clone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34724746,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"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":[],"created_at":"2025-02-23T02:31:56.335Z","updated_at":"2026-06-24T09:33:29.175Z","avatar_url":"https://github.com/stenwire.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- ![shell image](./media/linux.png) --\u003e\n\n\u003cimg width=100px, height=100px src=\"./media/shell2.jpg\"\u003e \u003ch1\u003eAn Implementation of a Unix Shell\u003c/h1\u003e\n\n\u003cimg width=100%, height=500px src=\"./media/shell.jpeg\"\u003e\n\n\u003cbr\u003e\n\n## Goal of Project\nTh goal of this project is to implement a simple Unix shell -- What is a Unix shell? A Unix shell is a command-line interpreter or shell that provides a command-line user interface for Unix-like operating systems.  The shell is both an interactive command language and a scripting language and is used by the operating system to control the execution of the system using shell scripts.\nUsers typically interact with a Unix shell using a terminal emulator; however, direct operation via serial hardware connections or Secure Shell is common for server systems.  All Unix shells provide filename wildcarding, piping, here documents, command substitution, variables, and control structures for condition-testing and iteration.[source: Wikipedia]\n\n\u003cbr\u003e\n\n## Navigate README\n* [Content of Repo](#navigate-repo)\n* [General Information](#goal-of-project)\n* [Technologies Used](#technologies-used)\n* [Features](#features)\n* [Setup](#how-to-setup)\n* [Usage](#example-of-usage)\n* [Author](#authors)\n* [License](#license-\u0026\u0026-contribution)\n\n\u003cbr\u003e\n\n## Navigate Repo\n\n* [Man Page](https://github.com/stenwire/simple_shell/blob/master/man_1_simple_shell.man)\n* [Checkout shell/linux memes](https://github.com/stenwire/simple_shell/tree/master/media/memes)\n* [Header file](https://github.com/stenwire/simple_shell/blob/master/shell.h)\n* [New environment file](https://github.com/stenwire/simple_shell/blob/master/new_environment.c)\n* [File containing string functions](https://github.com/stenwire/simple_shell/blob/master/string_functions.c)\n* \n\u003cbr\u003e\n\n## Features\n\nFrom the project instruction, we were asked to replicate some builtins you woul find in a normal unix shell, along with that we were also tasked with some features of the normal unix shell. Some of these builtins and features we weere able to replicate are highlighted in the table below and vice versa.\n\n\u003cbr\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth scope=\"col\"\u003eFeatures\u003c/th\u003e\n    \u003cth scope=\"col\"\u003eImplemented\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e1\u003c/td\u003e\n    \u003ctd\u003ehandles command line arguments\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e2\u003c/td\u003e\n    \u003ctd\u003eimplements builtins\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e3\u003c/td\u003e\n    \u003ctd\u003euses the PATH\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e4\u003c/td\u003e\n    \u003ctd\u003euses exit status\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e5\u003c/td\u003e\n    \u003ctd\u003eshell continues upon Crtl+C (^C)\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e6\u003c/td\u003e\n    \u003ctd\u003ecustom strtok function\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e7\u003c/td\u003e\n    \u003ctd\u003ehandles comments (#)\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e8\u003c/td\u003e\n    \u003ctd\u003ehandles \";\"\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\n\n\u003cbr\u003e\n  \n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth scope=\"col\"\u003eBUILTINS\u003c/th\u003e\n    \u003cth scope=\"col\"\u003eImplemented\u003c/th\u003e\n  \u003c/tr\u003e\n\n  \u003ctr\u003e\n    \u003ctd\u003e1\u003c/td\u003e\n    \u003ctd\u003eexit\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n\n  \u003ctr\u003e\n    \u003ctd\u003e2\u003c/td\u003e\n    \u003ctd\u003eenv\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n    \n  \u003ctr\u003e\n    \u003ctd\u003e3\u003c/td\u003e\n    \u003ctd\u003esetenv\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e4\u003c/td\u003e\n    \u003ctd\u003eunsetenv\u003c/td\u003e\n    \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n  \u003ctd\u003e5\u003c/td\u003e\n  \u003ctd\u003ehelp\u003c/td\u003e\n  \u003ctd\u003eYES\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\n\n\u003cbr\u003e\n\n## Example of usage\n\n\u003cimg src=\"./media/shell_gif.gif\" alt=\"Gif showing usage\"\u003e\n\n\u003cbr\u003e\n\n## How to Setup\n\n```\n-----\u003e Requirement\n* Any Ubuntu distribution\n* GCC installed (gcc 9.3.0)\n-----\u003e\n```\n\nFollow below steps to setup locally:\n* clone repo: ```git clone https://github.com/stenwire/simple_shell.git```\n* change into repo: ```cd simple_shell```\n* verify all files\n* Compile: ```gcc -Wall -Werror -Wextra -pedantic *.c -o hsh```\n* Run the shell in interactive mode: ```./hsh``` or run the shell in non-interactive mode: ```echo \"\u003cyour command here\u003e\" | ./hsh ```\n\n\u003cbr\u003e\n\n## Authors\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003cth\u003eStephen Nwankwo\u003c/th\u003e\n    \u003cth\u003eHARUNA BERIKISU\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"wwww.github.com/stenwire\"\u003eGithub\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"www.github.com/Becky1810\"\u003eGithub\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://www.linkedin.com/in/stephen-nwankwo-9876b4196/\"\u003eLinkedIn\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"www.github.com/Becky1810\"\u003eNil\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\u003cbr\u003e\n\n## License \u0026\u0026 Contribution\n\nThis project will bee made open source and can be freely contributed to from/after 19-05-2022, please checkout [Contribution guildline](https://github.com/stenwire/simple_shell.git/contributing.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstenwire%2Funix_shell_clone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstenwire%2Funix_shell_clone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstenwire%2Funix_shell_clone/lists"}