{"id":271601,"date":"2024-06-11T08:16:32","date_gmt":"2024-06-11T08:16:32","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=content_hub&#038;p=271601"},"modified":"2024-06-11T08:16:32","modified_gmt":"2024-06-11T08:16:32","slug":"cos-e-una-shell","status":"publish","type":"content_hub","link":"https:\/\/www.ninjaone.com\/it\/it-hub\/accesso-remoto\/cos-e-una-shell\/","title":{"rendered":"Che cos&#8217;\u00e8 una shell?"},"content":{"rendered":"<p>Una <strong>shell<\/strong> \u00e8 un tipo di programma per computer che consente all&#8217;utente di controllare il sistema operativo tramite un&#8217;<a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-a-command-line-interface-cli\/\" target=\"_blank\" rel=\"noopener\">interfaccia a riga di comando<\/a> (CLI) o un&#8217;interfaccia grafica (GUI). In sostanza, le shell sono modi diretti per comunicare al sistema operativo le azioni da eseguire, di solito attraverso l&#8217;automazione. Queste azioni possono andare dai backup giornalieri al monitoraggio dei sistemi e delle attivit\u00e0, fino all&#8217;esecuzione di audit di routine.<\/p>\n<h2>Shell e kernel<\/h2>\n<p>Non si pu\u00f2 parlare di shell senza prima capire come si differenziano dai kernel. In parole povere, i <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-a-kernel-overview-definition\/\" target=\"_blank\" rel=\"noopener\">kernel<\/a> sono gli aspetti fondamentali di un sistema operativo. \u00c8 il livello principale tra l&#8217;hardware e i software del computer, con il kernel responsabile dell&#8217;interazione con l&#8217;hardware.<\/p>\n<p>Le shell sono il punto di connessione intermedio tra l&#8217;utente e il kernel. Eseguono i comandi impartiti dall&#8217;utente al kernel, traducendo prima i comandi dell&#8217;utente in chiamate di sistema che richiedono al kernel di eseguire un compito specifico. Per questo motivo le shell vengono talvolta definite <em>interpreti di comandi<\/em>; interpretano ci\u00f2 che chiedi in modo che il kernel possa capire cosa fare successivamente.<\/p>\n<h2>Come funziona un programma shell?<\/h2>\n<p>Una shell pu\u00f2 essere una CLI o una GUI e non deve essere confusa con un terminale. Un terminale fornisce un prompt di comandi per lavorare con una shell, ma la shell stessa utilizza lo shell scripting per impostare l&#8217;automazione. Per esempio, in un dispositivo Windows, il terminale predefinito si chiama Prompt dei comandi (rispetto ai dispositivi macOS, in cui si chiama Terminale) e si presenta cos\u00ec:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-268595 \" src=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image2.png\" alt=\"Un prompt dei comandi per l'articolo &quot;Che cos'\u00e8 una shell?&quot;\" width=\"900\" height=\"551\" srcset=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image2.png 900w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image2-300x184.png 300w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image2-768x470.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>L&#8217;<a href=\"https:\/\/www.ninjaone.com\/blog\/how-to-use-windows-command-prompt\/\" target=\"_blank\" rel=\"noopener\">uso del Prompt dei comandi di Windows<\/a> pu\u00f2 essere relativamente semplice, ma oggi un numero sempre maggiore di utenti utilizza <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-powershell\/\" target=\"_blank\" rel=\"noopener\">PowerShell<\/a>, una shell a riga di comando e un linguaggio di scripting molto pi\u00f9 completi, per eseguire le azioni desiderate. Tieni presente che il Prompt dei comandi <em>non \u00e8<\/em> una shell, ma il terminale in cui \u00e8 possibile eseguire una shell, come PowerShell. PowerShell pu\u00f2 avere questo aspetto:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-268607 size-full\" src=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image3.png\" alt=\"Che cos'\u00e8 una shell?\" width=\"1142\" height=\"747\" srcset=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image3.png 1142w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image3-300x196.png 300w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image3-1024x670.png 1024w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image3-768x502.png 768w\" sizes=\"(max-width: 1142px) 100vw, 1142px\" \/><\/p>\n<p>Come puoi vedere, fornisce le informazioni necessarie in modo rapido e semplice, a seconda del comando. PowerShell pu\u00f2 essere eseguito su qualsiasi sistema operativo, anche se viene utilizzato principalmente sui dispositivi Windows.<\/p>\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Vuoi imparare le basi di PowerShell in soli 30 minuti?<\/p>\n<p style=\"text-align: center;\">Iscriviti <a href=\"https:\/\/go.ninjaone.com\/powershell-for-it-ninjas\" target=\"_blank\" rel=\"noopener\">a questo corso intensivo on-demand<\/a>.<\/p>\n<\/div>\n<p>\u00c8 bene notare che gli script di shell non sono chiamati nello stesso modo in tutti i sistemi operativi. Per esempio, alcuni script possono essere chiamati Sh, Bash, csh e tesh. Nei sistemi operativi VM di IBM si chiamano EXEC, mentre gli script di shell in ambiente DOS sono chiamati file batch.<\/p>\n<p>In ogni caso, tutte le shell utilizzano un terminale per visualizzare comandi leggibili dall&#8217;uomo ed eseguire l&#8217;interazione o l&#8217;operazione desiderata.<\/p>\n<h2>Diversi tipi di shell<\/h2>\n<h3>Bourne shell<\/h3>\n<p>La Bourne shell, talvolta indicata come la shell Unix originale e abbreviata in &#8220;sh&#8221;, \u00e8 stata sviluppata nel 1979 da Stephen Bourne. Contiene funzionalit\u00e0 come il controllo di flusso e una migliore gestione delle stringhe, che rendono la shell pi\u00f9 facile da usare e da capire come linguaggio di programmazione. Tuttavia, questa shell \u00e8 nota per essere poco flessibile e poco interattiva.<\/p>\n<p>Anche se \u00e8 stata sostituita dalla C Shell e dalla KornShell (tra le altre), la Bourne shell rimane ancora oggi popolare per la sua velocit\u00e0 e compattezza.<\/p>\n<h3>Riga di comando (C Shell)<\/h3>\n<p>La C Shell (&#8220;csh&#8221;) \u00e8 una shell di comando per Unix e sistemi Unix-like. \u00c8 stata creata nel 1978 dalla Berkeley Software Distribution e offre diversi miglioramenti rispetto alla precedente Bourne Shell, soprattutto per l&#8217;uso interattivo.<\/p>\n<p>Pu\u00f2 avere un aspetto simile a questo:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-268619 size-full\" src=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image1-1.png\" alt=\"Un'immagine delle shell bourne\" width=\"1160\" height=\"594\" srcset=\"https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image1-1.png 1160w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image1-1-300x154.png 300w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image1-1-1024x524.png 1024w, https:\/\/www.ninjaone.com\/wp-content\/uploads\/2024\/06\/image1-1-768x393.png 768w\" sizes=\"(max-width: 1160px) 100vw, 1160px\" \/><\/p>\n<h3>KornShell<\/h3>\n<p>I Bell Labs introdussero KornShell (&#8220;ksh&#8221;) all&#8217;inizio degli anni Ottanta. Include molte caratteristiche della C shell, ma \u00e8 notevolmente pi\u00f9 veloce. Oltre a eseguire script Bourne Shell e funzioni simili a C, dispone anche di aritmetica integrata.<\/p>\n<h3>GNU Bourne-Again shell<\/h3>\n<p>La Bourne-Again shell (&#8220;bash&#8221;), rilasciata nel 1989 da Brian Fox per il Progetto GNU, \u00e8 un&#8217;alternativa open source alla Bourne Shell. \u00c8 paragonabile a KornShell e C Shell, ma include tasti freccia mappati automaticamente per modifica e richiamo dei comandi pi\u00f9 rapidi. Bash \u00e8 oggi considerata la shell predefinita per la maggior parte delle distribuzioni Linux e utilizza il <a href=\"https:\/\/www.ninjaone.com\/blog\/what-is-bash-scripting\/\" target=\"_blank\" rel=\"noopener\">Bash scripting<\/a>.<\/p>\n<h2>Cosa fa lo shell scripting?<\/h2>\n<p>Invece di digitare manualmente ogni comando ogni volta che hai bisogno di fare qualcosa, le shell, grazie al loro scripting, possono eseguire diverse attivit\u00e0 contemporaneamente, come backup, esecuzione di programmi, ecc. Possono anche automatizzare le attivit\u00e0 ripetitive, riducendo la probabilit\u00e0 di <a href=\"https:\/\/www.ninjaone.com\/blog\/how-human-error-relates-to-cybersecurity-risks\/\" target=\"_blank\" rel=\"noopener\">errore umano<\/a>, minimizzando l&#8217;impatto potenziale dei <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-security\/what-is-dirty-data\/\" target=\"_blank\" rel=\"noopener\">dirty data<\/a> e migliorando in modo significativo l&#8217;<a href=\"https:\/\/www.ninjaone.com\/it\/blog\/come-aumentare-l-efficienza-it-della-tua-organizzazione\/\" target=\"_blank\" rel=\"noopener\">efficienza IT<\/a>.<\/p>\n<p>Detto questo, gli shell script non sono progettati per compiti complessi o su vasta scala. Inoltre, come succede per le lingue, possono richiedere del tempo per essere padroneggiati. Una imperfezione di sintassi, per esempio, pu\u00f2 causare errori importanti, e dovrai esaminare ogni comando per capire dove si \u00e8 verificato l&#8217;errore.<\/p>\n<h3>Vantaggi della shell<\/h3>\n<p>Utilizzare shell pu\u00f2 permettere ai tecnici IT di avere pi\u00f9 tempo per concentrarsi su progetti maggiormente strategici. Oltre ad aiutarti a svolgere diverse attivit\u00e0, le shell ti consentono anche di personalizzare i tuoi script in base agli obiettivi e alle esigenze specifiche.<\/p>\n<h3>Svantaggi delle shell<\/h3>\n<p>Le shell possono essere impegnative dal punto di vista della sintassi. Un singolo errore pu\u00f2 essere difficile da identificare e costoso nel lungo periodo. Per chiarire, la sintassi delle shell \u00e8 simile a quella utilizzata nel linguaggio naturale. Si riferisce all&#8217;ordine delle operazioni e alla disposizione di parole e frasi.<\/p>\n<h2>Shell per una maggiore efficienza IT<\/h2>\n<p>Le shell e, di conseguenza, il relativo shell scripting potrebbero non essere la prima cosa a cui pensi quando stai valutando soluzioni di <a href=\"https:\/\/www.ninjaone.com\/it\/blog\/cosa-e-la-gestione-endpoint\/\" target=\"_blank\" rel=\"noopener\">endpoint management<\/a>. Tuttavia, le shell svolgono un ruolo essenziale nel modo in cui i tecnici IT possono automatizzare le attivit\u00e0 e fornire un servizio migliore a te, alla tua organizzazione e ai tuoi utenti finali. Anche se non \u00e8 necessario padroneggiare le shell, dovresti comunque comprenderne le basi per ottenere risultati aziendali migliori.<\/p>\n","protected":false},"author":152,"featured_media":0,"parent":0,"template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"hub_categories":[4191],"class_list":["post-271601","content_hub","type-content_hub","status-publish","hentry","content_hub_category-accesso-remoto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/content_hub\/271601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/content_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/content_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/152"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=271601"}],"wp:term":[{"taxonomy":"content_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/hub_categories?post=271601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}