쉘
커널을 사용하기 위하여 명령을 입력받아 해석하고 프로그램을 실행하는 인터페이스CLI를 말한다.
bash 란?
Bourne-again shell
bash 본 쉘을 대체하는 유닉스 쉘이다. 다양한 운영체제의 기본 쉘로 탑재되어 광범위하게 배포되었다. 문법은 거의 대부분이 sh와 호환되며, ksh, csh에서 많은 아이디어를 차용하여 명령 히스토리, 디렉터리 스택, $RANDOM POSIX형식 명령어 치환 등을 지원한다. 입력중 명령어나 파일 이름을 자동완성해 주는 기능도 지원한다.
그럼 본쉘이란?
Bourne shell
또는 줄여서 sh
는 유닉스 버전 7의 기본 쉘이었다. 톰프슨 쉘을 대체하는 쉘로 실행파일 명이 sh로서 같다. 벨 연구소 스티븐 본이 개발하여 77년에 처음으로 유닉스 버전 7에 포함되었고 많은 유닉스 계정에서 기본 쉘로 사용될만큼 오랫동안 인기를 누렸다. 본 쉘의 주 목적은 PWB 쉘을 대체할 목적으로 설계되었는데 다음과 같은 것들이 있다.
- 쉘 스크립트를 필터로 사용할 수 있게 하기 위해
- 제어 흐름과 변수를 포함한 프로그래밍 가능성을 제공하기 위해
- 모든 입출력 파일 서술자의 제어
- 파일서술자: 파일기술자라고도 하며 특정한 파일에 접근하기위한 추상적인 키다. 이 용어는 일반적으로 POSIX운영체제에 쓰인다.
- 스크립트 내의 신호 관리 제어
- 신호관리: 프로세스간 통신으로 POSIX 호환 OS에서 사용된다. 특정 스레드로 전달되는 비동기식 통보
- 쉘 스크립트를 해석할 때 문자열 길이의 제한을 없애기 위해
- 매커니즘을 인용하는 문자열의 합리화 및 일반화
- 환경 매커니즘환경변수
파이프란?
사진: 위키피디아
말 그대로 표준입출력에서 두 명령을 이어주는 파이프 역할로 명령의 출력을 다음 명령의 입력으로 이어준다.
표준입출력?
UNIX계열 운영체제에서 컴퓨터 프로그램과 단말기 사이에 미리 연결된 입출력 통로를 가리킨다. UNIX에서 동작하는 프로그램은 실행시 세 개의 스트림이 자동으로 생성되는데 이를 표준 스트림이라고 부른다. 각각 입력, 출력, 오류를 위한 스트림이 생성되며 이 세 개의 표준 스트림은 사용자의 터미널과 연결된다.
유닉스의 획기적인 발전 중 하나는 장치의 추상화였다. 어떤 장치와 연결되었는지 알 필요가 없어졌다. 데이터 스트림을 통해 연결된 장치로부터 더 읽을 데이터가 있는지 얼만큼 남았는지 등을 확인하고 가져다가 사용하면 되도록 만들어졌기 때문이다. 다른 획기적인 발전으로는 자동으로 연결되는 입출력 장치가 있다. 표준 스트림을 통하여 데이터를 주고 받는 인터페이스가 만들어지면서 이전까지 하드웨어를 연결하기 위해 필요했던 복잡한 코드들이 더 이상 필요하지 않게 되었다.