Shell (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
←Pagina sostituita con 'Anna e antonella sono le mie preferite' Etichetta: Rimozione di avvisi di servizio |
m Annullate le modifiche di 130.192.251.44 (discussione), riportata alla versione precedente di 193.206.101.144 |
||
Riga 1:
{{F|informatica|marzo 2013}}
La '''shell''' (o '''terminale'''), in [[informatica]], è la parte di un [[sistema operativo]] che permette agli utenti di interagire con il sistema stesso, impartendo [[istruzione (informatica)|comandi]] e richiedendo l'avvio di altri [[Programma (informatica)|programmi]]. Insieme al [[kernel]] costituisce una delle componenti principali di un sistema operativo. Il suo nome (dall'[[lingua inglese|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.
== Caratteristiche ==
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 (informatica)|terminale]] o un [[emulatore di terminale]] (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 è un programma dotato di un'[[interfaccia a riga di comando]], che viene eseguito all'interno di un [[terminale (informatica)|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]].
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#Funzione pipe nella Shell|pipe]]'' e la [[redirezione]]. I programmi Unix più propensi ad essere collegati in questo modo sono detti [[Filtro (Unix)|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 [[esecuzione in background|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<ref>{{en}}[http://technet.microsoft.com/it-it/library/bb463212%28en-us%29.aspx Introduction to Microsoft Windows Services for UNIX 3.5]</ref> o ancora lo MKS Toolkit.<ref>{{en}} [http://www.mkssoftware.com/ MKS Toolkit]</ref>
Il comando per cambiare la shell di login di un utente è ''[[chsh]]''.
== Shell grafiche ==
L'evoluzione grafica delle shell è rappresentata dalle cosiddette [[Interfaccia grafica|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.
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]].
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 grandi 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 [[Mac OS]]) e [[Windows Explorer]] (nei sistemi Microsoft Windows)
== Shell più diffuse ==
=== Shell testuali ===
* [[cmd.exe]] (shell del sistemi operativi della famiglia [[Windows NT]])
* [[command.com]] (shell del sistema operativo [[MS-DOS]] e di alcuni sistemi [[Microsoft Windows]])
* [[Bash]] (shell tipica dei sistemi [[GNU/Linux]])
* [[Bourne shell]] (shell dei primi sistemi [[Unix]])
* [[C shell]] (shell un tempo popolare su sistemi [[Unix]])
* [[Debian Almquist shell]] (shell usata in [[Debian]] e derivati per eseguire gli script di sistema)
* [[Korn shell]] (shell comunemente disponibile su sistemi [[Unix]])
=== Shell grafiche ===
* [[Common Desktop Environment]] (normalmente disponibile su sistemi [[Unix]])
* [[Finder]] (la shell dei sistemi [[Mac OS]])
* [[GNOME]] (tipica dei sistemi [[GNU/Linux]] e [[Solaris (sistema operativo)|Solaris 10]])
* [[KDE]] (tipica dei sistemi [[GNU/Linux]])
* [[Xfce]] (tipica dei sistemi [[GNU/Linux]])
* [[Windows Explorer]] (la shell dei sistemi [[Microsoft Windows]])
* [[GreenGnome]] (shell replacement per sistemi [[Microsoft Windows]])
== Note ==
<references/>
== Voci correlate ==
* [[Interfaccia a linea di comando]]
* [[Interfaccia utente]]
* [[Script]]
* [[Sistema operativo]]
{{Portale|Informatica}}
[[Categoria:Interfaccia utente]]
[[Categoria:Sistemi operativi]]
[[Categoria:Unix]]
[[en:Shell (computing)]]
[[fr:Shell (informatique)]]
|