encabezados del script de shell (#! / bin / sh vs #! / bin / csh)

¿Por qué todos los archivos de script comienzan con

#!/bin/sh

o con

#!/bin/csh

¿Es eso requerido? ¿Cuál es el propósito de esto? ¿Y cuál es la diferencia entre los dos?