Quando un’operazione richiede molti clic o una guida online chiede di aprire la shell, il terminale Linux diventa spesso la strada più rapida e precisa. Qui mostro come funziona la riga di comando, quali comandi conviene imparare per primi, come installare programmi in sicurezza e come usare Linux dentro Windows con WSL.
La riga di comando rende Linux più rapido, controllabile e versatile
- Terminale e shell non sono esattamente la stessa cosa: uno mostra l’interfaccia, l’altra interpreta i comandi.
- Otto comandi di base bastano per iniziare a navigare tra cartelle, creare file e controllare il sistema.
- sudo concede privilegi amministrativi, ma va usato solo quando serve e dopo aver verificato il comando.
- WSL 2 permette di eseguire una distribuzione Linux direttamente in Windows, senza dual boot.
- Linux e Windows possono collaborare, ma hanno percorsi, permessi e strumenti diversi.
Perché usare la riga di comando in Linux
Il terminale è una finestra testuale dentro cui si esegue una shell, cioè un programma che interpreta ciò che scrivo e lo trasforma in azioni. Bash è la shell più comune, ma esistono anche Zsh, Fish e altre alternative. La distinzione è semplice: il terminale è l’ambiente visibile, la shell è il linguaggio operativo che lavora al suo interno.
Con la grafica posso aprire una cartella alla volta; con un comando posso cercare centinaia di file, rinominarli in massa o filtrare solo quelli modificati di recente. Io lo trovo particolarmente utile per sviluppo software, amministrazione di server, automazione e gestione cloud, dove la ripetibilità conta più dell’apparenza.
La riga di comando non sostituisce sempre il desktop. Per modificare una fotografia o configurare una stampante, un’interfaccia grafica può essere più comoda. Il vantaggio emerge quando devo ripetere un’attività, documentarla o eseguirla su una macchina remota tramite SSH.
I comandi fondamentali per orientarsi
Prima di memorizzare decine di istruzioni, conviene capire il modello delle directory Linux. La cartella principale è indicata da /, la directory personale da ~ e la directory corrente da .. Il prompt, cioè la riga che attende il comando, può mostrare anche nome utente e percorso attuale.
pwd
ls
ls -la
cd Documenti
cd ..
cd ~pwd mostra dove mi trovo, mentre ls elenca il contenuto della directory. L’opzione -la include anche i file nascosti e i dettagli sui permessi. Quando non ricordo un’opzione, uso man ls oppure ls --help: consultare la documentazione è più sicuro che copiare comandi alla cieca.
Creare, copiare e rimuovere file
mkdir progetto
touch note.txt
cp note.txt backup.txt
mv backup.txt progetto/
rm note.txt
rmdir progettomkdir crea una directory e touch un file vuoto. cp copia, mentre mv sposta o rinomina. Il comando rm elimina senza passare dal cestino, quindi lo considero un’istruzione da usare con attenzione, soprattutto insieme a opzioni ricorsive come -r.
Leggere e trovare informazioni
cat note.txt
less /var/log/syslog
head -n 20 note.txt
tail -f app.log
grep -n "errore" app.log
find . -type f -name "*.pdf"cat è comodo per file brevi, mentre less permette di scorrere documenti più lunghi. Con grep cerco una parola dentro il testo e con find individuo file secondo nome, tipo o posizione. Questa combinazione è uno dei motivi per cui il terminale resta efficace anche su sistemi con interfacce moderne.
Installare programmi e gestire i permessi
Linux usa un gestore dei pacchetti per scaricare software dai repository, verificarne le dipendenze e mantenere aggiornato il sistema. Su Ubuntu e Debian si usa soprattutto APT; Fedora utilizza DNF, mentre Arch Linux si basa su Pacman. Il comando corretto dipende quindi dalla distribuzione installata.
sudo apt update
sudo apt upgrade
sudo apt install git
sudo apt remove nome-pacchettoSu Ubuntu, apt update aggiorna l’elenco dei pacchetti disponibili e apt upgrade installa gli aggiornamenti. Non sono la stessa operazione. Io eseguo prima il refresh degli indici e poi controllo cosa verrà modificato, specialmente su un computer di lavoro.
| Distribuzione | Installazione | Aggiornamento | Rimozione |
|---|---|---|---|
| Ubuntu o Debian | sudo apt install nome |
sudo apt upgrade |
sudo apt remove nome |
| Fedora | sudo dnf install nome |
sudo dnf upgrade |
sudo dnf remove nome |
| Arch Linux | sudo pacman -S nome |
sudo pacman -Syu |
sudo pacman -R nome |
sudoesegue un comando con privilegi amministrativi. È simile all’avvio “come amministratore” di Windows, ma non equivale a lavorare sempre come utente root. Prima di confermare una richiesta di password, verifico il percorso e il nome del pacchetto, perché un comando distruttivo eseguito con privilegi elevati può danneggiare il sistema.
I permessi si leggono con ls -l e si modificano, quando necessario, con comandi come chmod e chown. Evito di rendere eseguibile o scrivibile “tutto” con permessi troppo aperti. Risolve spesso un problema nell’immediato, ma crea un rischio inutile su computer condivisi o server esposti.
Windows e Linux insieme con WSL

