command-line interface (CLI)

Che cos’è un’interfaccia a riga di comando?

Un’interfaccia a riga di comando (CLI) è un’interfaccia utente basata su testo (UI) utilizzata per eseguire programmi, gestire file del computer e interagire con il computer. Le interfacce della riga di comando sono anche chiamate interfacce utente della riga di comando, interfacce utente della console e interfacce utente dei caratteri. CLIs accetta come comandi di input immessi da tastiera; i comandi richiamati al prompt dei comandi vengono quindi eseguiti dal computer.

Oggi, la maggior parte dei fornitori offre l’interfaccia utente grafica (GUI) come impostazione predefinita per i sistemi operativi (SO) come Windows, Linux e macOS. La maggior parte degli attuali sistemi basati su Unix offre sia un’interfaccia a riga di comando che un’interfaccia utente grafica.

Il sistema operativo MS-DOS e la shell dei comandi nel sistema operativo Windows sono esempi di interfacce a riga di comando. Inoltre, le piattaforme di sviluppo del linguaggio di programmazione come Python possono supportare interfacce a riga di comando.

La riga di comando sceso in popolarità in seguito all’introduzione di GUI basata su personal computer, Sistemi operativi, come Microsoft Windows e Apple “classica” del Mac OS nel 1980. La riga di comando rimane un importante strumento per i professionisti IT, sviluppatori, amministratori di sistema, amministratori di rete e molti altri che preferiscono una più precisa e riproducibili interfaccia per i loro sistemi.

Che cos’è una shell?

In informatica, un programma shell fornisce l’accesso ai componenti di un sistema operativo. La shell offre agli utenti (o altri programmi) un modo per ottenere “dentro” il sistema per eseguire programmi o gestire configurazioni. La shell definisce il confine tra interno ed esterno.

I seguenti sono i due tipi di shell del sistema operativo:

  • Le shell basate su CLI offrono agli utenti una modalità concisa ed efficiente di interazione con il sistema operativo, senza richiedere il sovraccarico di un’interfaccia utente grafica.
  • Le shell basate su GUI sono considerate più facili da usare per i principianti, ma includono anche una shell basata su CLI per gli amministratori di sistema o gli utenti esperti che preferiscono interagire al prompt dei comandi.

Bash è la shell da riga di comando più comunemente utilizzata per sistemi operativi basati su Unix, incluso Linux.

Il software che gestisce l’interfaccia della riga di comando è comunemente indicato come un interprete di linguaggio di comando, un processore di comando o interprete di comandi. Due ben noti shell CLI sono PowerShell per Windows e Bash per Linux e macOS.

Le shell sono il livello più esterno del sistema operativo e sono spesso separate dal kernel del sistema operativo sottostante. Una shell funziona come un’applicazione e può essere sostituita secondo necessità. Un sistema operativo può avere più di una shell disponibile, come nei seguenti esempi:

  • Microsoft Windows include l’applicazione Prompt dei comandi e l’applicazione PowerShell, entrambi i quali possono essere utilizzati per interagire direttamente con il computer. Il sottosistema Windows per Linux fornisce anche una CLI con accesso al sistema sottostante.
  • Linux e altri sistemi operativi basati su Unix di solito forniscono la Shell Bourne-Again (bash) come shell predefinita. Altre shell, tra cui la shell C, la shell Z e altre, possono essere configurate come shell di sistema predefinita.

Poiché la shell è solo un livello sopra il sistema operativo, gli utenti possono eseguire operazioni che non sono disponibili in altri tipi di interfaccia, come lo spostamento di file all’interno delle cartelle di sistema e l’eliminazione di file bloccati.

Per ottenere il massimo beneficio dall’utilizzo di una shell CLI, gli utenti dovrebbero imparare un linguaggio di scripting. La maggior parte delle shell della riga di comando può salvare sequenze di comandi in uno script o in un file batch che possono essere completamente programmabili. Shell scripting è il fondamento dell’automazione di gestione dei sistemi di base.

Come funziona CLIs?

Una volta che un computer è in esecuzione, la sua CLI si apre su una schermata vuota con un prompt dei comandi e i comandi possono essere inseriti.

I tipi di comandi CLI includono quanto segue:

  • comandi di sistema codificati come parte dell’interfaccia del sistema operativo;
  • programmi eseguibili che, se richiamati con successo, eseguono applicazioni grafiche o basate su testo; e
  • programmi batch (o file batch o script di shell) che sono file di testo che elencano una sequenza di comandi. Quando invocato con successo, un programma batch esegue i suoi comandi che possono includere sia i comandi di sistema e programmi eseguibili.

