쉘(Shell)을 간단하게 정의하면, 사용자에게 키보드로 명령을 받아 OS가 해당 명령을 수행하도록 하는 프로그램이다.
쉘에 대한 조금 더 자세한 정리는 [ http://www.leafcats.com/185 - Unix / Linux 운영체제의 Shell, POSIX ] 를 참조.
리눅스 쉘의 오리지날은 Steve Bourne의 Bourne쉘인 sh다. 이 sh를 업그레이드하여 다양한 편의성을 제공한 여러 종류의 쉘들이 있다.
사용중인 리눅스 환경에서 사용할 수 있는 쉘의 종류를 확인하기 위해서는 /etc/shells 파일을 보면 된다.
대표적으로 자주 사용되는 쉘은 bash를 포함해 ksh, tcsh, zsh 정도가 있다.
- BASH (Bourne-Again Shell) [/bin/bash] : 일반적으로 가장 흔하게 사용되는 쉘이다. sh 본쉘과 호환되기 때문에 대부분 sh와 bash에서 모두 작동된다.
- CSH (C Shell) [/bin/sh] : C 언어와 유사한 문법을 가지고 있다. 유닉스의 기본 쉘이다.
- KSH (Korn Shell) [/bin/ksh] : 초심자를 위해 표준 환경이 적용되어 있는 Bourne쉘의 슈퍼셋이다. 유닉스 지식을 가지고 있는 사람들에게 인정받고 있는 쉘이다.
- TCSH [/bin/tcsh] : 일반적인 C 쉘이며 사용자 중심이고 속도가 빠르다.
현재 사용중인 쉘의 종류를 알아보려면 환경변수를 확인해 보면 된다. 여러 방법이 있는데,
$ env | grep SHELL
혹은,
$ echo $SHELL
을 통해 리눅스 환경변수로 등록된 SHELL 을 확인해 보면 된다.