Chi usa Windows ma vuole Bash, gli strumenti Unix e l’ambiente dei pacchetti Linux può installare Windows Subsystem for Linux, noto come WSL. La soluzione consente di usare distribuzioni come Ubuntu e Debian accanto alle applicazioni Windows, senza configurare un dual boot e senza gestire una macchina virtuale tradizionale.
Su una versione compatibile di Windows, l’installazione di base parte da PowerShell avviato come amministratore:
wsl --installDopo il riavvio, Windows propone normalmente una distribuzione predefinita e la creazione di un utente Linux con relativa password. Per verificare le distribuzioni installate e la versione in uso posso eseguire:
wsl --list --verbose
wsl --statusWSL 2 usa un’architettura più completa rispetto a WSL 1 e, in genere, offre una compatibilità migliore con gli strumenti Linux. La scelta pratica è quasi sempre WSL 2, mentre la velocità dipende anche da dove salvo i file e dal tipo di attività.
Dove salvare i progetti
In WSL posso accedere ai dischi Windows sotto /mnt, per esempio /mnt/c/Users/Nome/Documenti. Per progetti Linux, Git e dipendenze numerose preferisco però la directory del filesystem Linux, come ~/progetti, perché tende a offrire un’esperienza più fluida.
Per aprire la cartella corrente con Esplora file posso usare:
explorer.exe .La collaborazione tra i due ambienti è reale, ma non perfetta. Un programma Linux non diventa automaticamente un programma Windows e un percorso come C:\Users\Nome non può essere usato in Bash senza adattarlo. Questa differenza spiega molti degli errori iniziali.
Leggi anche: Dual boot Windows e Linux, come installarlo senza errori
Usare Windows Terminal
Windows Terminal permette di riunire in schede diverse PowerShell, Prompt dei comandi e una o più distribuzioni WSL. Per me è la configurazione più pratica quando alterno amministrazione Windows, Git e script Bash, perché riduce il continuo passaggio tra finestre.
Da PowerShell posso lanciare direttamente un comando Linux:
wsl ls -la /home
wsl -d Ubuntu -- cat /etc/os-releaseDa Linux posso invece richiamare alcuni eseguibili Windows aggiungendo l’estensione .exe, per esempio notepad.exe o powershell.exe. Questa integrazione è utile, ma conviene mantenere chiaro quale ambiente sta eseguendo ogni comando.
Comandi Linux e alternative in Windows
Windows offre PowerShell e il Prompt dei comandi, che non sono semplicemente versioni grafiche della shell Bash. Alcuni obiettivi sono uguali, ma la sintassi cambia. La tabella seguente è un promemoria rapido per chi lavora su entrambi i sistemi.
| Operazione | Linux o Bash | PowerShell | Prompt dei comandi |
|---|---|---|---|
| Mostrare la directory corrente | pwd |
Get-Location |
cd |
| Elencare i file | ls |
Get-ChildItem |
dir |
| Cambiare directory | cd cartella |
Set-Location cartella |
cd cartella |
| Copiare un file | cp origine destinazione |
Copy-Item origine destinazione |
copy origine destinazione |
| Rimuovere un file | rm file |
Remove-Item file |
del file |
| Cercare testo | grep parola file |
Select-String parola file |
findstr parola file |
PowerShell ha un vantaggio importante perché tratta l’output come oggetti strutturati, non soltanto come testo. Bash, dal canto suo, eccelle nel concatenare piccoli strumenti con pipe come |, ridirezione con > e filtri testuali. Non cerco quindi una corrispondenza perfetta: scelgo la shell in base allo strumento che devo usare.
Un errore comune consiste nel copiare un comando Bash in PowerShell aspettandosi lo stesso risultato. Un altro è confondere il simbolo ~ con la cartella utente Windows. In WSL indica la home Linux, mentre in PowerShell la gestione dei percorsi segue regole differenti.
Come imparare senza rischiare di rompere il sistema
Per iniziare non serve memorizzare tutto. Io suggerisco di creare una directory di prova e lavorare lì con pwd, ls, mkdir, touch, cp, mv, cat e rm. In questo modo si capiscono percorsi relativi, percorsi assoluti e completamento automatico con il tasto Tab.
Prima di eseguire istruzioni trovate online, controllo sempre tre elementi: la directory corrente, l’uso di sudo e la presenza di rm o redirezioni. Il simbolo > può sovrascrivere un file, mentre >> aggiunge contenuto alla fine. Sono dettagli piccoli, ma fanno una grande differenza.
Per annullare un comando in esecuzione posso premere Ctrl+C; per uscire dalla shell uso exit. La cronologia richiamabile con la freccia su e la ricerca con Ctrl+R rendono il lavoro molto più veloce dopo i primi giorni.
Quando un’attività diventa ripetitiva, la trasformo in uno script Bash con estensione .sh. Prima lo provo su dati non importanti, aggiungo messaggi chiari e verifico gli errori. L’automazione è il vero salto di qualità della riga di comando, ma funziona bene solo quando il procedimento manuale è già stato compreso.
Un percorso pratico per scegliere l’ambiente giusto
Per imparare i comandi di base, una distribuzione desktop come Ubuntu è sufficiente. Se uso Windows ogni giorno e mi servono strumenti Linux per sviluppo, Git o container, WSL 2 è spesso il compromesso più rapido. Se invece voglio comprendere anche avvio, driver, servizi e gestione completa dell’hardware, una vera installazione Linux offre un’esperienza più ampia.
Il mio consiglio è iniziare con esercizi semplici e obiettivi concreti, per esempio creare una struttura di progetto, cercare una riga nei log o installare Git. Dopo una settimana di pratica regolare, il terminale smette di sembrare una schermata misteriosa e diventa uno strumento diretto, leggibile e sorprendentemente efficiente.