{"id":15003582,"url":"https://github.com/nihadamirov/holbertonschool-simple_shell","last_synced_at":"2026-03-09T18:04:49.939Z","repository":{"id":235977097,"uuid":"791651852","full_name":"nihadamirov/holbertonschool-simple_shell","owner":"nihadamirov","description":"Through the Simple Shell you will get to the core of the Unix system and explore an important part of this system’s API which is the process creation and synchronization. Executing a command inside a shell implies creating a new process, which execution and final state will be monitored by its parents processes.","archived":false,"fork":false,"pushed_at":"2024-07-19T19:12:47.000Z","size":91,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T04:41:25.842Z","etag":null,"topics":["c-programming-language","linux","linux-kernel","unix","unix-shell"],"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/nihadamirov.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","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-25T05:39:08.000Z","updated_at":"2024-07-19T19:16:09.000Z","dependencies_parsed_at":"2024-05-08T17:12:20.054Z","dependency_job_id":"6cc7b313-ea6e-4b7e-b5ec-674c1195ae75","html_url":"https://github.com/nihadamirov/holbertonschool-simple_shell","commit_stats":null,"previous_names":["nihadamirov/holbertonschool-simple_shell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nihadamirov/holbertonschool-simple_shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2Fholbertonschool-simple_shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2Fholbertonschool-simple_shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2Fholbertonschool-simple_shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2Fholbertonschool-simple_shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nihadamirov","download_url":"https://codeload.github.com/nihadamirov/holbertonschool-simple_shell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2Fholbertonschool-simple_shell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30305939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-programming-language","linux","linux-kernel","unix","unix-shell"],"created_at":"2024-09-24T18:59:06.012Z","updated_at":"2026-03-09T18:04:49.906Z","avatar_url":"https://github.com/nihadamirov.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Simple Shell\n\n### Objective\n\nThe objective of this project is for you to create a simple [shell](https://en.wikipedia.org/wiki/Unix_shell).\n\nThrough the `Simple Shell` you will get to the core of the `Unix` system and explore an important part of this system’s API which is the process creation and synchronization.\nExecuting a command inside a shell implies creating a new process, which execution and final state will be monitored by its parents processes. This set of functions will be the key to success for your project.\n\nFor this project you will only have to create a simple `Unix shell` where you can run some of the most known commands. For this part of the project, no advanced functions, pipes or redirection will be asked, but you can add them if you like.\n\n### Instructions\n\n- You must program a mini `Unix shell`, try to focus on something simple like [BusyBox](https://en.wikipedia.org/wiki/BusyBox).\n- This interpreter must display at least a simple `$` and wait until you type a command line which will be validated by pressing enter.\n- The `$` will be shown again only once the command has been completely executed.\n- The command lines are simple, you will not have pipes, redirection or any other advanced functions.\n- You must manage the errors, by displaying a message adapted to the error output.\n- You must implement the following commands:\n  - echo\n  - cd\n  - ls\n  - pwd\n  - cat\n  - cp\n  - rm\n  - mv\n  - mkdir\n  - exit\n- You must manage the program interruption `Ctrl + D`.\n- The project has to be written in a compiled language (like C, Rust, Go or other), **interpreted languages (like Perl and others) are not allowed**.\n- The code must respect the [good practices](https://public.01-edu.org/subjects/good-practices/)\n\nThis project will help you learn about:\n\n- Shell\n- Operating systems services\n- Command-line interfaces\n- Unix system\n- Process creation and synchronization\n- Commands syntax\n- Scripting language\n\n### Bonus\n\nYou can also do more bonus features like:\n\n- Manage the interruption `Ctrl + C`\n- Auto complete when you are writing\n- Add piping\n- Add redirection\n- Have your path behind the `$` like (~/Desktop/0-shell $)\n- Add colors for the directories or errors\n- Other advanced commands you may like.\n\n### Usage\n\n```\nstudent$ ./0-shell\n$ cd dev\n$ pwd\ndev\n$ ls -l\ntotal 0\ncrw-------  1 root   root     10,    58 fev  5 09:21 acpi_thermal_rel\ncrw-r--r--  1 root   root     10,   235 fev  5 09:21 autofs\ndrwxr-xr-x  2 root   root           540 fev  5 09:21 block\ncrw-------  1 root   root     10,   234 fev  5 09:21 btrfs-control\ndrwxr-xr-x  3 root   root            60 fev  5 09:20 bus\ndrwxr-xr-x  2 root   root          4400 fev  5 09:21 char\ncrw-------  1 root   root      5,     1 fev  5 09:21 console\nlrwxrwxrwx  1 root   root            11 fev  5 09:20 core -\u003e /proc/kcore\ndrwxr-xr-x  2 root   root            60 fev  5 09:20 cpu\ncrw-------  1 root   root     10,    59 fev  5 09:21 cpu_dma_latency\n$ something\nCommand 'something' not found\n$ echo \"Hello There\"\nHello There\n$ exit\nstudent$\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihadamirov%2Fholbertonschool-simple_shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnihadamirov%2Fholbertonschool-simple_shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihadamirov%2Fholbertonschool-simple_shell/lists"}