{"id":18824229,"url":"https://github.com/cre8stevedev/simple_shell","last_synced_at":"2026-01-20T01:30:16.978Z","repository":{"id":187651404,"uuid":"677314397","full_name":"Cre8steveDev/simple_shell","owner":"Cre8steveDev","description":"Writing a Simple Shell using the C Programming Language. This project is one of the Milestone project in my training as a Full Stack Software Engineer in Alx.","archived":false,"fork":false,"pushed_at":"2023-08-23T08:31:40.000Z","size":203,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T04:27:10.471Z","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/Cre8steveDev.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":"AUTHORS"}},"created_at":"2023-08-11T09:05:08.000Z","updated_at":"2023-08-25T01:30:39.000Z","dependencies_parsed_at":"2024-01-23T11:52:37.577Z","dependency_job_id":null,"html_url":"https://github.com/Cre8steveDev/simple_shell","commit_stats":null,"previous_names":["cr8stevedesign/simple_shell","cre8stevedev/simple_shell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cre8steveDev%2Fsimple_shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cre8steveDev%2Fsimple_shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cre8steveDev%2Fsimple_shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cre8steveDev%2Fsimple_shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cre8steveDev","download_url":"https://codeload.github.com/Cre8steveDev/simple_shell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239761379,"owners_count":19692500,"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":[],"created_at":"2024-11-08T00:55:54.115Z","updated_at":"2026-01-20T01:30:16.925Z","avatar_url":"https://github.com/Cre8steveDev.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ccenter\u003e \u003ch1\u003eALX Simple Shell - Stephen Omoregie\u003c/h1\u003e\u003c/center\u003e\nWriting a Simple Shell using the C Programming Language. This project is one of the Milestone project in my training as a Full Stack Software Engineer in Alx.\n\n## Introduction\n### The Thompson Shell\u003cbr\u003e\n\nIn 1971, the original Unix system debuted with the pioneering Thompson shell, designed by Ken Thompson. This shell wasn't meant for scripting but brought in clever new features to the command-line world. Its influence set the stage for the development of later Unix shells, shaping the way we interact with computers via commands.\n\n## General Objective\nThe major objective of the project was to to help us put together the knowledge we've learnt so far about the C programming languages. With a task to emulate the Thompson shell, we are required to first understand the general concept of how a Shell works.\n\nThe Shell as a command line offers an opportunity for the user to communicate with the computer system using commands. This process of reading the command entered by the user, evaluating and subsequently executing such command, printing the output and repeatedly presenting the user with a prompt is the general architecture of the shell.\n\nThe C programming language offers us access to some system calls and library functions that allow us seamlessly implement some of these functions and thus we are able to create our own shell - though not full-fledged, but very close to that of the Thompson Shell.\n\n## Methodology\n\n\n\n## Allowed Functions\nTo encourage critical thinking and improve our problem-solving skills, we were given some constraints as to what functions/system calls we are allowed to use. We were NOT allowed to use any of the standard library functions like functions in the stdio or string header files.\n\nList of allowed functions and system calls\n- access (man 2 access)\n- chdir (man 2 chdir)\n- close (man 2 close)\n- closedir (man 3 closedir)\n- execve (man 2 execve)\n- exit (man 3 exit)\n- _exit (man 2 _exit)\n- fflush (man 3 fflush)\n- fork (man 2 fork)\n- free (man 3 free)\n- getcwd (man 3 getcwd)\n- getline (man 3 getline)\n- getpid (man 2 getpid)\n- isatty (man 3 isatty)\n- kill (man 2 kill)\n- malloc (man 3 malloc)\n- open (man 2 open)\n- opendir (man 3 opendir)\n- perror (man 3 perror)\n- read (man 2 read)\n- readdir (man 3 readdir)\n- signal (man 2 signal)\n- stat (__xstat) (man 2 stat)\n- lstat (__lxstat) (man 2 lstat)\n- fstat (__fxstat) (man 2 fstat)\n- strtok (man 3 strtok)\n- wait (man 2 wait)\n- waitpid (man 2 waitpid)\n- wait3 (man 2 wait3)\n- wait4 (man 2 wait4)\n- write (man 2 write)\n\n\n## Custom Functions written to Aid My Implementation\n\n\n## AUTHOR - STEPHEN OMOREGIE \u003cbr\u003e\n(ALX Software Engineering Student [August 2023])","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcre8stevedev%2Fsimple_shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcre8stevedev%2Fsimple_shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcre8stevedev%2Fsimple_shell/lists"}