Shell Unix
La Shell Unix (Unix-Shell, abbreviato anche shell) è l'interfaccia utente dei sistemi Unix e Unix-like. Tale interfaccia è di tipo testuale: in essa, l'utente può immettere dei comandi di testo, che vengono interpretati e inviati al sistema: anche l'output di testo è pure mostrato nella stessa interfaccia. Si parla dunque anche di "inteprete a linea di comando", termine introdotto da Luis Pouzin negli anni 1964/65 a proposito dei concetti cardine dell'implementazione del sistema Multics.
Di norma, l'utente Unix ha la possibilità di scegliere diversi tipi di Shell. Tipicamente, da shell sono eseguibili diversi linguaggi di script, anche complessi (Perl, awk, eccetera): questo uso permette tipicamente di automatizzare le attività e i job dell'utente nella gestione del proprio computer, o nella gestione di un server acceduto da altri utenti e applicazioni remote.
Una tipologia standard e di uso comune di inteprete di shell unix, in particolare su Linux e Mac Os, è la "bash-shell" (come viene comunemente chiamata la Bourne-Shell), che permette di eseguire operazioni di base quali la navigazione del file system (ad esempio, con i comandi cd, ls e così via), la connessione a host remoti e l'avvio di script, sia nel linguaggio nativo di scripting della shell stessa (aventi questi estensione .sh) che in altri linguaggi (come ad esempio Python, con estensione .py), nonché l'esecuzione di applicazioni di utilità, come ad esempio gli editor di testo.
L'interfaccia shell dei computer Apple è tipicamente chiamata Terminale (Terminal nell'originale inglese): tale denominazione è entrata comunque anche nel gergo di alcune distribuzioni di Linux.
Al momento dell'apertura della shell, viene visualizzato il Prompt dei comandi, che segnala la posizione dove è possibile per l'utente immettere le istruzioni da intepretare dalla shell (ad esempio, nella bash è un $). E' tipicamente presente la visualizzazione del nome dell'utente corrente: questo permette anche di adattare le operazioni da fare a seconda dei privilegi, connessi all'identità dell'utente stesso, con cui si sta operando.
I linguaggi utilizabili da shell tipicamente consentono l'utilizzo dei cicli condizionati, delle iterazioni, della definizione di variabili locali per l'elaborazione dei cicli, la scrittura in output di messaggi di testo (in bash: $echo), i commenti al codice (in bash, per i commenti su una riga: #). E' abbastanza comune l'avvio di operazioni da eseguire periodicamente tramite la funzione cron/crontab tipicamente in uso nei sistemi Unix.
Altri esempi di tipi di shell comunemente utilizzate sono: osh (Thompson-Shell), bash (Bourne-Shell), csh (C-Shell), ksh (Korn-Shell), ash (Almquist-Shell), esh (easy-shell, orientata all'esecuzione del linguaggio Lisp).