Chi lavora con server Linux, container o semplicemente con un Raspberry Pi finisce presto per passare più tempo nel terminale che nell'interfaccia grafica. Questa guida raccoglie i comandi che usiamo davvero ogni giorno, divisi per area, con la sintassi essenziale e qualche esempio pratico — non un elenco enciclopedico, ma il sottoinsieme che copre il 90% del lavoro quotidiano.
Navigazione e gestione file
La base di tutto: muoversi nel filesystem e manipolare file e cartelle.
| Comando | Cosa fa | Esempio |
|---|---|---|
pwd | Mostra la directory corrente | pwd |
ls | Elenca il contenuto di una cartella | ls -lah |
cd | Cambia directory | cd /var/www |
cp | Copia file/cartelle | cp -r src/ dest/ |
mv | Sposta o rinomina | mv old.txt new.txt |
rm | Elimina (con -r per cartelle) | rm -rf tmp/ |
mkdir | Crea una cartella | mkdir -p a/b/c |
find | Cerca file per nome/tipo/data | find . -name "*.log" -mtime -7 |
Il flag -r ("ricorsivo") ricorre spesso: senza, cp e rm rifiutano di lavorare su intere cartelle. find è quello che ripaga di più il tempo investito a impararlo: cercare per pattern, età del file o dimensione è molto più rapido che navigare a mano.
Leggere e filtrare il testo
La forza di Linux è che quasi tutto — log, configurazioni, output di comandi — è testo semplice, e questi strumenti permettono di leggerlo e filtrarlo senza aprire un editor.
cat file— stampa l'intero contenuto di un fileless file— lo apre in modalità scorrevole (qper uscire,/parolaper cercare)tail -f file.log— mostra le ultime righe e resta in ascolto di nuove righe: indispensabile per seguire un log in tempo realegrep "errore" file.log— filtra solo le righe che contengono una stringa (-iper ignorare maiuscole/minuscole,-rper cercare ricorsivamente in una cartella)
Una combinazione che usiamo quasi ogni giorno per il debug: tail -f /var/log/nginx/error.log | grep --line-buffered "php" — segue il log in tempo reale mostrando solo le righe rilevanti.
Permessi e proprietà
Ogni file su Linux ha un proprietario, un gruppo e tre livelli di permessi (lettura, scrittura, esecuzione) per proprietario, gruppo e "altri". Si leggono e si modificano così:
chmod 755 script.sh— imposta i permessi in notazione numerica (7=rwx proprietario, 5=r-x gruppo, 5=r-x altri)chmod +x script.sh— rende un file eseguibile senza toccare gli altri permessichown utente:gruppo file— cambia proprietario e gruppo
Un errore comune è impostare chmod 777 "per farlo funzionare e basta": significa lettura/scrittura/esecuzione per chiunque, ed è quasi sempre un rischio di sicurezza evitabile individuando il permesso realmente necessario.
Processi e risorse di sistema
Capire cosa sta girando su una macchina e quanto consuma è la base della diagnostica.
| Comando | A cosa serve |
|---|---|
ps aux | Elenca tutti i processi attivi con PID, CPU e memoria |
top / htop | Monitor interattivo di CPU/RAM in tempo reale (htop è più leggibile, va installato a parte) |
kill -9 PID | Termina forzatamente un processo dato il suo PID |
df -h | Spazio disco disponibile per ogni partizione, in formato leggibile |
du -sh cartella/ | Dimensione totale di una cartella |
systemctl status nomeservizio | Stato di un servizio gestito da systemd (es. nginx, mysql) |
Rete e trasferimento file
ssh utente@host apre una shell remota sicura; con -p porta si specifica una porta non standard. scp file.txt utente@host:/percorso/ copia un file su un server remoto sfruttando lo stesso protocollo. Per il debug di rete, curl -I https://sito.it mostra solo gli header HTTP di risposta (utile per verificare redirect e codici di stato senza scaricare la pagina), mentre ping host verifica la raggiungibilità di base.
Un consiglio più importante dei comandi stessi
Il comando man nomecomando apre il manuale ufficiale di qualsiasi utility Linux, con tutte le opzioni disponibili: è la fonte più affidabile, sempre allineata alla versione installata sulla macchina, meglio di qualunque guida online (compresa questa). Per una consultazione rapida delle stesse pagine man anche da browser, il riferimento più completo e aggiornato resta man7.org/linux/man-pages.