I comandi

()

La sintassi tipica dei comandi UNIX (builtin e file eseguibili) è la seguente

comando <opzioni> <argomenti>

Opzioni

Sono opzionali e influiscono sul funzionamento del comando.

Consistono generalmente di un hyphen (-) seguito da una sola lettera (Es. ls -l).

Hanno anche una forma estesa (Es. ls –formatlong).

Possono avere un argomento (Es. dvips -o p.ps p.dvi).

Spesso più opzioni possono essere raggruppate insieme dopo un solo hyphen (Es. ls -al).

Argomenti

Si possono avere più argomenti o nessuno. Alcuni argomenti sono opzionali. Se non specificati assumono valori di default.

Descrizione

Il processore opera le sue elaborazioni in termini di lettura/scrittura sui dispositivi hardware come la memoria, i registri e altri dispositivi ausiliari di elaborazione, come le unità di calcolo in virgola mobile. Ogni operazione che compie una modifica in questo senso, come ad esempio l’assegnazione o la lettura del valore di una variabile o la sua modifica, è un’istruzione.

I programmi, da quelli scritti in linguaggi di programmazione di basso livello come l’assembly a quelli di livello più alto, dal C a Java, contengono molte informazioni, necessarie e non alla loro compilazione o interpretazione come possono essere i commenti o la dichiarazione di variabili che, nei fatti, non corrispondono a nessuna operazione di elaborazione ma che servono per altri scopi, per esempio documentativi o per allocare la memoria fisica destinata a contenere i valori associati alle variabili.

Blocco di istruzioni

Un sottoinsieme autoconsistente di istruzioni adiacenti la cui esecuzione complessiva equivale all’esecuzione di una singola macroistruzione complessa viene denominato blocco di istruzioni.

Nell’ambito dei paradigmi di programmazione quali quello strutturato e quello procedurale in ogni blocco di istruzioni è presente un punto di inizio (o di ingresso) e un punto di fine (o di uscita).

In quest’ottica di astrazione, un blocco di istruzioni può essere considerato l’equivalente di una istruzione e possono essere introdotte le seguenti regole ricorsive:

Ogni istruzione può essere scomposta in istruzioni più semplici, fino ad arrivare a livello di linguaggio macchina in cui l’istruzione non può essere ulteriormente scomposta (processo top-down).
Ogni istruzione può essere raggruppata all’interno di un’istruzione più complessa, fino ad arrivare al livello dell’intero programma (processo bottom-up).
Un tipico esempio di blocco di istruzioni sono le strutture di controllo.

I comandi UNIX si comportano come FILTRI, un filtro è un programma che riceve un ingresso
da un input e produce il risultato su uno o più output

Formato dei comandi
tipicamente: nome –opzioni argomenti

esempio: ls –l temp.txt

Convenzione nella rappresentazione della sintassi comandi:

–  se un’opzione o un argomento possono essere omessi, si indicano tra quadre [opzione]
–  se due opzioni/argomenti sono mutuamente esclusivi, vengono separati da | arg1 | arg2
–  quando un arg può essere ripetuto n volte, si aggiungono dei puntini arg…

Descrizione
Questo tipo di approccio deriva dalla modalità di interazione con calcolatori di generazioni precedenti gli odierni, che avveniva attraverso terminali testuali non in grado di compiere alcuna elaborazione e connessi ad un elaboratore centrale (sistema mainframe).

Attualmente un’interfaccia di tipo CLI si ottiene per mezzo di un programma che permette all’utente di interagire digitando opportuni comandi su un emulatore di terminale testuale: esempio tipico sono le shell, ma anche altri programmi utilizzano questo approccio.

Nei sistemi operativi moderni usati nei personal computer, al posto della CLI, in buona parte, c’è l’interfaccia grafica (anche conosciuta come GUI, sigla dell’inglese graphical user interface) con caratteristiche tipicamente user friendly.

Spesso in sistemi con duplice possibilità di interazione (grafica e testuale) esiste una stretta correlazione tra interfaccia grafica e interfaccia testuale: tipicamente tutto ciò che può essere fatto tramite interfaccia grafica può essere svolto tramite interfaccia testuale a riga di comando con gli opportuni comandi/istruzioni e viceversa. In molti casi anzi le operazioni su interfaccia grafica sono mappate (o tradotte) direttamente sui comandi dell’interfaccia testuale, che rappresenta dunque il vero motore o cuore del sistema, con la parte grafica che assume dunque a tutti gli effetti il significato di semplice interfaccia uomo-macchina user-friendly.

L’interfaccia a riga di comando è ancora molto diffusa per il controllo e la configurazione di dispositivi specializzati, come router, switch, server e stampanti di rete, ma anche per connettersi remotamente ad altri elaboratori in una rete di calcolatori, dotati di un opportuno interprete di comandi (come bash o CSH): in tal caso, vengono impiegati protocolli come Telnet o SSH.

Funzionamento
Il programma tipicamente non esegue alcunché fino a quando non riceve un comando di input dall’utente. Il cursore lampeggiante o evidenziato, detto prompt, indica la posizione nella schermata dove verrà eventualmente scritto il comando impartito dall’utente.

I comandi devono essere impartiti in forma di righe di testo rispettando una precisa sintassi. Spesso un comando presenta delle cosiddette opzioni, da inserire dopo il comando stesso, che specificano una funzionalità specifica o aggiuntiva del comando stesso. Dopo aver composto una riga di comando bisogna digitare il tasto “Invio” o “Enter”.

A questo punto, il programma analizza (interpreta) la riga di comando, e se questa è stata composta in modo sintatticamente corretto la esegue, altrimenti questi non esegue il comando restituendo all’utente una segnalazione del primo errore incontrato nella lettura e ripartendo dal prompt. Come effetto dell’esecuzione di un comando, si può ottenere la scrittura di un testo di risposta da parte del programma sul terminale o su un diverso dispositivo di output.

CLI su alcuni sistemi operativi
In ambiente Windows NT la CLI è ottenuta tramite il programma “Prompt dei comandi” (cmd.exe), che richiama nella grafica l’interfaccia del sistema operativo MS-DOS, Command.com. Una shell più avanzata in ambiente Windows è PowerShell.

In Unix, Linux e sistemi analoghi si parla di “terminale”, perché l’interfaccia visuale è la stessa; la shell è il programma con interfaccia a riga di comando, che viene eseguito all’interno di un terminale testuale per impartire comandi al sistema. Possono esistere ed essere utilizzate contemporaneamente differenti shell (Bash, Korn shell, C shell).

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?