{"id":13779844,"url":"https://github.com/julekgwa/21sh","last_synced_at":"2025-08-15T17:11:39.525Z","repository":{"id":71548350,"uuid":"75421619","full_name":"julekgwa/21sh","owner":"julekgwa","description":"UNIX shell - a simple command-line interpreter","archived":false,"fork":false,"pushed_at":"2019-04-23T06:53:33.000Z","size":1673,"stargazers_count":20,"open_issues_count":3,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-05T16:51:11.905Z","etag":null,"topics":["c","command-line","linux","shell","terminal","terminal-emulators","unix"],"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/julekgwa.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":"2016-12-02T18:43:03.000Z","updated_at":"2024-10-30T01:46:08.000Z","dependencies_parsed_at":"2023-03-08T03:45:41.130Z","dependency_job_id":null,"html_url":"https://github.com/julekgwa/21sh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/julekgwa/21sh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julekgwa%2F21sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julekgwa%2F21sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julekgwa%2F21sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julekgwa%2F21sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/julekgwa","download_url":"https://codeload.github.com/julekgwa/21sh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julekgwa%2F21sh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270602456,"owners_count":24614260,"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","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"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":["c","command-line","linux","shell","terminal","terminal-emulators","unix"],"created_at":"2024-08-03T18:01:09.833Z","updated_at":"2025-08-15T17:11:39.498Z","avatar_url":"https://github.com/julekgwa.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# 21sh\nMini UNIX command interpreter.\n\n![Demo](images/21sh.gif)\n\n21sh uses my own implementation of libc's functions, most of them start with `ft_`\n\n21sh implements:\n\n* A series of builtins\n * echo\n * cd\n * setenv\n * unsetenv\n * env\n * exit\n* History\n * history n\n * history -c\n * ^string^string^\n * !string\n * !n\n * !! and !-1\n * CTRL+R (reverse-i-search)\n * :arrow_up: UP or :arrow_down: DOWN\n* Copy and Paste\n * CTRL-W - Copy what is currently in front of the cursor.\n * CTRL-G - Copy the entire line.\n * CTRL-K - Cut or delete what is currently in front of the cursor.\n * CTRL-X - Cut or delete the entire line.\n * CTRL-V - Paste the last thing you deleted (using CTRL-K, CTRL-W, CTRL-G or CTRL-X ).\n* Auto complete\n* unset\n* export\n* line edition\n* the “;” command line separator\n* pipes “|”\n* redirections “\u003c”, “\u003e”, “\u003c\u003c” \u0026 “\u003e\u003e”\n* file descriptor aggregation (e.g. ``2\u003e\u0026-`` \u0026 ``1\u003e\u00262``)\n* Go directly to the beginning or the end of a line by pressing home and end.\n* Move directly by word towards the left or the right using ctrl+LEFT and ctrl+RIGHT.\n* Simple logical operators (\u0026\u0026 and ||)\n* CTRL+T for swapping characters.\n* CTRL+P get previous history.\n* CTRL+H delete character from cmd\n* ls alias (``l`` || ``ll``)\n\n# Installation\n```\n$ git clone https://github.com/julekgwa/21sh.git\n```\n\n# Usage\n```\n$ cd 21sh\n$ make \u0026\u0026 ./21sh\n\n```\n\n## Authors\n\n* **[julekgwa](https://github.com/julekgwa)**\n* **[goisetsi](https://github.com/goisetsi)**\n\n# License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulekgwa%2F21sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulekgwa%2F21sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulekgwa%2F21sh/lists"}