Linux command line: La guida definitiva dai fondamentali ai power tools

Il terminale Linux.
Per molti, quella finestra nera con il cursore lampeggiante è fonte di ansia; per altri, è una tela bianca di infinite possibilità.
La verità è che la Command Line Interface (CLI) non è solo uno strumento per hacker visti nei film, ma è il metodo più efficace per interagire con il tuo computer.
Che tu sia un aspirante DevOps, un amministratore di sistema o uno sviluppatore web, conoscere i comandi giusti trasforma compiti che richiederebbero ore di clic manuali in operazioni di pochi secondi.
Imparare la riga di comando significa smettere di essere un semplice utente del sistema e diventarne il padrone.
In questa guida, esploreremo i comandi essenziali per navigare, gestire, monitorare e automatizzare il tuo ambiente Linux.
1. I fondamentali della navigazione
Prima di poter amministrare un server, devi saperti muovere al suo interno.
Immagina il terminale come un esploratore di file testuale.
pwd(Print Working Directory): Ti sei perso nei meandri delle cartelle? Questo comando ti dice esattamente dove ti trovi nel filesystem (il percorso assoluto). È il tuo “Voi siete qui” sulla mappa.Esempio:
/home/utente/progetti/sito-webcd(Change Directory): È il comando per muoversi.cd cartella: Entra in una cartella specifica.cd ..: Torna indietro di un livello (alla cartella genitore).cd ~(o solocd): Ti teletrasporta istantaneamente alla tua cartella Home, ovunque tu sia.
ls(List): Elenca i file nella cartella corrente. Da solo è utile, ma con le opzioni (flag) diventa indispensabile.- Pro Tip: Usa
ls -lah.-l: Mostra i dettagli (permessi, proprietario, data).-a: Mostra i file nascosti (quelli che iniziano con un punto, come.bashrc).-h: Rende le dimensioni leggibili agli umani (es. mostra “500MB” invece di “524288000”).
- Pro Tip: Usa
2. Gestione dei file: Creare, copiare e distruggere
Una volta che sai muoverti, devi poter manipolare gli oggetti.
mkdir(Make Directory): Crea nuove cartelle.mkdir -p progetti/2024/clienti(il flag-pcrea anche le cartelle intermedie se non esistono).cp(Copy) emv(Move):cp file.txt copia.txt: Duplica un file.mv file.txt cartella/: Sposta un file. Nota:mvsi usa anche per rinominare i file (mv vecchio_nome.txt nuovo_nome.txt).
rm(Remove): Fai attenzione. Su Linux non esiste il “Cestino” quando usi il terminale.rm file.txt: Cancella un file.rm -rf cartella/: Cancella una cartella e tutto il suo contenuto forzatamente. Usa con estrema cautela!
3. Ricerca e analisi: I power tools
Qui è dove Linux brilla davvero.
Smetti di cercare file aprendo cartelle a caso.
Lascia che sia il sistema a lavorare per te.
find: Il segugio del filesystem
Il comando find è incredibilmente potente per localizzare file basandosi su metadati come nome, dimensione, permessi o data di modifica.
Scenario Reale: Il disco è pieno e devi trovare i file di log vecchi e pesanti per cancellarli.
find /var/log -name "*.log" -size +50MQuesto comando cerca in
/var/logtutti i file che finiscono per.loge sono più grandi di 50 Megabyte.
grep: Trovare l’ago nel pagliaio
Mentre find cerca i file, grep cerca dentro i file.
È essenziale per il debugging.
Scenario Reale: Il tuo server web ha dato errore, ma non sai perché.
grep -r "Fatal Error" /var/log/nginx/
-r: Cerca ricorsivamente in tutte le sottocartelle.-i: Ignora la differenza tra maiuscole e minuscole (case-insensitive).
4. Monitoraggio del sistema
Il tuo computer è lento?
La ventola gira al massimo?
Ecco come diagnosticare il problema.
top/htop: Mostrano i processi in esecuzione in tempo reale, l’uso della CPU e della RAM.- Consiglio: Se puoi, installa
htop. È una versione più colorata, interattiva e leggibile ditop. Ti permette di terminare (kill) i processi bloccati con un tasto.
- Consiglio: Se puoi, installa
df -h(Disk Free): Visualizza lo spazio libero su disco. Il flag-hti mostra i dati in GB e MB, evitando calcoli matematici complessi.
5. La potenza delle “Pipe” e redirezioni
La vera magia di Linux sta nel combinare i comandi.
Il simbolo | (pipe) prende l’output di un comando e lo passa come input al successivo.
Esempio di concatenazione: Vuoi vedere quali processi stanno usando più memoria, ma vuoi vedere solo i primi 5?
ps aux | sort -nk +4 | tail -5
ps aux: Elenca tutti i processi.|: Passa la lista a…sort -nk +4: Ordina numericamente in base alla 4ª colonna (memoria).|: Passa la lista ordinata a…tail -5: Mostra solo le ultime 5 righe (i processi più pesanti).
6. Download e automazione
Non hai bisogno di un browser grafico per scaricare file.
Sui server remoti, spesso non hai nemmeno un’interfaccia grafica.
wget: Robusto e affidabile. Perfetto per scaricare ISO o archivi di grandi dimensioni.- Comando:
wget -c [url](l’opzione-criprende un download interrotto se cade la connessione).
- Comando:
curl: Il coltellino svizzero per il trasferimento dati. Spesso usato per testare API o scaricare script ed eseguirli al volo.- Esempio:
curl -I https://google.com(mostra solo le intestazioni HTTP per vedere se il sito risponde).
- Esempio:
7. Sicurezza e permessi: chmod e chown
In Linux, ogni file e cartella ha un sistema di sicurezza integrato che decide chi può fare cosa.
Capire questo concetto è fondamentale per evitare errori di sicurezza (come lasciare file sensibili leggibili a tutti) o di funzionamento (come script che non si avviano).
Decifrare ls -l
Quando digiti ls -l, vedi una stringa simile a questa: -rwxr-xr--
Questa stringa va letta dividendo i caratteri in gruppi:
- Tipo (1 carattere):
-indica un file,dindica una directory. - Proprietario (User - 3 caratteri): Cosa può fare chi ha creato il file.
- Gruppo (Group - 3 caratteri): Cosa possono fare gli utenti nello stesso gruppo.
- Altri (Others - 3 caratteri): Cosa può fare chiunque altro (il mondo intero).
Le lettere significano:
- r (Read): Leggere il file / Listare la cartella.
- w (Write): Modificare il file / Creare o cancellare file nella cartella.
- x (Execute): Eseguire il file come programma / Entrare nella cartella (
cd).
La matematica dei permessi (modalità ottale)
Il comando chmod (Change Mode) modifica questi permessi.
Sebbene tu possa usare lettere (es. u+x), i professionisti usano i numeri (notazione ottale).
Ogni permesso ha un valore:
| Permesso | Valore |
|---|---|
| r (Read) | 4 |
| w (Write) | 2 |
| x (Execute) | 1 |
| Nessuno | 0 |
Per impostare i permessi, somma i valori per ogni gruppo (Utente, Gruppo, Altri).
Esempio Classico:
chmod 755
- Utente (7): 4+2+1 (Legge, Scrive, Esegue) -> Pieno controllo.
- Gruppo (5): 4+0+1 (Legge, Esegue) -> Non può modificare.
- Altri (5): 4+0+1 (Legge, Esegue) -> Non può modificare.
Questo è lo standard per script e cartelle pubbliche: il proprietario fa tutto, gli altri guardano ed eseguono ma non toccano.
Scenari Reali
Scenario A: Rendere uno script eseguibile
Hai scritto uno script backup.sh ma Linux ti dice “Permission denied” quando provi a lanciarlo.
chmod +x backup.sh
# Oppure in numerico (700 per renderlo privato, 755 per pubblico)
chmod 755 backup.sh
Scenario B: Proteggere le chiavi SSH (massima sicurezza)
Hai un file .pem o una chiave privata.
Nessuno tranne te deve leggerla, altrimenti SSH rifiuterà la connessione per sicurezza.
chmod 600 chiave_segreta.pem
- 6 (Utente): 4+2 (Legge e Scrive).
- 0 (Gruppo): Nessun accesso.
- 0 (Altri): Nessun accesso.
Scenario C: Il pericolo del 777
Mai usare chmod 777 a meno che tu non sappia esattamente cosa stai facendo.
Significa che chiunque può scrivere, cancellare ed eseguire file.
È un enorme rischio di sicurezza, specialmente sui server web.
chown: Cambiare il proprietario
A volte i permessi sono giusti, ma il proprietario è sbagliato (es. hai caricato file come “root” ma il server web “www-data” deve leggerli).
Sintassi: chown [utente]:[gruppo] [file]
Esempio: Assegnare una cartella al server web Apache/Nginx
chown -R www-data:www-data /var/www/html
-R: Applica il cambio ricorsivamente a tutti i file e sottocartelle dentrohtml.
Tabella Riassuntiva Rapida
| Comando | Categoria | A cosa serve | Sintassi Base |
|---|---|---|---|
| ls | Navigazione | Elenca i file | ls -lah |
| cd | Navigazione | Cambia cartella | cd /percorso/ |
| cp / mv | Gestione | Copia o Sposta file | cp sorgente destinazione |
| rm | Gestione | Rimuove file | rm file |
| grep | Ricerca | Cerca testo nei file | grep "testo" file |
| chmod | Sicurezza | Cambia permessi | chmod 755 file |
| htop | Monitoraggio | Visualizza processi e risorse | htop |
Questa non è una lista esaustiva, ma rappresenta il 20% dei comandi che userai per l’80% del tempo.
Padroneggiare questi strumenti ti darà una confidenza immediata nel gestire server, VPS o il tuo computer personale.
La prossima volta che apri il terminale, non guardarlo con timore: digita ls, premi invio, e inizia a esplorare.



