• Home
  • About
    • Hansu Kim photo

      Hansu Kim

      Hansu Kim's Development Blog

    • Learn More
    • Email
    • Facebook
    • LinkedIn
    • Instagram
    • Github
  • Post Archive
  • Project Archive
  • Tag Archive
  • Machine Learning
  • Operating System
  • System Programming

[System Programming] Shell 구현

09 Sep 2020

개요

Linux 내장 명령어를 실행하는 쉘 프로그램이다. 기본 쉘과 동일하게 대화식 명령어 입력이 가능하고, 프로그램 실행 시 인자로 파일을 넘겨줄 경우 배치식 모드로 쉘을 실행하게 된다. 배치식 모드는 넘겨받은 텍스트 파일 내에 있는 명령어들을 순서대로 실행한다. 쉘 프로그램은 다중 파이프 기능을 지원한다.

실행방법

$ make shell
./shell

기능

  1. 대화식 모드 명령어 실행

    01.jpg

  2. 배치식 모드 명령어 실행

    02.jpg

  3. 다중 파이프 명령어 실행

    03.jpg

구현 방법

명령어를 실행하기 위해 execvp함수를 사용했다. fork()를 통해 자식 프로세스를 생성한 후 자식 프로세스에서 execvp 함수를 호출해 쉘의 환경 변수 PATH에 등록된 디렉터리에 위치한 실행 파일들을 실행하도록 했다.

GihHub Link



System Programming Share Tweet +1