sh는 쉘 프로그램 해석기이다. 쉘 스크립트를 보면 첫 줄에 아래와 같은 구문을 볼 수 있다.
#!/bin/sh
#!/usr/bin/perl
해당 스트립트를 #! 뒤에 나오는 절대경로에 위치하는 쉘 프로그램의 구문 문법을 통해 해석하고 실행하나는 뜻이다. 이런 전처리 작업을 해주는 이유는 보통 스크립트는 종류도 많고 그에 따른 문법도 제각각이기 때문이다.
sh는 bone shell이라고도 하며 가장 기본적인 쉘이다.
쉘이란 커널과 사용자를 연결해주는 하나의 매개체 역할을 한다고 보면 된다.
쉘은 여러가지 형태로 만들어지지만 크게 csh 계열과 ksh 계열로 나뉜다.
csh는 c 언어를 기초로 관리자 중심으로 만들어진 쉘이고
ksh는 korn shell이라고 불리며 사용자 중심으로 만들어진 쉘이다.
csh는 후에 tcsh으로 확장된다.
리눅스는 bash라는 쉘을 사용하며 이 의미는 born again shell의 의미를 가지고 있다.
bash는 csh의 관리적인 측면과 ksh의 사용자 편의성 측면을 모두 고려하여 만들어진 쉘이다.
리눅스는 대부분의 쉘을 호환하여 사용할 수 있다.