Un Sistema Operativo è concepito per dialogare con l’utente mediante utilità che consentano a quest’ultimo di impartire comandi e ottenere da essi risultati. Abbiamo familiarità con finestre e menù, evoluzioni di una metodologia di interazione preesistente all’introduzione del mouse, la CLI, ovvero la Command-line interface, in italiano “interfaccia a linea di comando”.
All’epoca della sua introduzione, per chi voleva adoperare un computer, era contemplabile solo l’uso della tastiera e del monitor. Un dispositivo di input e uno di output. Ciò bastava. Nei decenni successivi la filosofia che guidò l’ideazione delle metodologie interattive fra sistemi e utenti mutò radicalmente ispirandosi a principi di ergonomia e maggiore immediatezza.
Comunque la CLI risultava ancora accessibile e utilizzabile praticamente su qualsiasi device. La stessa cosa accade oggi. L’interfaccia a linea di comando permette di accedere a tutte le potenzialità di un sistema. Le istruzioni operabili a livello grafico sono, infatti, solo un sottoinsieme di quelle disponibili impartendo comandi alla vecchia maniera. Sarà quindi possibile raggiungere la CLI pressoché ovunque ma anche in diversi modi. Di volta in volta presenteremo lo strumento più efficace per impartire comandi testuali in funzione dell’utilizzo che ci prefiggiamo.
In questo momento riteniamo vantaggioso adottare la finestra di terminale in un ambiente desktop grafico. Qualsiasi sia il sistema che gestisce l’interazione grafica con l’utilizzatore e la distribuzione su cui questo poggia esisterà un’utilità che consente di emulare il terminale.
State leggendo questo testo da un browser web, dovrete solo navigare i menù del vostro ambiente e scovare l’emulatore. Cliccatelo. Una volta lanciato ci troveremo di fronte ad un prompt dei comandi. Ogni sessione di terminale vive in simbiosi con almeno una shell ed è generata da una stratificazione di ambienti differenti. La shell, il livello della CLI concretamente operabile dall’utente, serve proprio a interpretare i comandi di quest’ultimo nonché estendere le utilità a sua disposizione.
Shell è per l’appunto un termine inglese traducibile in italiano con “conchiglia”, quindi la parte esterna, il carapace visibile di qualcosa che vive all’interno. Esistono molti emulatori di terminali e diverse shell. Cominciamo a familiarizzare con il prompt.
fprincipe@html1:~$
Esistono innumerevoli stili con cui il prompt potrebbe presentarsi quindi non indugeremo eccessivamente sul suo aspetto, vi basti sapere che immediatamente a destra di esso è possibile introdurre un qualsiasi comando digitandolo direttamente da tastiera. Adoperiamone uno che restituirà il nome della shell operante nel terminale appena aperto.
fprincipe@html1:~$ echo $SHELL
/bin/bash
In questo caso il risultato è la path assoluta, ovvero il percorso su filesystem, che individua l’eseguibile della shell in esecuzione.
I termini e gli oggetti richiamati nelle precedenti frasi saranno affrontati con dovizia di particolari in seguito. Al netto di ciò che probabilmente ancora non vi è chiaro abbiamo quindi toccato con mano qualcosa di molto importante: un comando su CLI, interpretato dalla shell, visibile tramite un emulatore di terminale.