Shell (informatica)








La shell (detta anche interprete dei comandi), in informatica, è la parte di un sistema operativo che permette agli utenti di interagire con il sistema stesso, impartendo comandi e richiedendo l'avvio di altri programmi. Insieme al kernel costituisce una delle componenti principali di un sistema operativo. Il suo nome (dall'inglese shell, guscio) deriva dal fatto che questa componente viene considerata l'involucro, la parte visibile del sistema ed è dunque definibile come l'interfaccia utente o il programma software che la rende possibile.




Indice






  • 1 Descrizione


    • 1.1 Shell testuali


    • 1.2 Shell grafiche




  • 2 Shell più diffuse


    • 2.1 Shell testuali


    • 2.2 Shell grafiche




  • 3 Note


  • 4 Voci correlate


  • 5 Altri progetti





Descrizione |


In generale esistono molti tipi di shell, che si dividono principalmente in testuali e grafiche:



  • quando si parla semplicemente di "shell", o anche di "terminale", si intende di solito una shell testuale con cui l'utente interagisce attraverso un terminale o un terminale virtuale (quest'ultimo può anche far parte della shell stessa anziché essere un programma a parte) tramite un'interfaccia a riga di comando;

  • nel caso di shell grafiche è comune fare riferimento ai cosiddetti desktop environment, che forniscono agli utilizzatori un ambiente grafico da cui è possibile gestire file e avviare programmi.



Shell testuali |


Una shell testuale (o interprete dei comandi) è un programma dotato di un'interfaccia a riga di comando, che viene eseguito all'interno di un terminale testuale. L'utente digita un comando, ovvero richiede l'esecuzione di un programma, e il programma eseguito può interagire con l'utente e/o mostrare dati sul terminale.


Una delle più note shell testuali è il tradizionale "prompt dei comandi", ben noto a quanti hanno familiarità con i sistemi operativi DOS (MS-DOS, DR-DOS, FreeDOS). Per gli utenti di MS-DOS e di alcuni dei sistemi Microsoft Windows la shell è il programma command.com. Anche i sistemi della famiglia Windows NT dispongono di una shell testuale, il programma cmd.exe.


Altro esempio di shell testuale famosa è quella di OS/400, conosciuta e usata da tutti coloro che hanno lavorato con i sistemi IBM.


Nei sistemi operativi Unix e Unix-like esistono diverse shell testuali; tra le più note vi sono sicuramente Bash (Bourne-Again Shell) e la Korn shell, ma ne esistono altre come la C shell, con un insieme di funzionalità e caratteristiche di base in comune.


Sono inoltre presenti potenti strumenti per collegare tra loro diversi programmi per svolgere compiti complessi, come le pipe e la redirezione. I programmi Unix più propensi ad essere collegati in questo modo sono detti filtri.


Le moderne shell testuali posseggono diverse funzionalità ergonomiche, tra le quali:



  • la cronologia dei comandi eseguiti (o command history), che permette di ripetere gli ultimi comandi digitati;

  • il completamento dei comandi (o command-line completion), che permette di completare automaticamente nomi di programmi e di file

  • il job control, che permette di avviare in background più programmi o di sospenderli temporaneamente.


Le shell testuali dei sistemi Unix integrano un linguaggio di scripting con il quale è possibile scrivere veri e propri programmi che possono ad esempio automatizzare le operazioni di amministrazione di sistema, semplificandola. La sintassi di tale linguaggio è un'estensione di quella usata interattivamente, per cui chi è familiare con l'uso interattivo della shell trova facile e naturale creare degli script.


Alcune delle funzionalità delle shell dei sistemi Unix sono state riprese in varia misura anche dalle shell testuali per i sistemi Microsoft Windows, tuttavia esistono prodotti che offrono un ambiente Unix-like (e le relative shell) per tali sistemi, come ad esempio quello del progetto Cygwin, o anche Microsoft Windows Services for UNIX[1] o ancora lo MKS Toolkit.[2]


Il comando per cambiare la shell di login di un utente è chsh.



Shell grafiche |


