Sempre più spesso chi si avvicina al mondo del sistema operativo UNIX chiede che cosa è una shell? Diamo una risposta immediata!
In un sistema Linux, la SHELL è l’interfaccia a linea di comando capace di interpretare i comandi in input dell’utente e gli script.
Le Shell più usate sono: Bash (Bourne Again Shell) e C Shell (csh).
Ad ogno modo è la Bash la shell di default per quasi tutte le distribuzioni Linux, come Ubuntu, CentOS e RedHat.
Indice dei Contenuti
Che cosa è una SHELL: il Prompt dei comandi
Quando effettuate il login al server, quasi sempre verrete accolti dal ‘Messaggio del Giorno’ (MOTD, Message Of The Day), che di solito è un messaggio che include svariate informazioni come ad esempio la versione della distribuzione Linux che il server sta utilizzando. Dopo il MOTD, la shell vi mostrerà il ‘Prompt dei comandi’ (o ‘Prompt di shell’) che altro non è che un programma nel quale potrete interagire con il server attraverso dei comandi prestabiliti che la shell è capace di interpretare.
Di solito il Prompt dei comandi si presenta così:
- root: l’Username dell’utente connesso
- mainserver: l’Hostname del server al quale si è effettuato l’accesso
- ~: la directory corrente, che in Bash è indicata dalla tilde
- #: il simbolo del Prompt, che denota la posizione dalla quale appare l’input digitato dall’utente
Eseguire i comandi su una SHELL
I comandi possono essere eseguiti dal prompt dei comandi specificando semplicemente il nome del file eseguibile, che può essere un programma binario o uno script. Esistono molti comandi ed utility Linux “standard” che sono preinstallati con il sistema operativo. Questi comandi permettono per esempio di navigare tra i file presenti all’interno della macchina, installare software e configurare il sistema e le applicazioni. Quando un comando è in esecuzione viene chiamato “processo”. Quando un programma viene eseguito, l’utente deve aspettare che esso finisca per poi poter ritornare a digitare sul Prompt, (anche se solitamente è possibile fermare l’esecuzione di un comando attraverso la combinazione di tasti Ctrl+C). È inoltre importante notare che Linux è case-sensitive, cioè distingue le maiuscole dalle minuscole. Ad esempio ‘Script01’ è diverso da ‘script01’.
Esecuzione senza argomenti o parametri
Per eseguire un comando senza argomenti oppure opzioni, scrivete semplicemente il nome del comando e premete INVIO. Se ad esempio si lancia un comando come “cd” ( change directory ), senza specificare nessun parametro, verrete portati nella cartella ‘home’ dell’utente. Il comando ls ( list ) invece stamperà a schermo la lista delle cartelle e file presenti nella directory in cui vi trovate.
Esecuzione con argomenti
Molti comandi accettano argomenti o parametri che possono modificare l’esecuzione del comando. Ad esempio, il modo più conosciuto di usare “cd” è quello di utilizzare un singolo argomento che specifica in quale directory bisogna spostarsi; per esempio se ci volessimo spostare nella cartella “bin”, dovremmo digitare:
cd /usr/bin
Esecuzione con parametri
La maggior parte dei comandi accettano i parametri, anche conosciute come ‘flag’, che possono modificare la funzionalità del comando. Di solito vengono precedute dal carattere ‘-‘ e consistono in una lettera maiuscola o minuscola. Per un esempio basilare di come funzionano i parametri, diamo un’occhiata al comando ls
.
- -l: stampa una “lista lunga”, che include dettagli extra come i permessi, la grandezza e la data di creazione del file listato
- -a: mostra tutti i file e le directory, comprese quelle nascoste (che iniziano con ‘.’)
I parametri, per questioni di comodità, possono essere raggruppati in questo modo:
ls -al
Esecuzione con parametri ed argomenti
Quando si eseguono dei comandi, parametri ed argomenti possono essere anche combinati tra loro. Per esempio, se si vuole controllare il contenuto della directory /home, con il comando ls, digitate:
ls -la /home
Variabili d’ambiente
Le variabili d’ambiente sono valori usati per cambiare il modo in cui vengono eseguiti i comandi.
Visualizzare tutte le variabili d’ambiente
Per vedere tutte le variabili d’ambiente del terminale impostate, eseguite il comando “env”:
env
In output vedrete un listato di path ma cercate di individuare la stringa del PATH:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
La variabile d’ambiente PATH è una lista di directory. Sono le directory in cui la Shell cercherà di trovare un determinato programma o script digitato dall’utente nel Prompt dei comandi.
Visualizzare il valore di una variabile
Il valore di una variabile d’ambiente può essere visualizzato facendo precedere il simbolo ‘$’ al nome della variabile. Per esempio, se si vuole stampare a schermo il valore della variabile PATH, dovete usare il comando echo.
echo $PATH
Impostare le variabili
Ora che sapete come visualizzare il valore di una variabile, dovete imparare a modificarle. Tutto quello che vi serve per impostare una variabile è digitare il nome della variabile seguito dal simbolo ‘=’ e subito dopo il valore desiderato.
VAR=valore
Bisogna però notare che, se si modifica una variabile esistente, il suo valore verrà sovrascritto.
SOFTWARE di SHELL
Con il termine PuTTY, si intende un client con i protocolli SSH, Telnet, rlogin e TCP che permette di stabilire una sessione remota cifrata ad un altro computer emulando un terminale, effettuando il login con l’IP del computer a cui ci si vuole connettere.
In origine il client PuTTY era disponibile solo per i sistemi Microsoft Windows, ma in seguito venne esteso anche a vari sistemi Unix e Unix-like.
E’ stato aggiunto inoltre il supporto per l’autenticazione SSH-2, protocollo che da maggiori garanzie sulla sicurezza delle informazioni scambiate tra terminali, rispetto al protocollo SSH-1.
PuTTY è la soluzione che consigliamo a tutti i nostri utenti che utilizzano un server Linux e ne vogliono avere il pieno controllo.
L’ultima release è possibile scaricarla gratuitamente dal sito: http://www.putty.org/
Sono Romano Capasso, ing. informatico e CEO della Quatio – web agency di Torino. Grazie alla mia esperienza di oltre 20 anni nello sviluppo web e di consulenza informatica ho acquisito diverse conoscenze che mi piace mettere al servizio dei neofiti al fine di aiutarli nella risoluzione di un problema tecnico o semplicemente diffondendo la conoscenza in tale ambito.
Nel blog tecnico della Quatio affronto le tematiche più comuni del web e che in modo ricorrente danno dei grattacapi ai miei clienti