검색어 입력폼

리눅스환경에서 구현한 MiniShell

저작시기 2006.01 |등록일 2006.11.24 파일확장자압축파일 (zip) | 7페이지 | 가격 1,000원

소개글

*********************소스파일에 주석으로 상세하게 설명해두었습니다.**********************
쉘은 사용자와 OS가 대화를 할 수 있게 해주는 프로그램이다. 쉘은 시작 할 준비가 끝나면 프롬프트를 출력하고, 사용자에 의해 명령 행이 입력되기를 기다린다. 명령은 엔터나 리턴 문자에 의해 종료되고 쉘 프로그램은 명령 행에 나타난 명령을 실행하기 위해 적절한 시스템호출을 수행한다.
실행될 명령어는 첫 번째 단어이고, 나머지 단어들은 그 명령에 대한 인자이다. 쉘은 새로운 명령을 수행하기 위해 새로운 프로세스를 생성하고 부모 프로세스는 생성된 자식 프로세스에게 컴파일러 프로그램을 실행하라고 지시한다.
이번 과제로 제작한 프로그램은 파일로부터 일련의 명령을 읽어, 쉘이 명령을 처리하는 것과 같은 방식으로 각 명령을 실행하는 minishell 프로그램이다.
minishell은 shell과 같이 매개변수 리스트를 준비한 다음 이 매개변수들을 사용하고 새로운 명령을 수행하기 위해 새로운 프로세스(자식 프로세스)를 생성한다. 명령을 실행한다.

컴파일 실행환경

minishell 프로그램의 수행 단계

- 프롬프트 출력 : getcwd()함수를 이용 현재의 디렉토리를 프롬프트로 출력
- 명령 행 획득
- 명령 행 해석 : command line parsing
- 패스 parsing : PATH환경변수에 지정된 path parsing
- 파일 검색 : parsing된 path 중 어느 path에 사용자가 입력한 명령어 파일이 있는지 검 색(execv()함수는 패스를 검색하지 않기 때문에 명령 실행을 위해 명령어 가 있는 패스를 명령어와 결합시켜야 한다.
- 자식 프로세스 생성
- 프로세스 실행
- wait : 프로세스들이 종료될 때 까지 대기

압축파일 내 파일목록

minishell
minishell.c
minishell.h
MINISHELL.hwp
다운로드 맨위로