{"id":26067588,"url":"https://github.com/sayoonnn/minishell","last_synced_at":"2026-05-01T04:32:48.509Z","repository":{"id":258079489,"uuid":"724993003","full_name":"sayoonnn/minishell","owner":"sayoonnn","description":"bash에 대한 감사함을 느낄 수 있는 프로젝트","archived":false,"fork":false,"pushed_at":"2025-02-27T15:22:00.000Z","size":717,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-24T12:39:29.771Z","etag":null,"topics":["bash","c","cmake","minishell"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":false,"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/sayoonnn.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":"2023-11-29T08:06:42.000Z","updated_at":"2025-02-27T15:22:04.000Z","dependencies_parsed_at":"2025-02-27T21:55:07.271Z","dependency_job_id":"b5027c5f-7fd0-4f82-b5b0-bea0a369f406","html_url":"https://github.com/sayoonnn/minishell","commit_stats":null,"previous_names":["sayoonnn/micorshell","sayoonnn/minishell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sayoonnn/minishell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayoonnn%2Fminishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayoonnn%2Fminishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayoonnn%2Fminishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayoonnn%2Fminishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sayoonnn","download_url":"https://codeload.github.com/sayoonnn/minishell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayoonnn%2Fminishell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32485297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["bash","c","cmake","minishell"],"created_at":"2025-03-08T21:45:15.987Z","updated_at":"2026-05-01T04:32:48.474Z","avatar_url":"https://github.com/sayoonnn.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"```html\n.___  ___.  __  .__   __.  __       _______. __    __   _______  __       __\n|   \\/   | |  | |  \\ |  | |  |     /       ||  |  |  | |   ____||  |     |  |\n|  \\  /  | |  | |   \\|  | |  |    |   (----`|  |__|  | |  |__   |  |     |  |\n|  |\\/|  | |  | |  . `  | |  |     \\   \\    |   __   | |   __|  |  |     |  |\n|  |  |  | |  | |  |\\   | |  | .----)   |   |  |  |  | |  |____ |  `----.|  `----.\n|__|  |__| |__| |__| \\__| |__| |_______/    |__|  |__| |_______||_______||_______|\n```\n\n![](https://img.shields.io/badge/c-A8B9CC?style=for-the-badge\u0026logo=c\u0026logoColor=white)\n![](https://img.shields.io/badge/cmake-064F8C?style=for-the-badge\u0026logo=cmake\u0026logoColor=white)\n\n## 개요\n\nMinishell은 Linux의 pipe와 다양한 시스템 콜을 이용하여 Bash의 일부 기능을 직접 구현한 셸 프로젝트입니다. GNU Readline 라이브러리를 활용하여 명령어 히스토리, 편집 기능을 제공하며, 리디렉션, 파이프, 환경변수 치환, 내장 명령어 실행 등 실제 셸과 유사한 기능을 구현하였습니다.\n\n\u003cbr/\u003e\n\n## 구현된 기능\n\n- **CLI 프롬프트 제공:** 사용자가 인터랙티브하게 명령어를 입력할 수 있는 프롬프트.\n- **명령어 히스토리 지원:** GNU Readline을 통한 입력 히스토리 관리.\n- **환경변수 치환:** `$` 기호를 사용하여 환경변수 값을 치환 (큰따옴표와 작은따옴표 구분).\n- **리디렉션:** `\u003c`, `\u003c\u003c`, `\u003e`, `\u003e\u003e` 등의 리디렉션 기능 지원.\n- **파이프:** `|` 기호를 이용해 명령어 간 데이터를 전달.\n- **내장 명령어:** 아래의 내장 명령어들을 직접 구현하였습니다.\n  - `cd`\n  - `echo`\n  - `pwd`\n  - `export`\n  - `unset`\n  - `env`\n  - `exit`\n- **논리 연산자:** `\u0026\u0026`, `||`를 이용한 조건부 명령어 실행 (서브셸 기능은 제한적으로 구현됨).\n- **와일드카드:** depth 1의 단순 와일드카드(`*`) 확장 지원.\n\n\u003cbr/\u003e\n\n## 설치 및 빌드 방법\n\n### 필수 도구\n\nMinishell은 CMake를 사용하여 빌드됩니다. 먼저, 아래 명령어로 CMake를 설치하세요.\n```bash\nsudo apt install cmake\n```\n\n### 빌드 방법\n\n1. **기본 (mandatory) 버전:**\n   ```bash\n   make\n   ```\n   위 명령어를 통해 기본 셸 기능이 구현된 `minishell` 실행 파일이 생성됩니다.\n\n2. **보너스 (bonus) 버전:**\n   추가 기능(논리 연산자, 서브셸, 와일드카드 등)이 포함된 보너스 버전을 빌드하려면:\n   ```bash\n   make bonus\n   ```\n\n\u003cbr/\u003e\n\n## 사용법\n\n빌드가 완료되면 터미널에서 아래와 같이 실행하여 Minishell을 사용할 수 있습니다.\n```bash\n./minishell\n```\nMinishell은 사용자가 입력한 명령어를 해석하여 내장 명령어 또는 외부 프로그램을 실행하며, 리디렉션과 파이프 기능 등을 지원합니다.\n\n## 내장 명령어\n\nMinishell에 구현된 내장 명령어는 다음과 같습니다:\n- **cd:** 디렉토리 이동\n- **echo:** 텍스트 출력\n- **pwd:** 현재 작업 디렉토리 출력\n- **export:** 환경변수 설정\n- **unset:** 환경변수 삭제\n- **env:** 환경 변수 목록 출력\n- **exit:** 셸 종료\n\n\u003cbr/\u003e\n\n## 보너스 기능\n\n보너스 버전에서 추가적으로 제공하는 기능은 다음과 같습니다:\n- **논리 연산자 지원:** `\u0026\u0026`, `||`를 이용한 조건부 명령어 실행\n- **서브셸 및 그룹화:** 괄호를 이용한 명령어 그룹화 (일부 제한적 구현)\n- **향상된 와일드카드 매칭:** 단일 깊이의 와일드카드(`*`) 확장\n\n## 프로젝트 구조\n\n프로젝트는 크게 두 가지 버전으로 구성되어 있습니다.\n\n- **Mandatory 버전:**  \n  `mandatory` 디렉토리 내에 기본 셸 기능을 담당하는 소스 코드들이 포함되어 있습니다.\n  \n- **Bonus 버전:**  \n  `bonus` 디렉토리 내의 소스 코드는 추가 기능(논리 연산자, 서브셸, 와일드카드 등)을 구현합니다.\n\n공통 라이브러리로는 `libft`가 사용되며, GNU Readline 라이브러리를 링크하여 명령 입력 및 히스토리 기능을 지원합니다.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayoonnn%2Fminishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsayoonnn%2Fminishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayoonnn%2Fminishell/lists"}