제 7장. 쉘(Shell)
1. 쉘(Shell) 이란?
먼저 들어가기에 앞서, 쉘에 대해 배워보도록 합시다.
우리가 사용하는 프로그램은 일반적으로 바이너리 (Binary, 2진법의) 형태의 명령어 집합체임을 잘 알고 계실겁니다.
컴퓨터는 기본적으로 1과 0으로 된 형태의 정보들을 읽어 들이지요.
그러나 인간이 명령을 내리기 위해 매번 2진법을 이용해 컴퓨터를 사용하는 것은 매우 귀찮고 어려운 작업이지요.
따라서 도와줄 것이 필요한데, 이런 역할을 하도록 하는 것이 쉘입니다.
아래의 그림을 봅시다.
그림과 같이 쉘은 커널과 유저의 가운데 중간 다리 역할을 합니다.
사용자의 명령을 받아서 해석해 커널에 알려준답니다.
또, 유닉스 계열이나 리눅스 OS 등에서 사용되는 대화형 사용자 인터페이스라고 설명할 수도 있습니다.
간단히 말하면,
사용자(명령) → 셸(해석) → 커널(명령 수행)
으로 정리 할 수 있겠네요.
쉘은 3가지의 역할을 합니다.
1. 대화식(Interactice) 사용
: 사용자의 요청을 기다려서 요청 즉시 결과 값을 출력해주는 대화형 구조를 가집니다.
화자가 말하면 청자가 즉시 대답하는 것처럼, 대화하는 것 같다고 해서 대화식이지요.
2. 프로그래밍
: 쉘스크립트는 복합적인 작업을 수행할 수 있도록 일련의 명령어들을 묶어 사용할 수 있습니다.
이것은 뒤에서 차차 배우도록 해요.
3. 리눅스 세션(session)의 설정(Customization)
: 리눅스의 세션에 대한 변수들을 정의해 사용자가 리눅스 환경을 자신이 원하는 상태로 설정할 수 있게 합니다.