La CLI è più di un semplice sistema di comando/risposta, poiché la maggior parte ha funzionalità aggiuntive che rendono preferibile l’una all’altra. Alcune caratteristiche includono quanto segue:

  • La funzionalità di scripting consente agli utenti di scrivere programmi che possono essere eseguiti sul sistema dalla riga di comando.
  • Le pipe di comando consentono agli utenti di indirizzare l’output di un programma come input per un altro programma (“piping” il flusso di dati).
  • Le variabili di sistema possono essere impostate sulla riga di comando o i valori di tali variabili visualizzati.
  • Funzionalità Cronologia comandi consentono all’utente di richiamare i comandi precedenti emessi. Alcuni salvano la cronologia dei comandi per la sessione (come PowerShell), altri possono essere configurati per memorizzare la cronologia delle sessioni più a lungo (come bash).

I comandi e la sintassi per CLIS tendono ad essere molto stabili nel tempo, in parte per abilitare la retrocompatibilità per gli script.

Prompt e comandi

A seconda del sistema operativo e della CLI, potrebbero essere disponibili centinaia o addirittura migliaia di diversi comandi eseguibili. Il set di comandi può variare notevolmente tra sistemi operativi o applicazioni.

Ad esempio, Microsoft definisce centinaia di cmdlet come “comandi leggeri” da utilizzare in PowerShell; le funzioni PowerShell sono elenchi di cmdlet che possono essere eseguiti dalla riga di comando.

Alcuni comandi vengono eseguiti da soli sulla riga di comando, come il comando dir:

C:\> dir

I comandi possono anche essere usati con argomenti (a volte indicati come parametri) che modificano il modo in cui il comando deve essere eseguito. Gli argomenti seguono il comando e forniscono ulteriori dettagli o specifiche.

Il comando cd “change directory” in molti CLI è usato per cambiare la directory di lavoro corrente quando il nuovo percorso di directory desiderato è incluso come argomento — ma in alcuni casi (come in MS-DOS o nel prompt dei comandi di Windows) il comando da solo restituisce la directory di lavoro corrente.

Questo comando ripristina la directory di lavoro corrente:

cd \documents\user\working

Gli argomenti consentono agli utenti della riga di comando di ottenere risultati molto specifici che a volte non sono disponibili attraverso un’interfaccia grafica.

I moderni CLIS forniscono pipe o meccanismi per prendere l’output di un comando e inviarlo come input a un altro comando. La barra verticale, o simbolo”|”, viene spesso utilizzata per questo scopo.

Il seguente” one-liner ” utilizza pipe per raggruppare diversi comandi PowerShell per recuperare informazioni dettagliate sulla configurazione di rete da una macchina Windows:

Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress

Anche se questa stringa viene immessa nella riga di comando come se fosse un singolo comando, include i seguenti comandi consecutivi:

  • Get-NetIPAddress recupera tutte le informazioni di configurazione IP per il computer quando immesse senza argomenti.
  • Sort InterfaceIndex accetta come input l’output del cmdlet Get-NetIPAddress e lo ordina in base al valore InterfaceIndex associato a ciascun indirizzo IP incluso nella configurazione del computer.
  • FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress utilizza il comando Format-Table (FT) per formattare l’output ordinato del comando precedente e visualizza i valori specificati per ciascun indirizzo IP.

La compatibilità con le versioni precedenti è spesso un obiettivo quando vengono introdotte nuove CLI per sostituire le CLI esistenti, come quando Microsoft ha sostituito MS-DOS con il prompt dei comandi di Windows. Anche se alcuni comandi MS-DOS non sono più supportati, la maggior parte continuerà a funzionare in PowerShell come originariamente previsto.

I comandi comuni di MS-DOS includono quanto segue:

