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 |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(77 versioni intermedie di 61 utenti non mostrate) | |||
Riga 1:
{{F|sistemi operativi|marzo 2013}}
[[File:Gnome-3.18.2-showing-overview.png|thumb|upright=1.4|L'interfaccia grafica di [[GNOME]] dei sistemi [[GNU/Linux]] e [[Solaris (sistema operativo)|Solaris]]]]
La '''shell''' (detta in italiano '''interprete dei comandi'''), in [[informatica]], è la componente fondamentale di un [[sistema operativo]] che permette all'utente il più alto livello di interazione con lo stesso. Tramite la shell è possibile impartire [[istruzione (informatica)|comandi]] e richiedere l'avvio di altri [[Programma (informatica)|programmi]]. Insieme al [[kernel]], la shell costituisce una delle componenti [[software]] imprescindibili di un sistema operativo.
Il nome "shell" proviene dall'[[lingua inglese|inglese]] e significa "guscio", a conferma del 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. L'interfaccia di una ''shell'' può essere [[Interfaccia grafica|grafica]] (GUI), testuale ([[Text-based user interface|TUI]]) o [[Interfaccia a riga di comando|a riga di comando]] (CLI).
Nei moderni sistemi è possibile utilizzarne più di una nello stesso ambiente.
== 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 (informatica)|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 [[Ambiente desktop|ambienti desktop]] (''desktop environment''), che forniscono agli utilizzatori un ambiente grafico da cui è possibile gestire [[file]] e avviare programmi.
=== Shell testuali ===
{{vedi anche|Interfaccia a riga di comando}}
[[File:Award_BIOS_setup_utility.png|thumb|Il setup del [[BIOS]] è molto spesso a interfaccia testuale]]
[[File:Windows_PowerShell_1.0_PD.png|thumb|[[Windows PowerShell]] ha una tipica interfaccia a riga di comando.]]
Una ''shell'' testuale (o interprete dei comandi) può definirsi in due varianti.
La prima è costituita da un ambiente simile alle interfacce grafiche, comprensivo quindi di finestre e pulsanti ma dall'assenza di qualsiasi componente grafica. Si utilizza tramite tastiera e, talvolta, mouse.
La seconda è 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]].
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 (informatica)#Funzione pipe nelle shell testuali|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 secondo piano]] 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}}[https://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}} [https://www.mkssoftware.com/ MKS Toolkit]</ref>
Il comando per cambiare la shell di [[login]] di un utente è ''[[chsh]]''.
=== Shell grafiche ===
{{vedi anche|Ambiente desktop}}
[[File:Interfaccia_Windows_7_Basic.png|thumb|[[File Explorer]] di [[Microsoft Windows]]]]
[[File:Finder_macOS_Sierra.png|thumb|[[Finder]] di [[MacOS]]]]
L'evoluzione grafica delle shell è rappresentata dalle cosiddette [[Interfaccia grafica|interfacce grafiche]] o GUI (''Graphic User Interface''), 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ù [[Usabilità|facile da usare]].
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 [[Istruzione (informatica)|comando]] ''<nowiki>shell:history</nowiki>'' accede una [[Cartella virtuale|cartella speciale di Windows]] che contiene i file locali modificati dall'utente, e per la quale è possibile impostare la creazione periodica di un [[Ripristino configurazione di sistema|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<ref>{{cita web | https://www.wikihow.it/Accedere-alla-Cronologia-di-Internet-Explorer | titolo = Come accedere alla cronologia nel computer | sito = [[Wikihow]] | citazione =| lingua = it, en | accesso = 31 Ottobre 2018 | urlarchivio = | dataarchivio = | urlmorto = no}}</ref>, o si dispone di [[Privilege escalation|privilegi equivalenti]]<ref>{{cita web | url = https://www.winhelponline.com/blog/shell-commands-to-access-the-special-folders/ | titolo = Istruzioni Shell per aprire le Cartelle Speciali utente di 10/8/7/Vista/XP | lingua = en | sito = winhelponline[[.com]] | accesso = 31 Ottobre 2018 | urlarchivio = | dataarchivio = | urlmorto = no}}</ref>.
== Shell più diffuse ==
=== Shell testuali ===
[[File:Cmd_(windows).png|thumb|[[cmd.exe]] di [[Windows NT]]]]
* [[Bash]] (shell tipica dei sistemi [[GNU/Linux]])
* [[Bourne shell]] (shell dei primi sistemi [[Unix]])
* [[C shell]] (shell un tempo popolare su sistemi Unix)
* [[zsh|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 ===
[[File:CDE_2012_on_Linux.png|thumb|[[Common Desktop Environment]] di [[Unix]]]]
* [[GNOME]] (tipica dei sistemi [[GNU/Linux]] e [[Oracle Solaris|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 (software)|Unity]] (precedente shell ufficiale di [[Ubuntu]])
== Note ==
<references/>
== Voci correlate ==
* [[Interfaccia a riga di comando]]
* [[Interfaccia utente]]
* [[One-liner]]
* [[Esplora file]]
* [[Shell Unix]]
* [[Script]]
* [[Sistema operativo]]
* [[PowerShell]]
== Altri progetti ==
{{interprogetto|preposizione=sulla}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||shell}}
{{Portale|Informatica}}
[[Categoria:Interfaccia utente]]
[[Categoria:Unix]]
|