{"id":17584589,"url":"https://github.com/kaustubhhiware/cshell","last_synced_at":"2025-04-28T16:22:40.510Z","repository":{"id":91736374,"uuid":"80045740","full_name":"kaustubhhiware/Cshell","owner":"kaustubhhiware","description":"A basic shell. Written in C","archived":false,"fork":false,"pushed_at":"2018-02-01T10:15:39.000Z","size":274,"stargazers_count":24,"open_issues_count":1,"forks_count":15,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T11:11:50.178Z","etag":null,"topics":["c","cat","cshell","linux","shell"],"latest_commit_sha":null,"homepage":null,"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/kaustubhhiware.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":"2017-01-25T18:49:33.000Z","updated_at":"2025-01-23T14:53:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"61824e87-4ddc-4c22-89ad-d1741f3c9ddc","html_url":"https://github.com/kaustubhhiware/Cshell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhhiware%2FCshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhhiware%2FCshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhhiware%2FCshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaustubhhiware%2FCshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaustubhhiware","download_url":"https://codeload.github.com/kaustubhhiware/Cshell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251343061,"owners_count":21574296,"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","cat","cshell","linux","shell"],"created_at":"2024-10-22T02:07:00.700Z","updated_at":"2025-04-28T16:22:40.491Z","avatar_url":"https://github.com/kaustubhhiware.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cshell\n\nA shell implemented in C. Written as a part of Operating Systems (CS39002) coursework.\n\n![Cshell_about](images/Cshell_about.png)\n\n## Functionalities\n\n The following functions have been written explicitly in C.\n\n* **cd**  - Change directory\n\n* **pwd** - Present Working directory\n\n* **mkdir \u003cdir\u003e** - Make a directory (Alerts if already exists)\n\n* **rmdir \u003cdir\u003e** - Remove the directory (Alerts if no such file or directory)\n\n* **ls** - List contents of pwd\n\n ![images/ls](images/ls.png)\n\n* **ls -l** - List the contents in long listing format\n\n ![images/ls_l](images/ls_l.png)\n\n* **cp \u003cfile1\u003e \u003cfile2\u003e** - Copy contents of file1 to file2; only if file1 was more recently modified. Create file2 if not present already.\n\n* **exit** - Exit the shell ; also works for **z**\n\n* Supports running the **execuables** (predominanatly, ./a.out and scripting commands, like touch, cat, python notif.py )\n\n * Any path added to your `$PATH` folder will work. [Refer to function runprocess in shell.c]\n\n * Support background execution such as `python notif.py \u0026`  - returns its PID.\n\n * Input from and output to files, such as `./d \u003c in.txt` and `./inc \u003e in.txt` supported. (Both can work simultaneously.)\n\n * Support piping upto 2 levels - such as `./inc | ./d` and `./inc | ./d | ./t `\n\n\n## Execution\n\n\u003cpre style=\"background: rgb(238, 238, 238); border: 1px solid rgb(204, 204, 204); padding: 5px 10px;\"\u003emake clean\nmake\n./Cshell\u003c/pre\u003e\n\nOutput :\n![images/exec](images/exec.png)\n\nThe test cases are present in [tests](tests/) folder.\n\n`run.c` creates a child process to execute `shell.c` in a gnome-terminal, suited for debuggging. In case the terminal session is to be viewed in the continuing session, execution is as :\n\n\u003cpre style=\"background: rgb(238, 238, 238); border: 1px solid rgb(204, 204, 204); padding: 5px 10px;\"\u003emake clean\nmake\n./myshell\u003c/pre\u003e\n\n## Known issues\n\n* `gcc` and `grep` don't work for some freaking reason. Most of the other commands like cat, touc, gedit, atom work but these 2 seem to hold a grudge against me.\n\n* support piping with system calls.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaustubhhiware%2Fcshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaustubhhiware%2Fcshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaustubhhiware%2Fcshell/lists"}