Un shell est un programme informatique présentant une interface de ligne de commande pour le système Unix, permettant de contrôler un ordinateur en utilisant des commandes entrées avec un clavier plutôt que via une interface utilisateur graphique (GUI) avec un clavier et une souris ou un écran tactile. Au sein d'un environnement shell, il est possible d'exécuter des commandes, des programmes et des scripts. Il existe différents shells, comme il existe différents systèmes d'exploitation. Chacun a son propre ensemble de commandes et de fonctions. De nombreux outils informatiques ne peuvent être utilisés qu'avec une interface de ligne de commande. Beaucoup ont des fonctionnalités et des options de paramètres indisponibles dans l'interface utilisateur graphique. Il est donc nécessaire de savoir utiliser le shell pour les exploiter. Le shell permet aussi d'automatiser les tâches informatiques les plus répétitives. Ceci permet de gagner du temps pour des choses plus intéressantes. En outre, le shell permet d'éviter les erreurs humaines. L'ordinateur peut répéter les mêmes processus des milliers de fois sans commettre d'erreurs. Cet outil permet aussi de rendre un travail reproductible. L'ordinateur garde en mémoire chaque étape des tâches effectuées via la ligne de commande, et il est ensuite possible de reproduire ces étapes sur de nouvelles données chaque fois que nécessaire. La communication et la collaboration sur des projets s'en trouvent aussi facilitées. Enfin, de nombreuses tâches informatiques requièrent une puissance trop massive pour un simple PC. Il est préférable d'exploiter la puissance d'ordinateurs distants ou du Cloud Computing et le shell est nécessaire pour y accéder.