Sistemas UNIX  -Shell UNIX-System - SHELL Systèmes UNIX - Le shell Sistema UNIX: El shell UNIX system - The shell

Introduzione allo shell

L'iterprete di comandi è l'interfaccia tra l'utente e il sistema operativo, da cui il suo nome inglese «shell», che significa «conchiglia».

Lo shell, un\'interfaccia tra l\'OS e l\'utente

Lo shell è quindi incaricato di fare da intermediario tra il sistema operativo e l'utente grazie alle linee di comandi inserite da quest'ultimo. Il suo ruolo consiste nel leggere la linea di comando, interpretarla, eseguirla e poi riportare il risultato s

Lo shell è quindi un file eseguibile incaricato di interpretare i comandi, trasmetterli al sistema e riportare il risultato. Esistono più shell, i più diffusi sono sh (detto «Bourne shell»),bashBourne again shell»), cshC Shell»), TcshTenex C shell»), kshKorn shell») e zshZero shell»). Il loro nome corrisponde generalmente al nome dell'eseguibile.

Ogni utente ha uno shell di default, che sarà lanciato all'apertura di un invito di comando. Lo shell di default è precisato nel file di configurazione /etc/passwdnell'ultimo campo della linea corrispondente all'utente. E' possibile cambiare lo shell in una sessione eseguendo semplicemente il file eseguibile corrispondente, ad esempio :

/bin/bash

Invito di comando (prompt)

Lo shell si inizializza leggendo la propria configurazione globale (in un file della cartella /etc/), poi leggendo la configurazione propria all'utente (in un file nascosto, il cui nome comincia con un punto, posto nella cartella di base dell'utente, cioè /home/nome_dell_utente/.file_di_configurazione), poi visualizza un invito di comando (in inglese prompt) come segue :

terminale:/cartella/corrente$
Da default nella maggioranza degli shell il prompt è composto dal nome del terminale, seguito da due punti (:), dalla cartella corrente, poi da un carattere che indica il tipo di utente connesso  :
  • «$» indica che si tratta di un utente normale
  • «#» indica che si tratta dell'amministratore, detto «root»

Nozione di linea di comando

Una linea di comando è una stringa di caratteri costituita da un comando, corrispondente ad un file eseguibile del sistema oppure da un comando dello shell nonché dagli argomenti (parametri) opzionali :

ls -al /home/jf/
Nel comando qui sopra, ls è il nome del comando, -al e /home/jf/sono degli argomenti. Gli argomenti che cominciano con - sono detti opzioni. Per ogni comando esiste un certo numero di opzioni che possono essere dettagliate digitando uno dei comandi seguenti :
comando --help
comando -?
man comando

Entrate-uscite standard

All'esecuzione di un comando, viene creato un processo. Questo va allora ad aprire tre flussi :

  • stdin, detto entrata standard, nel quale il processo va a leggere i dati in entrata. Da default stdin corrisponde alla tastiera; STDIN è identificato dal numero 0;
  • stdout, detto uscita standard, nel quale il processo va a scrivere i dati in uscita. Da default stdout corrisponde allo schermo; STDOUT è identificato dal numero 1;
  • stderr, detto errore standard, nel quale il processo va a scrivere i messaggi di errore. Da default stderr corrisponde allo schermo. STDERR è identificato con il numero 2;

entrate-uscite standard: STOUT, STDIN, STDERR

Da default quando si esegue un programma, i dati sono quindi letti partendo dalla tastiera e il programma invia la sua uscita e i suoi errori sullo schermo, ma è possibile leggere i dati partendo da qualsiasi periferica in entrata, anche da un file e invi

Ridirezione

Linux, come tutti i sistemi di tipo Unix, ha dei meccanismi che permettono di ridirigere le entrate-uscite standard verso dei file.

Quindi, l'uso del carattere «>» permette di ridirigere l'uscita standard di un comando posto a sinistra verso il file posto a destra :

ls -al /home/jf/ > toto.txt
echo "Toto" > /etc/miofilediconfigurazione
Il comando seguente è equivalente ad una copia di file :
dato che toto > toto2
La ridirezione «>» ha come scopo di creare un nuovo file. Così, se esistesse un file con lo stesso nome, questo sarà eliminato. Il comando seguente crea semplicemente un file vuoto :
> file
L'uso di un doppio carattere «>>» permette di concatenare l'uscita standard verso il file, cioè di aggiungere l'uscita dopo il file, senza eliminarlo.

