LinuxHelp.me Logo

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:

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:

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

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:

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:

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