• 모닥위키모닥위키
  • 모닥위키
위키
  • 임의문서
  • 주간인기
  • 목록
    AAAdddvvveeerrrtttiiissseeemmmeeennntttAdvertisement

    © 2025 modak.wiki All rights reserved.

      쉘과 파이프 그리고 표준 입출력

      유닉스를 사용할 때 만나는 쉘, 파이프, 표준 입출력 대해서 정리한 글입니다.

      컴퓨터/IT역사
      lu

      luasenvy (luasenvy)

      CC BY 4.0 국제규약

      쉘

      커널을 사용하기 위한 명령을 입력받아 해석하고 프로그램을 실행하는 인터페이스(CLI)를 말한다. 최초의 유닉스에 최초로 적용된 쉘은 톰프슨 쉘로 켄 톰프슨이 작성하였다.1 이후 본 쉘이 대체제로 작성되어 실행파일명이 'sh'로 서로 같다. 다양한 운영체제의 기본 쉘로 탑재되어 광범위하게 배포되었고 오랜기간 사랑 받았다.2

      bash로 많이 알려진 Bourne-again shell은 본 쉘(Bourne shell)을 대체하는 유닉스 쉘로 개발되었다. 문법은 거의 대부분이 본 쉘과 호환되며, ksh, csh에서 많은 아이디어를 차용하여 명령 히스토리, 디렉토리 스택, $RANDOM POSIX형식 명령어 치환 등을 지원한다. 입력중 명령어나 파일 이름을 자동완성해 주는 기능도 지원한다.3

      표준 입출력

      stdinout.webp

      stdinout.webp

      UNIX계열 운영체제에서 컴퓨터 프로그램과 단말기 사이에 미리 연결된 입출력 통로를 가리킨다. UNIX에서 동작하는 프로그램은 실행시 세 개의 스트림이 자동으로 생성되는데 이를 표준 스트림이라고 부른다. 각각 입력, 출력, 오류를 위한 스트림이 생성되며 이 세 개의 표준 스트림은 사용자의 터미널과 연결된다.

      유닉스의 획기적인 발전 중 하나는 장치의 추상화로 어떤 장치와 연결되었는지 알 필요가 없어진 것인데 데이터 스트림을 통해 연결된 장치로부터 더 읽을 데이터가 있는지 얼만큼 남았는지 등을 확인하고 사용하면 되도록 만들어졌기 때문이다.

      다른 획기적인 발전으로는 자동으로 연결되는 입출력 장치가 있다. 표준 스트림을 통하여 데이터를 주고 받을 수 있는 인터페이스가 만들어지면서 이전까지 하드웨어를 연결하기 위해 필요했던 복잡한 코드들이 더 이상 필요하지 않게 되었다.

      파이프

      pipe
      find ./ -type f | xargs grep 'hello, world' -ls
      

      말 그대로 표준 입출력에서 두 명령을 이어주는 파이프 역할을 한다. 명령의 출력을 다음 명령의 입력으로 이어주는데 사용되는 문자도 파이프(|)라고 불리우는 특수 문자를 사용한다.

      Footnotes

      1. 위키백과 기여자, "톰프슨 셸," 위키백과, https://ko.wikipedia.org/w/index.php?title=%ED%86%B0%ED%94%84%EC%8A%A8_%EC%85%B8&oldid=39519789 (2025년 9월 22일에 접근). ↩

      2. 위키백과 기여자, "본 셸," 위키백과, https://ko.wikipedia.org/w/index.php?title=%EB%B3%B8_%EC%85%B8&oldid=39025998 (2025년 9월 22일에 접근). ↩

      3. 위키백과 기여자, "배시 (유닉스 셸)," 위키백과, https://ko.wikipedia.org/w/index.php?title=%EB%B0%B0%EC%8B%9C_(%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%85%B8)&oldid=40141123 (2025년 9월 22일에 접근). ↩

      초판: 2025. 09. 22. 22:23:28

      수정판: 2025. 09. 22. 22:38:14

      © 2025 이 문서는 "CC BY 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.

      쉘과 파이프 그리고 표준 입출력

      쉘
      표준 입출력
      파이프