In modo analogo, il carattere «<» indica una ridirezione dell'entrata standard. Il comando seguente invia il contenuto del file toto.txt in entrata del comando cat, il cui scopo è di visualizzare il contenuto sull'uscita standard (esempio inutile ma formativo) :

cat < toto.txt

Infine l'uso della ridirezione «<<» permette di leggere sull'entrata standard fino a quello che la linea posta a destra sia incontrata. Così, l'esempio seguente leggerà l'entrata standard fino a che non trovi la parola STOP, poi visualizzerà il risultato :

cat << STOP

Tubi di comunicazione (pipes)

I tubi (in inglese « pipes », letteralmente tubi) costituiscono un meccanismo di comunicazione proprio a tutti i sistemi UNIX. Un tubo, simbolizzato da una sbarra verticale (carattere «|»), permette di attribuire l'uscita standard di un comando all'entrata standard di un altro, come un tubo

Così nell'esempio seguente, l'uscita standard del comando ls -al è inviata sul programma sort incaricato di smistare per ordine alfabetico :

ls -al | sort

In questo modo è possibile incatenare un certo numero di comandi per tubi successivi. Nell'esempio seguente il comando visualizza tutti i file della cartella corrente, seleziona le linee che contengono la parola "zip" (grazie al comandogrep) e conta il numero di linee totale :

ls -l | grep zip | wc -l


Ultime modificazione ilvenerdì 6 febbraio 2009 alle 16:52:01.Questo documento intitolato «  » da Kioskea (it.kioskea.net) è reso disponibile sotto la licenza Creative Commons. È possibile copiare, modificare le copie di questa pagina, alle condizioni previste dalla licenza, come questa nota appare chiaramente.
Migliori risposte per « Sistemi UNIX Lo shell » in :
Linux - Lo shell Vedi Introduzione allo shell L'interprete di comandi è l'interfaccia tra l'utente e il sistema operativo, da cui il suo nome in inglese «shell», che significa «conchiglia». Lo shell è così incaricato di fare da intermediario tra il sistema operativo...
UNIX - I file Vedi Introduzione ai file Unix Sui sistemi UNIX ogni elemento è rappresentato sotto forma di file. L'insieme dei file è strutturato intorno ad un'unica arborescenza la cui base, detta root, è siglata "/». Tipi di file I sistemi UNIX definiscono...
Introduzione ai sistemi UNIX Vedi Il sistema UNIX Il sistema Unix èu un sistema operativo multiutente, multitask, il che significa che permette ad un computer mono o multiprocessoredi far eseguire simultaneamente più programmi da uno o più utenti. Ha uno o più interpreti di...
SHELL BASH - GUIDA Livello Principiante VediIntroduzione II. Cosa è la shell ? III. Come accedere alla linea di comando IV. Le console virtuali Esempio : Accedere alla console 3 dall'interfaccia grafica V. Connessione dentro una console virtuale Esempio: VI. Il prompt di comandi...
Eseguire uno script shell VediEseguire uno script Per poter eseguire uno script o un programma in riga di comando ci sono molte possibilità : *1. Il percorso assoluto *2. Il percorso relativo *3. Modificare la variabile PATH *Nota: Lo Sha...
Gnome - Cambiare rapidamente lo sfondo del desktop VediCambiare rapidamente lo sfondo del desktop Si nota che per cambiare lo sfondo del desktop (scrivania) di Nautilus, si deve aprire l'immagine con il visualizzatore poi “immagine > Imposta come sfondo”, ciò non è rapido ne pratico... Però esistono...
Comandi UNIX VediTabella dei principali comandi UNIX Comando Unix Descrizione Opzioni ls elenca il contenuto di una cartella -a Visualizza tutti i file, compresi si file nascosti -l Visualizza un listing dettagliato -R Visualizza i file in...
Partizione - Partizione di un disco rigido VediChe cos'è una partizione? La partizione di un disco rigido si fa dopo il formattaggio hardwaredi quest'ultimo e prima del formattaggio software. Essa consiste nel creare delle zone sul disco i cui dati non saranno mescolati. Questo serve...
Codice ASCII VediLa codifica delle informazioni Il morse è stato la prima codifica a permettere una comunicazione a lunga distanza. E' stato 'Samuel F.B.Morse a metterlo a punto nel 1844. Questo codice è composto da punti e tratti (una specie di codifica binaria...