Un shell est la terminologie d'un interpréteur de ligne de commande le plus couramment utilisé avec les systèmes d'exploitation de type Unix, mais également utilisé pour interagir avec les systèmes d'exploitation basés sur une interface graphique de manière plus granulaire. Non seulement il permet à l'utilisateur d'exécuter des programmes à partir d'une interface texte, mais il offre fréquemment des fonctionnalités de programmation de base telles que des variables, la substitution, la redirection de sortie et des caractères génériques.