Traduzioni: English - Français - Italiano - Русский
Una interfaccia a riga di comando o CLI è un metodo per interagire con un computer dandogli righe di comandi testuali (cioè una sequenza di caratteri), o dall'input con la tastiera o da uno script. A volte ci si riferisce ad essa anche con il termine CLUE, per Command Line User Environment (ambiente utente a riga di comando). Nella sua forma più semplice, l'utente digita un comando dopo che il computer mostra un carattere di prompt. Il sistema del computer (cioè il programma che accetta quell'input) esegue poi il comando dato. Il risultato può essere un output testuale o l'inizializzazione e l'esecuzione di un qualche programma, la modifica dell'output grafico su un monitor o una stampante, oppure una modifica in un filesystem (per esempio la cancellazione, modifica o creazione di un file).
Il termine viene solitamente usato in contrasto con l'interfaccia utente grafica (GUI) in cui i comandi sono tipicamente dati muovendo un puntatore (come il puntatore del mouse) e/o premendo un tasto (cioè "cliccando", spesso su un tasto montato sul mouse).
I programmi che implementano queste interfacce sono spesso chiamati interpreti della riga di comando. Esempi di tali programmi includono le varie diverse shell, VMS DCL (Digital Command Language) e cose simili come command.com di CP/M e DOS, entrambi basati pesantemente sulle interfacce dei sistemi operativi RSX e RSTS di DEC (che erano anch'esse interfacce a riga di comando).
Ci sono anche altri programmi che usano la CLI. Il programma di disegno CAD AutoCAD ne è un esempio molto noto. In alcuni ambienti informatici, come il sistema operativo Oberon o l'interfaccia utente Smalltalk, la maggior parte del testo che appare sullo schermo può essere usata per dare comandi.
I comandi dati su un'interfaccia a riga di comando hanno spesso la forma
faiQualcosa come suUnFile
oppure
faiQualcosa come < FileDiInput > FileDiOutput
faiQualcosa corrisponde ad un verbo, come ad un avverbio (descrive come il comando deve essere eseguito in questa situazione: per esempio, se deve essere particolarmente prolisso ("verbose") o particolarmente silenzioso ("quiet")) e suUnFile corrisponde ad un oggetto (spesso uno o più file) su cui il comando deve essere eseguito. Il carattere '>' isolato nel secondo esempio è un carattere di ridirezione, che dice al sistema operativo (cioè di solito ad un interprete shell di comandi) di inviare l'output del comando che lo precede (cioè quello alla sinistra di '>') ad una qualche altra posizione (cioè il file specificato alla destra di '>'). Un altro carattere di ridirezione comune ed importante è la ?pipe ('|'), che dice alla CLI di trattare l'output di questo comando come input per un altro; questo può essere un meccanismo molto potente per l'utente come spiegato in Pipe_(Unix) e Pipes_and_filters.
Vantaggi della interfaccia a riga di comando
Anche se i nuovi utenti sembrano imparare come eseguire le operazioni più comuni più velocemente con la GUI, le CLI ben progettate hanno svariati vantaggi:
- Gli utenti avanzati possono essere in grado di usare una riga di comando più velocemente di una GUI per operazioni semplici, specialmente con l'avvento dell'autocompletamento con TAB. I programmi pensati per essere eseguiti dalla riga di comando spesso hanno appositamente nomi molto corti così da poter essere invocati con solo poche battute di tasti.
Tutte le opzioni e le operazioni sono richiamabili in una forma coerente, solo un "livello" più in là del comando basse. Con la maggior parte delle GUI, le operazioni e le opzioni disponibili spesso appaiono in menu diversi con diversi modelli d'uso. Possono anche essere separati su svariati livelli diversi del menu. In entrambi i casi, applicazioni (o utilità) differenti possono avere una situazione diversa; c'è perciò poco vantaggio in entrambi gli approcci. Entrambi infastidiranno gli utenti.
Tutte le opzioni e le operazioni sono controllate più o meno allo stesso modo. Quel "più o meno" è una delle comuni accuse mosse alle CLI: capire ed effettuare una operazione insolita dovrebbe essere non più difficile di una comune, ma in pratica può richiedere di imparare una sintassi mai incontrata prima. Tuttavia, poche GUI offrono un accesso, anche solo paragonabile, alla loro intera gamma di opzioni disponibili.
Le CLI possono spesso comportarsi da linguaggi di scripting (vedere script shell) e possono effettuare operazioni in modalità di elaborazione di massa, senza l'interazione dell'utente. Ciò significa che, una volta che un'operazione è analizzata e capita, uno "script" che implementa quelle nozioni può essere scritto e salvato. L'operazione potrà successivamente essere effettuata senza dover più fare sforzi di analisi e progettazione. Con una GUI, gli utenti devono ogni volta riniziare daccapo, dato che lo scripting GUI (sempre se disponibile) è quasi sempre più limitato, anche se a volte le macro possono essere usate in modo simile. I comandi semplici non hanno nemmeno bisogno di uno script reale, dato che al comando completo può di solito essere assegnato un nome (un alias) e può essere eseguito semplicemente digitando quel nome nella CLI.
I comandi in script (e il testo nei file) sono facilmente documentabili. La documentazione può includere più delle funzionalità degli script. Altri importanti elementi da documentare includono quando lo script debba essere eseguito, perc cosa è necessario, che scelte sono state fatte nel decidere cosa doveva fare e come doveva farlo e altre informazioni simili essenziali per capire cosa stia succedendo e perché. Una documentazione completa si rivela a lungo termine preziosissima per l'amministrazione di sistema. Anche corte annotazioni possono essere di grande aiuto. Le GUI di solito non forniscono mezzi con cui documentare le impostazioni e di conseguenza spesso il motivo per cui le impostazioni sono quello che sono è un mistero.
- Gli script (ed altri file di testo) possono essere facilmente copiati da sistema a sistema ed è facile creare semplici modifiche globali usando le funzioni standard per ricerca e sostituzione nel testo. Ciò può essere di grande aiuto nell'amministrazione di più sistema. Le interfacce grafiche solitamente non forniscono un mezzo per copiare le configurazioni al fine di fare backup, duplicazioni o a qualsiasi altro scopo, o per ricreare configurazioni simili su svariate macchine.
Collegamenti
"In the Beginning was the Command Line" Di Neal Stephenson - Un'introduzione gentile (in inglese) alle differenze tra l'interfaccia a riga di comando e la GUI e la storia del loro sviluppo.
CategoryCommandLineInterface | CategorySystemAdministration | CategoryRedundant: merge with CommandLineInterface, other Shell/CLI pages