Comando Esempio Note
CD C: \ > CD \ utente \ programmi
C:\user \ programs>
Modifica la directory corrente nel percorso specificato. Se immesso senza percorso, visualizza il nome della directory di lavoro corrente. Se il percorso è incluso nel prompt dei comandi, il prompt cambierà come nell’esempio (vedi anche PROMPT, sotto).
CHKDSK C:\> CHKDSK un: Controlla il disco specificato, in questo caso, il disco floppy nell’unità A: — e restituisce una relazione che mostra che la dimensione del disco, il numero di file e directory in uso e il numero di byte utilizzati.
COPIA C:\ > COPIA autoexec.bat autoexec.BAK Copia il file o i file specificati. Può essere utilizzato per copiare i file in duplicati con nomi di file diversi o per copiare i file in una directory diversa senza cambiare i nomi.
DEL C:\ > DEL autoexec.BAK
C: \ > DEL C:\backups\*.BAK
Elimina uno o più file. Può essere utilizzato per eliminare i file nella directory di lavoro corrente o in qualche altra directory. Può essere utilizzato anche con caratteri jolly per eliminare gruppi di file.
DIR C: \ > DIR
C: \ > DIR c:\backup\*.txt
Visualizza tutti i contenuti-file e directory-nella directory specificata. Se non viene specificata alcuna directory, si riferisce al contenuto della directory corrente. Può essere utilizzato anche con caratteri jolly per visualizzare solo file specifici.
EDLIN C:\> edlin autoexec.bat Avvia edlin, un editor di righe che può essere utilizzato per modificare file di testo. In questo esempio, viene utilizzato per modificare autoexec.file bat.
FORMATO C:\> FORMATO a: Formatta un disco in modo che possa essere utilizzato con MS-DOS.
MKDIR C:\> MKDIR c:\NewDIR Crea una nuova directory nel percorso specificato.
PIÙ C: \ > PIÙ autoexec.bat Visualizza il contenuto di un file, una schermata alla volta. È usato principalmente per i file di testo.
RICHIESTA C: \ > richiesta p p d d g g
C:\UTIL Ven 11-05-2021>
Modifica il prompt predefinito. In questo esempio, i parametri vengono utilizzati con il comando per impostare la visualizzazione del prompt come unità e percorso correnti, giorno e data e simbolo maggiore di. Il prompt risultante viene mostrato nell’esempio.
RMDIR C:\ > rmdir c:\backup Rimuove una directory.
TIPO C: \ > tipo autoexec.bat Visualizza il contenuto di un file di testo, senza interruzioni di pagina.

CLI versus GUI

L’interfaccia utente grafica è l’interfaccia utente più popolare oggi. Una GUI utilizza finestre, menu e icone per eseguire comandi. L’uso del mouse è il modo più comune per navigare attraverso una GUI, anche se molte GUI consentono la navigazione e l’esecuzione del programma tramite una tastiera.

Microsoft Word è un esempio di applicazione basata su GUI. Un utente può modificare le opzioni per i layout di pagina e gli stili selezionando l’icona corrispondente o il menu a discesa con un mouse o una tastiera.

una riga di comando PowerShell
Un esempio di output dalla riga di comando PowerShell

Un vantaggio di una GUI è che l’interfaccia può visualizzare visivamente le funzioni disponibili. Tuttavia, poiché si basa sulla visualizzazione grafica, una GUI potrebbe non avere lo stesso livello di funzionalità e controllo granulare di un’interfaccia a riga di comando. Ad esempio, può richiedere numerosi clic e movimenti attraverso diverse finestre di dialogo in una GUI per ottenere lo stesso risultato di una singola riga di comando.

Inoltre, le GUI non supportano facilmente lo scripting o l’automazione. Per le attività comuni, un utente deve ripetere ogni clic o navigare ogni finestra di dialogo all’interno della GUI manualmente.

Gli amministratori di sistema che potrebbero dover gestire centinaia o centinaia di migliaia di sistemi e configurazioni troveranno una GUI molto meno efficiente di una CLI. Un semplice comando CLI può facilmente regolare le configurazioni per un grande gruppo di sistemi contemporaneamente.

I comandi e gli argomenti possono anche essere combinati e salvati, quindi eseguiti come script ogni volta che è richiesta un’azione specifica o un insieme completo di azioni. La CLI è lo strumento preferito per molte attività di gestione dei sistemi a livello aziendale.

un esempio delle Finestre 11 interfaccia utente grafica
Windows 11 GUI: Il menu Start

CLI vantaggi e svantaggi

I seguenti sono i vantaggi di una interfaccia a riga di comando:

  • controllo granulare di un sistema operativo o applicazione;
  • gestione più efficiente di un gran numero di sistemi;
  • possibilità di memorizzare script per automatizzare le attività regolari; e
  • la conoscenza di base dell’interfaccia a riga di comando può consentire la risoluzione dei problemi di connessione di rete o la risoluzione di altre attività di sistema.

Gli svantaggi di un’interfaccia a riga di comando sono i seguenti:

  • GUI è più facile da usare;
  • curva di apprendimento più ripida associata alla memorizzazione di comandi e sintassi/argomenti complessi; e
  • diversi comandi utilizzati in diverse shell.

La riga di comando è un ottimo posto per diventare un esperto nell’utilizzo di un computer. Una volta che sei pronto, è anche l’unico posto dove imparare a scrivere script di shell.

Leave a Reply