L'evoluzione grafica delle shell è rappresentata dalle cosiddette GUI (Graphic User Interface, interfacce grafiche utente), che hanno una rappresentazione dei dati pensata per essere molto più vicina al modo di percepire il mondo da parte degli esseri umani e quindi più user-friendly.


Con le GUI il computer e il suo contenuto non sono più rappresentati da linee di testo, ma da icone e finestre che permettono di fare operazioni complesse con un clic del mouse. In molti sistemi le operazioni attivate dai click su icone e pulsanti mappano le rispettive istruzioni delle interfacce testuali che rappresentano dunque l'interfaccia diretta con il kernel del sistema operativo o il core delle applicazioni.


Il limite delle GUI è il loro alto consumo delle risorse di calcolo del computer: sono più pesanti e in rete geografica possono essere gestite da remoto solo a discapito di prestazioni ed eleganza. Molti utenti esperti, inoltre, le ritengono meno efficienti (ad esempio perché per svolgere compiti ripetitivi possono essere di grande aiuto le capacità di scripting che molte shell testuali incorporano) e meno flessibili.


Le shell grafiche sono state sicuramente un passo avanti per l'interazione uomo-macchina, ma quelle a riga di comando non possono essere sostituite per la loro potenza e velocità d'uso.


Le shell grafiche più conosciute sono sicuramente GNOME e KDE (nei sistemi Unix e Unix-like), Finder (in macOS) e File Explorer (nei sistemi Microsoft Windows)


Nei sistemi operativi Microsoft Windows, il comando shell:history accede una cartella speciale di Windows che contiene i file locali modificati dall'utente, e per la quale è possibile impostare la creazione periodica di un punto di ripristino. Naturalmente, non è possibile consultare il contenuto della cartella "History" appartenente ad account differenti da quello corrente, anche se l'utente accede come amministratore del computer[3], o si dispone di privilegi equivalenti[4].



Shell più diffuse |



Shell testuali |




  • Bash (shell tipica dei sistemi GNU/Linux)


  • Bourne shell (shell dei primi sistemi Unix)


  • C shell (shell un tempo popolare su sistemi Unix)


  • Z shell (conosciuta come zsh)


  • Korn shell (shell comunemente disponibile su sistemi Unix)


  • Debian Almquist shell (shell usata in Debian e derivati per eseguire gli script di sistema)


  • cmd.exe (shell dei sistemi operativi della famiglia Windows NT)


  • command.com (shell del sistema operativo MS-DOS e di alcuni sistemi Microsoft Windows)


  • Windows PowerShell (shell avanzata per sistemi Microsoft Windows)



Shell grafiche |




  • GNOME (tipica dei sistemi GNU/Linux e Solaris 10)


  • KDE (tipica dei sistemi GNU/Linux)


  • Xfce (tipica dei sistemi GNU/Linux)


  • Common Desktop Environment (normalmente disponibile su sistemi Unix)


  • Finder (la shell dei sistemi macOS)


  • File Explorer (la shell dei sistemi Microsoft Windows)


  • GreenGnome (shell replacement per sistemi Microsoft Windows)


  • Unity (shell ufficiale di Ubuntu)



Note |




  1. ^ (EN) Introduction to Microsoft Windows Services for UNIX 3.5


  2. ^ (EN) MKS Toolkit


  3. ^ (ITEN) Come accedere alla cronologia nel computer, su Wikihow. URL consultato il 31 Ottobre 2018.


  4. ^ (EN) Istruzioni Shell per aprire le Cartelle Speciali utente di 10/8/7/Vista/XP, su winhelponline.com. URL consultato il 31 Ottobre 2018.



Voci correlate |



  • Interfaccia a riga di comando

  • Interfaccia utente

  • One-liner

  • File Explorer

  • Shell Unix

  • Script

  • Sistema operativo



Altri progetti |



  • Collabora a WikipediaWikipedia in inglese contiene la voce Confronto fra shell di comando


InformaticaPortale Informatica: accedi alle voci di Wikipedia che trattano di Informatica



Popular posts from this blog

Mario Kart Wii

The Binding of Isaac: Rebirth/Afterbirth

What does “Dominus providebit” mean?