Corso Linux / Terminale e shell: sintassi dei comandi e aiuto in Bash
Per usare i comandi su Linux, apri un terminale e inseriscili nella shell. Il terminale mostra ciò che scrivi e i risultati; la shell interpreta l'input ed esegue i comandi. In questa lezione impari a leggere la struttura di un comando, distinguere risultati ed errori e trovare aiuto quando un comando non ti è familiare.
Se non hai ancora un ambiente Linux, prepara prima la macchina virtuale e le impostazioni iniziali, nella lezione in inglese. Inserisci i comandi seguenti nel terminale del sistema guest, cioè il sistema Linux eseguito nella macchina virtuale.
Qual è la differenza tra terminale e shell?
Il terminale è l'interfaccia in cui digiti testo e leggi i risultati. Al suo interno una shell legge e interpreta i comandi: può eseguire una funzione incorporata oppure avviare un programma esterno, il cui output appare nel terminale. Due applicazioni terminale possono avere un aspetto diverso ma consentire lo stesso modo di scrivere i comandi quando usano la stessa shell.
Gli esempi si riferiscono a Bash, abbreviazione di Bourne Again Shell. Bash è disponibile sia su Ubuntu sia su Rocky Linux; la shell in esecuzione e i comandi installati possono però dipendere dall'ambiente. Un server remoto può essere privo di un'applicazione terminale grafica: i principi d'uso della shell restano gli stessi.
Aprire il terminale e riconoscere il prompt
In un ambiente grafico cerca “Terminale” nell'elenco delle applicazioni. Il nome del menu e il metodo di avvio dipendono dal desktop. Una volta aperto, di solito compare un cursore dopo il nome utente o il percorso corrente. Il testo che invita a scrivere è il prompt: indica che la shell attende un comando.
Il prompt può contenere $ o #, ma questi simboli non fanno parte del comando da copiare. I blocchi di questa lezione riportano soltanto ciò che devi digitare. Quando un'attività richiede privilegi amministrativi, la necessità di sudo va valutata separatamente: l'aspetto del prompt può essere personalizzato.
Scrivi questo comando e premi Invio:
printf '%s\n' hello
Il comando stampa hello, poi riappare il prompt:
hello
printf stampa testo secondo una stringa di formato. Qui %s rappresenta una stringa e \n indica un ritorno a capo. È normale che il prompt del tuo sistema sia diverso da quelli mostrati in altre guide.
Leggere le parti di un comando
Molti comandi seguono lo schema comando + opzioni + argomenti. Il comando indica cosa fare, un'opzione modifica il modo di operare e un argomento specifica il valore o l'oggetto su cui lavorare. Non tutti i comandi richiedono sia opzioni sia argomenti.
ls -l /etc
| Parte | Esempio | Significato |
|---|---|---|
| Comando | ls |
Mostra un elenco di voci. |
| Opzione | -l |
Usa il formato dettagliato. |
| Argomento | /etc |
Indica la directory da elencare. |
Il risultato è l'elenco dettagliato del contenuto di /etc; nomi, date e numero di voci dipendono dal sistema. Il comando legge informazioni e non modifica i file elencati.
Gli spazi separano le parti. In una sintassi come ls [OPTION] [FILE...], le parentesi quadre indicano un elemento facoltativo: non devi digitarle. I puntini indicano che puoi specificare più elementi. La notazione esatta varia fra programmi: consulta il relativo aiuto.
Per passare un valore con spazi come un unico argomento, racchiudilo tra virgolette. Confronta questi due comandi, eseguendoli uno alla volta:
printf '%s\n' hello world
printf '%s\n' 'hello world'
Il primo riceve hello e world come argomenti separati e stampa due righe. Il secondo riceve un solo argomento e stampa una riga. I risultati consecutivi, senza le righe del prompt, sono:
hello
world
hello world
printf riutilizza il formato %s\n per gli argomenti restanti: per questo il primo comando produce due righe. La riga vuota che separa i comandi nel blocco non stampa una riga vuota. I diversi tipi di virgolette influenzano anche le espansioni della shell in modi diversi. Per ora concentrati sul mantenere insieme un valore che contiene spazi; variabili ed espansioni verranno affrontate separatamente.
Gestire input, output ed errori
Dopo aver scritto un comando e premuto Invio, la shell lo esegue. Il testo sullo schermo può essere un risultato normale oppure un errore, per esempio relativo a un'opzione non supportata o a un file inesistente. L'assenza di output non significa necessariamente che il comando sia fallito: interpreta il messaggio rispetto all'operazione richiesta.
Puoi scorrere il terminale per rileggere un output lungo. Per richiamare un comando precedente, usa la freccia su, se la modifica interattiva della riga è attiva. Poiché i comandi possono finire nella cronologia, evita di inserire password o token direttamente negli argomenti.
Per interrompere un comando in primo piano, in genere premi Ctrl+C: normalmente il terminale invia un segnale di interruzione, invece di eseguire la consueta operazione “Copia”. Un programma può gestire il segnale in modo specifico, quindi non è una garanzia di arresto immediato né di annullamento delle modifiche già eseguite.
Per uscire dalla shell puoi digitare exit. Con le impostazioni usuali di Bash, Ctrl+D su una riga vuota può terminarla; un'impostazione come ignoreeof può cambiare questo comportamento. All'interno di un programma che legge input, Ctrl+D segnala normalmente la fine dell'input e può avere un effetto diverso dall'uscita dalla shell.
Trovare aiuto per un comando sconosciuto
Consulta la documentazione prima di indovinare un'opzione. I programmi esterni e i comandi incorporati nella shell, detti anche builtin, possono offrire aiuto in modi diversi.
| Metodo | Quando usarlo |
|---|---|
comando --help |
Per una rapida panoramica delle opzioni, se il programma lo supporta. Non è una convenzione universale. |
man comando |
Per leggere sintassi e opzioni nella pagina di manuale installata. |
help comando |
Per leggere l'aiuto di Bash relativo a un builtin. |
type comando |
Per capire come Bash interpreta il nome: per esempio builtin, alias, funzione o programma esterno. |
Nella tabella comando è un segnaposto: sostituiscilo con il nome da cercare. Per esempio, ls --help riepiloga le opzioni, mentre man ls apre una spiegazione più completa. Nel visualizzatore less, comunemente usato da man, digita / seguito dal testo e Invio per cercare, e premi q per uscire. Un visualizzatore configurato diversamente può usare altri tasti.
ls --help
man ls
Esegui le righe separatamente. In un'installazione minima possono mancare man o la pagina richiesta: il messaggio di assenza non dimostra che il comando documentato sia inesistente. Per l'elenco rapido usa l'aiuto del programma, se disponibile.
cd è un esempio di builtin di Bash. Identificalo con type cd, poi leggi la spiegazione con help cd. Il testo della risposta dipende dalla shell, dalla lingua e da eventuali personalizzazioni come alias o funzioni.
type cd
help cd
Trovi altri esempi nelle guide al comando man e alle pagine di manuale, al comando help di Bash e al comando type per identificare i comandi.
Un breve esercizio pratico
- Esegui
type printfper vedere come la tua shell Bash interpretaprintf. - Esegui
help printfe trova la spiegazione della stringa di formato e degli argomenti. - Esegui
printf '%s\n' 'Linux practice'e verifica cheLinux practiceappaia su un'unica riga.
type printf
help printf
printf '%s\n' 'Linux practice'
L'ultimo comando produce questo risultato. Le risposte dei primi due possono cambiare con la versione di Bash e la lingua dell'interfaccia.
Linux practice
Se compare command not found, controlla prima l'ortografia del nome. Per un errore come invalid option, verifica nell'aiuto le opzioni supportate e la sintassi. Non aggiungere sudo a ogni comando che segnala un problema di permessi: individua prima il file o l'operazione che richiede l'autorizzazione. Questi esercizi di stampa e lettura dell'aiuto non richiedono privilegi amministrativi.
Documentazione ufficiale
Per la shell e i builtin consulta le funzioni di base nel GNU Bash Reference Manual e la sezione sui comandi incorporati di Bash. Il manuale man(1) descrive notazione, sezioni e consultazione delle pagine.




