반응형
Shell은 껍질이라는 뜻이다.
말 그대로, 바깥과 속이 만나는 껍질, 그것이 shell이다.
속은 운영체제이고, 바깥은 사용자이다.

 

shell은 껍질. 바깥은 사용자, 안쪽은 운영체제.

Shell 정의

 우선 Shell을 정의하면,

- Shell은 애플리케이션 즉, 프로그램의 일종이다.

- Shell은 누군가가 코드로 짠 프로그램이다.

- Shell의 목적은 운영체제(OS) 서비스들을 사람과 소통할 수 있게 한다.

- Shell 로 이름이 된 이유는 말 그대로 껍질, 운영체제를 둘러싼 가장 바깥쪽 레이어 (outermost layer)이기 때문이다.

- Shell 프로그래밍 한다라는 의미는 운영체제와 소통하기 위한 언어를 작성한다라는 뜻이다.

- 즉, Shell 프로그래밍을 하기 위해선 운영체제를 이해해야한다.

- Shell 프로그래밍한다 = 운영체제를 컨트롤한다.  웹프로래밍을 한다 = 웹페이지를 컨트롤한다.

 

그림

 

Shell의 구분

일반적으로, 운영체제 shell은 아래의 2가지를 제공한다.

- CLI (명령줄 인터페이스, command-line interface)

- GUL (그래픽 사용자 인터페이스 graphical user interface)

컴퓨터의 역할(role) 그리고 특정 동작에 따라 달려있습니다.

 

개요

 대부분 운영체제 shell은 직접적인 kernel과 인터페이스를 하지 않습니다.

심지어 Shell이 주변기기를 통해 사용자와 통신을 하더라도 shell은 사실 특별한 애플리케이션(앱, 프로그램)일 뿐입니다.

Shell이 kernel과 소통하기 위한 방식으로, Shell은 커널 API를 이용합니다. 다른 앱 프로그램이 사용하는 같은 방식으로 말이죠.

 

 Shell은 사용자에게 입력을 요청함으로써 user-system-interaction (사용자-시스템-상호작용)을 관리합니다.

그 입력을 해석하면서 운영체제 환경 하에서 결과를 처리합니다.

운영체제 Shell은 사실 애플리케이션(프로그램)이라서, 그것은 쉽게 다른 비슷한 앱으로 대체할 수 있습니다.

(즉, Shell도 프로그램이라, 누군가 쉽게 커스터마이징할 수 있고, 다른 것을 대체할 수 있다는 말입니다.) 

 

 

도스에서 배치 파일 만들기 = 쉘 스크립트가 그와 유사

 

고급

- UNIX 운영체제는 많은 양의 shell 프로그램을 가지고 있음 (다른 명령어, 문법, 그리고 기능들, 기준이 되는 POSIX shell 과 함께

- command-line interpreter는 히스토리 기능을 제공할 수 있습니다.

 

Shell의 종류

 

 

$ cat /etc/shells

 

 

 

출처

위키백과(영어) Shell

반응형