Desde el punto de vista del usuario, actúa como un intérprete de comandos. Es un programa que siempre está en ejecución.
El Shell lee las órdenes suministradas, las descodifica y lo comunica al núcleo para realizar la acción especificada.
Prácticamente, todas las órdenes son programas ejecutables que el shell busca en el sistema de ficheros, siguiendo el orden especificado en la variable global PATH.
Existen varios tipos de shells en función, principalmente, de la versión de UNIX utilizada: