- 프로젝트 소개
- Bash와 유사한 기능을 제공하는 Shell을 직접 제작하여 시스템 프로그래밍 및 OS 기초 역량 강화
- 프로젝트 개요
- 프롬프트 출력 & 명령어 실행
- 사용자 입력을 받아 PATH 환경변수 기반으로 실행 파일 탐색 및 실행.
- 입출력 리다이렉션 지원
<,>,>>,<<연산자를 통한 표준입출력 제어 구현.
- 파이프라인 처리
|명령어 파이프 연결 기능 개발.
- 환경 변수 확장
$VAR,$?등의 변수 치환 로직 구현.
- 인용부호 처리
',"구분에 따른 메타문자 해석 규칙 적용.
- 신호 처리
ctrl-C,ctrl-D,ctrl-\에 대한 bash 유사 동작 구현.
- 내장 명령어 구현:
echo -ncd(상대/절대 경로)pwdexport/unsetenvexit
- 프롬프트 출력 & 명령어 실행
- 진행한 일
- 명령어 입력 문자열 파싱 로직 구현 (토큰 분리, 인용부호 처리, 환경변수 확장 등)
echo,cd,pwd,export,unset,env,exit등 내장 명령어(builtin) 기능 구현- 파이프(
|), 리다이렉션(<,>,>>,<<)과 같은 입출력 처리 과정에서 파싱 결과와 실행 로직 연결
- 과정
- Bash 동작 원리를 분석하여 토큰화 및 구문 해석 과정 설계
- 에러/예외 상황(미닫힌 따옴표, 잘못된 경로, 없는 변수 등)에 대한 처리 규칙을 구현
- 내장 명령어를 외부 실행 명령어와 동일한 인터페이스로 동작하도록 구조화
- 결과물
- 사용자 입력을 정상적으로 파싱해 실행 가능한 형태로 변환
- Bash와 유사하게 동작하는 내장 명령어 실행 가능
- 다중 파이프 및 리다이렉션 조합도 처리 가능한 동작 환경 구현
- 테스트 케이스를 작성하여 다양한 입력 시나리오 검증
- 성장한 점
- 파싱/토큰화 로직을 직접 설계·구현하며 문자열 처리 및 자료구조 설계 역량 강화
- 운영체제의 프로세스 생성(fork, execve) 및 파일 디스크립터 제어 원리에 대한 실무적 이해 심화
- 실제 Shell 수준의 프로그램을 직접 만들어보며 C 기반 시스템 프로그래밍 실력을 크게 향상
- 역량
- 문자열 파싱 및 명령어 해석 알고리즘 설계 능력
- 내장 명령어를 포함한 핵심 기능 단위 모듈 구현 역량
- 프로세스/파일 디스크립터 제어, 시그널 처리 등 저수준 시스템 프로그래밍 역량
- 테스트 기반 디버깅 및 기능 검증 경험
Repository navigation
forked from HyWChoi/minishell_42subject
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|