Linux – Guida pratica
Questa pagina è destinata a essere un riferimento Linux compatto ma utile.
Tutti gli esempi sono generici e applicabili alla maggior parte delle distribuzioni Linux
(Debian/Ubuntu, RHEL/Fedora, Arch, Alpine), salvo diversa indicazione.
1. Struttura dei file e navigazione
Linux funziona con una singola struttura ad albero centrale (/), non con lettere di unità come in Windows.
Mappe importanti:
/– radice del sistema/home– cartelle utente personali/etc– file di configurazione/var– dati variabili (log, posta, cache)/usr– programmi e librerie/tmp– file temporanei/srv– dati per servizi (web, applicazioni)
La navigazione avviene completamente tramite il terminale. Lavori sempre da una "directory corrente".
Visualizza il percorso attuale:
pwd
Mostra file e cartelle nella cartella corrente:
ls
ls -lah
Opzioni:
-lmostra una visualizzazione a elenco-amostra anche i file nascosti-hrende le dimensioni leggibili
Spostarsi nella struttura delle cartelle:
cd /path/to/folder
cd ..
cd ~
2. Gestire file e cartelle
File e cartelle vengono create, spostate e eliminate completamente tramite comandi.
Creare una mappa:
mkdir folder
mkdir -p a/b/c
-p fa in modo che vengano create anche le sottocartelle mancanti.
Creare un file vuoto o aggiornare il timestamp:
touch file.txt
Copiare file o cartelle:
cp source dest
cp -a source dest
-a (archivio) mantiene i diritti, la proprietà e i symlink ed è quasi sempre consigliato.
Spostare o rinominare file o cartelle:
mv old new
Eliminare file e cartelle:
rm file
rm -r folder
rm -rf folder
-r= ricorsivo-f= forzato, senza conferma
Usa rm -rf solo se sei sicuro di quello che stai facendo.
Creare un collegamento simbolico:
ln -s target link
3. Visualizzare e leggere i file
Per visualizzare i file sono disponibili diversi strumenti, a seconda delle dimensioni e dell'uso.
Mostra il contenuto completo:
cat file
Adatto per file di piccole dimensioni.
Visualizzazione interattiva (scorrimento e ricerca):
less file
Visualizzare le prime o le ultime righe:
head -n 20 file
tail -n 20 file
Seguire un file in tempo reale (ad esempio log):
tail -f /var/log/syslog
4. Ricerca e filtraggio del testo
Linux offre strumenti potenti per cercare e filtrare il testo, soprattutto nei log e nei file di configurazione.
Cerca testo:
grep "text" file
grep -R "text" folder
grep -Rni "tekst" folder
Opzioni:
-R= ricorsivo-n= numero di riga-i= case insensitive
Cerca file per nome:
find . -name "*.log"
Cerca file per data di modifica:
find . -type f -mtime -7
Estrarre colonne o campi dal testo:
awk '{print $1}' file
cut -d: -f1 file
5. Diritti e proprietà
Linux funziona con utenti, gruppi e permessi per file.
Visualizza diritti:
ls -l
Modifica diritti:
chmod 644 file
chmod 755 script.sh
Significato:
644= leggere/scrivere per il proprietario, leggere per gli altri755= eseguibile da tutti
Modifica proprietario e gruppo:
chown user:group file
Visualizza l'utente attuale e i gruppi:
id
groups
6. Processi e stato del sistema
Linux fornisce approfondimenti dettagliati sui processi attivi e sull'uso del sistema.
Tutti i processi mostrano:
ps aux
Live panoramica di CPU e memoria:
top
htop
Visualizza utilizzo della memoria:
free -h
Spazio su disco per filesystem:
df -h
Dimensione di una mappa:
du -sh folder
Terminare un processo:
kill PID
kill -9 PID
-9 forza la chiusura e deve essere utilizzato solo come ultima risorsa.
7. Rete e connettività
Lo stato della rete e la connettività sono essenziali per server e applicazioni.
Interfacce di rete e route:
ip a
ip r
Porte e processi in ascolto:
ss -tulpn
Testare la connessione di rete:
ping domain.tld
Eseguire richieste HTTP:
curl https://site.tld
curl -I https://site.tld
Richiesta di informazioni DNS:
dig domain.tld
Controllare se una porta è raggiungibile:
nc -vz host 443
8. Servizi e log (systemd)
La maggior parte dei moderni sistemi Linux utilizza systemd per la gestione dei servizi.
Stato e gestione dei servizi:
systemctl status service
systemctl start service
systemctl stop service
systemctl restart service
systemctl reload service
Servizi avviati automaticamente all'avvio:
systemctl enable service
systemctl disable service
Visualizza i log:
journalctl -u service
journalctl -u service -f
journalctl -p err
9. Gestori di pacchetti
Il software viene installato tramite il gestore di pacchetti della distribuzione.
Debian / Ubuntu (apt)
apt update
apt install package
apt remove package
apt purge package
apt autoremove
RHEL / Fedora (dnf)
dnf install package
dnf remove package
dnf search package
Arch (pacman)
pacman -S package
pacman -Rns package
pacman -Syu
Alpino (apk)
apk add package
apk del package
10. Git – gestione delle versioni
Git viene utilizzato per la gestione delle versioni del codice e della configurazione.
Comandi di base:
git init
git clone url
git status
git add .
git commit -m "description"
Sincronizzare con un remoto:
git pull --rebase
git push
Comprensione delle modifiche:
git log --oneline --graph
git diff
11. Docker – contenitori
Docker consente di eseguire applicazioni in modo isolato.
Gestire le immagini nei contenitori:
docker pull image
docker images
docker ps
docker ps -a
Avviare e gestire un container:
docker run -d -p 8080:80 image
docker logs container
docker exec -it container sh
Docker Compose:
docker compose up -d
docker compose down
12. Sicurezza di base
Una base di sicurezza minima è essenziale, soprattutto sui server.
Firewall (Ubuntu):
ufw status
ufw allow 22
ufw enable
Nftables (firewall a livello basso):
nft list ruleset
Protezione contro attacchi brute-force:
fail2ban-client status
Aggiornamenti di sicurezza automatici:
apt install unattended-upgrades
13. Strumenti di utilità comuni
curl,wget– richieste HTTPjq– elaborare JSONrsync– sincronizzazione efficiente dei filetmux– più shell in una sessionencdu– analizzare lo spazio su discolsof– file e porte apertitcpdump– ispezionare il traffico di rete
