La shell è un vero e proprio ambiente di programmazione, oltre che un interprete di comandi, con cui è possibile realizzare script per automatizzare operazioni anche complesse e ripetitive ed è altamente configurabile.
Le shell dispongono ognuna di un proprio set di comandi e di regole sintattiche non sempre simili e compatibili, dispongono di operatori, istruzioni di selezione e di ciclo.
La shell maggiormente utilizzata e predefinita nella maggior parte delle distribuzioni Linux è la BASH, acronimo di Bourne Again shell, capace di eseguire script scritti per la shell Bourne che è una tra le più utilizzate in ambiente Unix.