Shell Unix: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
grammatica
 
(11 versioni intermedie di 10 utenti non mostrate)
Riga 1:
{{F|informaticaprogrammazione|marzo 2016|Nessuna fonte}}
 
In [[informatica]] laLa '''Shellshell Unixunix''' ('''Unix-Shell''', abbreviato anche '''shell''') è l'[[interfaccia utente]] dei [[Unix|sistemi Unix]] e [[Unix-like]]. Tale interfaccia è di tipo [[riga di comando|testuale]]: in essa, l'utente può immettere dei [[istruzione (informatica)|comandi]] di testo, che vengono [[interprete (informatica)|interpretati]] e inviati al sistema: anche l'[[output]] di testo è pure mostrato nella stessa interfaccia. Si parla dunque anche di "interprete a linea di comando", termine introdotto da [[LuisLouis Pouzin]] negli anni 1964/65 a proposito dei concetti cardine dell'implementazione del sistema [[Multics]].
 
==Descrizione==
 
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 interprete di shell unix, in particolare su [[Linux]] e [[Mac OS|Mac Os]], è la "bash-shell" (come viene comunemente chiamata la [[Bourne shell|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.
Riga 13 ⟶ 12:
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 interpretare dalla shell (ad esempio, nella bash è un $). È 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 utilizabiliutilizzabili 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: #). È 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).
Riga 20 ⟶ 19:
Esempio di esecuzione di un semplice calcolo tramite shell (il carattere $, se posto a inizio riga, indica il ''prompt'' del comando, mentre la riga successiva riporta l'output dell'esecuzione del comando stesso):
 
<sourcesyntaxhighlight lang="bash">
$ echo $((2+2))
4
</syntaxhighlight>
</source>
 
Esempio di combinazione di comandi: nella prima istruzione, l'ouputoutput del comando di sistema operativo ''date'' viene memorizzato (tramite l'operazione di assegnamento, con l'utilizzo di "=") in una variabile creata ad hoc e chiamata ''data_di_oggi'', nella seconda istruzione il valore (indicato con il carattere riservato $, che precede il nome della variabile) di tale variabile viene visualizzato nella shell.
<sourcesyntaxhighlight lang="bash">
$ data_di_oggi=$(date)
$ echo $data_di_oggi
Sab 19 Mar 2016 19:43:58 CET
</syntaxhighlight>
</source>
 
== Bibliografia ==
* Newham, Cameron, and Bill Rosenblatt. Learning the bash shell: Unix shell programming. " O'Reilly Media, Inc.", 2005.
 
==Voci correlate==
* [[Unix]]
* [[Unix-like]]
 
== Altri progetti ==
{{interprogetto}}
 
{{Comandi Unix}}
{{portale|informatica}}
 
[[Categoria:Linguaggi di scripting]]