Il termine shell indica l'interfaccia a linea di comando, cioè uno schermo nero, un prompt, un cursore che lampeggia, pronti a ricevere i comandi che l'utente digita sulla tastiera.
Nei sistemi Linux tutto ciò che può essere fatto con l'interfaccia grafica può essere fatto con la shell; inoltre alcuni compiti possono essere svolti solo con la shell, o grazie alla shell vengono svolti molto più rapidamente.
Ad esempio, per ricercare i marcatori <meta> presenti in un sorgente HTML, visualizzare il nome del file in cui il marcatore è stato trovato, visualizzare il numero di riga in cui il marcatore si trova ed infine visualizzare il contenuto del marcatore stesso, è sufficiente impartire il seguente comando:
grep -ni '<meta[^>]*>' *.html
I comandi di shell sono innumerevoli e di solito sono sviluppati secondo il principio che un comando deve svolgere un solo compito e deve svolgerlo bene.
Ogni shell, inoltre, ha il proprio linguaggio di scripting, cioè un vero e proprio linguaggio di programmazione con variabili, strutture per il controllo del flusso, strutture iterative ecc.; lo scopo di questi linguaggi è quello di combinare fra loro una pluralità di comandi, gestendo l'input e l'output di ciascuno, al fine di svolgere compiti complessi.
Uno script di shell infatti, può essere a sua volta considerato come un comando, che potrà essere eseguito autonomamente come un qualsiasi altro programma.
La shell predefinita della gran parte dei sistemi Linux si chiama BASH.
In questo argomento dell'area tematica informatica sono presentati, seppure in modo non sistematico: