CLI interfaccia e interprete a riga di comando

domenica, 20 Ott 2019 - Pubblicazioni

CLI è l’acronimo sia di command line interface che di command line interpreter.

Una command line interface è un’interfaccia a riga di comando che rende disponibile all’utente un command line interpreter in grado di interpretare ed eseguire i comandi ricevuti. Quest’ultimo è spesso chiamato shell.

Le command line interface

Alcuni facili esempi di interfaccia CLI sono la Windows Console di Windows e le console dei client FTP, Telnet o SSH (ad esempio l’emulatore di terminale PuTTY). Recentemente Microsoft sta sviluppando e testando una nuova interfaccia CLI per Windows 10: Windows Terminal. La nuova interfaccia CLI è in grado di gestire nella stessa finestra più tab, ognuna delle quali può eseguire un diverso interprete CLI.

Prompt

Il prompt è l’invito da parte del command line interpreter ad impartire un comando e viene mostrato nella command line interface solo quando il sistema è pronto per ricevere un comando. Durante l’esecuzione di un comando o di un programma il prompt scompare.

Solitamente è composto da una serie di informazioni in base al sistema in uso, da un carattere speciale (ad esempio: $, #, >) e da un carattere lampeggiante o un trattino basso messo in evidenza (il carattere speciale e/o il cursore sono considerati l’invito vero e proprio).

Buffer

Uno degli aspetti più utili di una interfaccia CLI è che permette di vedere un certo numero di comandi dati in precedenza e il loro output. La quantità dipende dal buffer che a questo compito si dedica.

I command line interpreter

Alcuni esempi di interpreti CLI possono essere il command.com dell’MS-DOS, il Command Prompt dei Windows più recenti e la bash shell di molte distribuzioni GNU/Linux.

Un interprete CLI fa parte della famiglia delle shell (interfacce), ma le shell possono essere anche grafiche (in Windows ad esempio c’è explorer.exe).

Una shell CLI dispone di una serie di comandi interni e della capacità di eseguire script scritti nel suo linguaggio, nonché di eseguire programmi adatti ad essa.

Le shell infatti hanno due principali modalità operative: quella interattiva in cui i comandi vengono eseguiti subito dopo l’invio e quella batch che esegue una serie di comandi contenuti in un file di script.

I comandi disponibili in una shell sono detti comandi interni o built-in, inoltre di solito una shell è accompagnata da un corredo standard di programmi esterni di uso comune.

Per conoscere l’elenco dei comandi interni si può di solito utilizzare il comando help di quella shell. Per il Prompt dei comandi di Windows è sufficiente digitare help dalla riga di comando stessa e premere invio. È da notare che con il comando help potrebbero essere elencati anche i comandi esterni standard.

La shell command.com

Il command line interpret di diversi sistemi operativi DOS e Microsoft Windows è stato command.com.

Lo è stato per Microsoft MS-DOS dalla prima all’ultima versione (la 8 distribuita con Windows Me) e per Microsoft Windows da Windows 95 a Windows ME. In queste prime versioni di Windows (client) era un passaggio obbligato nel boot del sistema operativo.

COMMAND.COM è una shell a 16 bit.

La shell cmd.exe

La shell di Windows a partire da Windows 2000 e Windows NT (lato server) è stata la Command shell (cmd.exe) detta anche “Command Prompt” o “Prompt dei comandi” (nelle versioni italiane di Windows) in base al titolo della finestra nella quale viene eseguita. È una shell a 32 bit.

cmd.exe è stato anche l’interprete CLI di OS/2.

In base al sistema operativo in cui viene eseguito l’interprete può godere di diverse funzionalità ed estensioni.

La prima versione di cmd.exe per Windows NT fu sviluppata da una donna, Therese Stowell.

La PowerShell

Microsoft ha introdotto una nuova shell, la PowerShell, in grado di eseguire una nuova serie di comandi detti cmdlets. Powershell oltre ad esguire questi nuovi e più potenti comandi, può anche eseguire i comandi della Command shell.

*ix shell

In Unix, Linux, macOS e sistemi analoghi la CLI che esegue la shell è detta “terminale” e permette di eseguire differenti shell (Bash, Z shell, Korn shell, C shell, …).

La prima shell

La prima shell è stata ideata da Glenda Schroeder e da un suo collega, di cui è ignoto il nome, per il sistema operativo Multics presso il MIT.

Il termine shell

Il termine shell è stato coniato da Louis Pouzin.

Riferimenti

  • https://en.wikipedia.org/wiki/Comparison_of_command_shells