{"id":15445309,"url":"https://github.com/bgmp/shell","last_synced_at":"2025-10-26T04:03:07.814Z","repository":{"id":161012229,"uuid":"538363048","full_name":"BGMP/Shell","owner":"BGMP","description":"Linux Shell Emulator written in C","archived":false,"fork":false,"pushed_at":"2022-09-19T06:34:30.000Z","size":6,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-02T09:15:33.012Z","etag":null,"topics":["c","cmake","syscalls"],"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/BGMP.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-09-19T06:28:34.000Z","updated_at":"2023-03-31T03:10:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"51d88d59-9cdf-44bc-aa48-680e7a229d03","html_url":"https://github.com/BGMP/Shell","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"c84ecebec45a29eb779872c757441b27a03cbbae"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BGMP","download_url":"https://codeload.github.com/BGMP/Shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245993700,"owners_count":20706622,"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":["c","cmake","syscalls"],"created_at":"2024-10-01T19:44:37.110Z","updated_at":"2025-10-26T04:03:07.737Z","avatar_url":"https://github.com/BGMP.png","language":"C","readme":"Shell\n===\nLinux Shell emulator written in C.\n\nThis program allows for the execution of Linux system calls via commands. The implementation is as simple as it can get, \nwrapping all input into a series of arguments to then interpret and work upon. Error handling is also exaggerated to\nillustrate the practical applications of errno.\n\n### Compilation\nIn order to compile, run the build script found at this project's root:\n```\nchmod +x build.sh\n./build.sh\n```\nThe script will create a directory within the project root called `build/`, and within it, you'll find the binary\n'Shell'.\n\nTo compile manually:\n```\ncc src/main.c -I include/ -o Shell\n```\nThe binary will also be called 'Shell'.\n\n### Running\nTo run the shell, simply execute the `Shell` binary.\n\n```\n./Shell\n```\n\n### Commands\nList of available commands:\n  * `cwd`: Prints out the current directory.\n  * `seconds`: Prints out the amount of seconds elapsed from January 1st, 1970 (EPOCH).\n  * `stats`: Prints out the system uptime, RAM info and current processes.\n  * `ls`: Prints out all files from the current directory.\n  * `mkdir \u003cpath\u003e`: Creates a new directory named 'path'. By default, the directory is generated within the path where \n  the user is located at when executing the command. If 'path' contains more than one directory (a/b/c/dir) the\n  directory 'dir' will be generated within the specified path.\n    * path: Name of the new directory.\n  * `cd \u003cpath\u003e`: Moves the user into directory 'path'.\n    * path: Name of the path where the user wants to move into.\n  * `exit`: Terminate the program.\n\n#### Special commands\n  * `MAKEITGOOD`: Enables a mode where the Shell prints out with randomly coloured text. In order to disable this, simply\n  run this command for a second time.\n  * `JOKER`: Enables a mode where the Shell prints out with randomly coloured background. In order to disable this,\n  simply run this command for a second time.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgmp%2Fshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgmp%2Fshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgmp%2Fshell/lists"}