셸

셸(shell, )은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸(껍데기의 영어 단어)은 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다.

셸은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다. 명령 줄 셸은 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공하는 반면에, 그래픽 셸은 그래픽 사용자 인터페이스(GUI)를 제공한다.

CLI와 GUI 기반 셸의 상대적 장점에 대해서는 논쟁이 많다. CLI 지지자는 CLI 셸 상에서 일반적인 수행(파일 이동 등)을 훨씬 빠르게 할 수 있다고 주장한다. 반대로 GUI 지지자는 GUI 셸의 상대적 사용성과 간편함을 내세운다. 일반적으로 성능을 중시하고 숙련된 관리자의 작업에 주로 사용되는 서버의 경우는 CLI가 많이 쓰이며 반면 일상적인 업무에 사용되는 컴퓨터엔 GUI가 많이 사용된다.

역사 
최초의 유닉스 셸인 켄 톰프슨의 sh는 멀틱스 셸을 따라 모형화한 것이었다. 본 셸은 첫 유닉스 셸에서 파생한 것이다. 본 셸의 뒤를 이어서 등장한 셸은 C 셸(csh)이다. C 셸은 버어클리의 빌 조이(Bill Joy)에 의해서 작성되었으며, 셸 스크립터를 작성하는 언어가 C 언어를 닮았기에 C 셸이라고 불린다. 다음으로 나타난 셸은 TC 셸(tcsh)로서 C 셸의 기능에다 명령어-완성(command-completion)기능을 추가시켜 만든 퍼블릭 도메인 버전이다.

실질적으로 모든 운영 체제의 셸은 상호 작용과 일괄 방식으로 사용될 수 있으며 일괄 방식의 경우 여러 명령어를 나열하여 둔 텍스트 파일의 이름을 지정함으로써 사용하는 것이 보통이다. 셸을 이용하는 일괄 방식은 프로그래밍 언어의 구조, 조건, 변수 등을 동반한다.

셸의 목록

그래픽 셸 

 마이크로소프트 윈도우 환경:
 윈도우 탐색기
 라이트스텝
 지오셸
 BB4Win
 이머지 데스크톱
 매킨토시 파인더
 X 윈도 시스템 기반 환경(주로 유닉스):
 Nautilus

명령 줄 셸 

 유닉스 셸:
 본 셸 (sh)
 Almquist shell (ash)
 Bash
 C 셸 (csh)
 테넥스 C 셸 (tcsh)
 콘 셸 (ksh)
 scsh (스키마 셸)
 Z 셸 (zsh)
 rc 셸 (rc) - 플랜 9과 유닉스용 셸
 COMMAND.COM - 도스용 셸
 CMD.EXE - OS/2의 텍스트 모드와 윈도우 NT용 셸
 4DOS, 4OS2, 4NT - JP 소프트웨어가 개발 및 판매하는 셸 (각각 도스, OS/2, 윈도 NT용)

CLI
명령 줄 인터페이스(CLI, Command-line interface)의 예

셸 명령어 목록

> cd : 디렉토리 변경(이동)
> ls : 디렉토리(폴더 및 파일) 목록
> .. : 상위 디렉토리 이동
> mkdir : 새로운 디렉토리 생성

같이 보기 
 도스 셸
 유닉스 셸

각주 

 
데스크톱 환경
운영체제 기술