Shell은 리눅스에서 대화형 사용자 인터페이스를 의미하고 사용자가 입력하는 명령어를 이해하고 실행하는 역할을 합니다. 운영체제의 바깥 계층에 위치하여 사용자와 커널의 의사소통을 담당합니다.
Kernel은 1991년 리누스 토발즈에 의해 생긴 용어이며, 운영체제와 컴퓨터 사이에는 Kernel과 Shell이라는 것이 존재합니다. Shell은 일종의 명령어 해석기 역할을 하며, 운영체제에서 사용되는 언어와 사용자가 사용하는 언어가 다르기 때문에 사용자가 명령을 입력하면 Shell에서 명령을 받아 운영체제가 사용할 수 있는 언어로 번역하여 Kernel로 보냅니다. Kernel은 명령을 받아 해당하는 작업을 수행하도록 하는 역할을 수행합니다. 즉, Kernel은 실제로 운영체제를 운영하는 것이라고 비유할 수 있겠습니다.
Shell : 쉽게 표현하면 도스의 command.com이 하는 역할처럼 login 이후부터 사용자가 입력하는
명령어를 기계어로 변역하여 커널에 전달하는 역할을 하는 명령해석기를 말합니다.
csh : 버클리 캘리포니아 대학에서 개발된 프로그래머들에게 적합한 shell입니다.
대화형 사용법에서는 Bourne shell과 대부분 호환되지만 전혀 다른 프로그래밍 인터페이스를
가지고 있고, 히스토리 대체라는 복잡한 기능으로 대신하고 있지만 명령행 편집 기능은 제공
하지 않습니다.
ksh : 일반적으로 유닉스에서 가장 많이 사용되고 있는 shell이며 Bourne shell에 처음으로 현대적
인 shell 기능(C shell로부터 차용한 것이다.)을 도입한 shell 입니다. Bourne shell과 호환
되고, 명령행 편집 기능을 제공합니다.
bash : Bourne again shell은 최초로 개발된 쉘인 Bourne shell의 변종이라 할 수 있습니다.
리눅스에서 가장 많이 사용되는 쉘이며, POSIX 호환이며 Borune shell과 호환되는 쉘로서
GNU 프로젝트에 의해 만들어지고 배포되고 있습니다. 명령행 편집 기능을 제공합니다.
'Unix/Linux' 카테고리의 다른 글
Housekeeping? (0) | 2015.11.08 |
---|---|
쉘 프로그래밍 기초 이해 (0) | 2015.07.26 |
Command line2 (0) | 2015.07.21 |
Command line (0) | 2015.07.21 |