🐧 Riga di comando Linux

Multilingual DevOps cheat sheet: Linux, Docker, Git, Kubernetes, Helm, Terraform, practical scenarios & templates.
Data di Pubblicazione

31 agosto 2025

Comandi di base e avanzati per navigazione, file, processi, rete, monitoraggio, pacchetti e automazione. Adatto ai flussi di lavoro DevOps.

🔹 Comandi di base

Comando

Esempio

Descrizione

cat Mostra il contenuto di un file o concatena più file
cat file.txt

Visualizza il contenuto di un file

cat file1 file2

Concatena e mostra due file

cat file1 file2 > merged.txt

Concatena file e salva in un nuovo file

cd Cambia la directory di lavoro corrente
cd /etc

Vai al percorso assoluto /etc

cd ~

Vai alla home directory

cd ..

Sali di un livello

cd -

Torna alla directory precedente

clear Pulisci lo schermo del terminale
cp Copia file e directory
cp file1.txt file2.txt

Copia un file con un nuovo nome

cp -r dir1 dir2

Copia ricorsivamente una directory

cp -i file.txt /tmp/

Copia con conferma prima di sovrascrivere

echo Stampa una stringa o una variabile d’ambiente
echo "Hello, World!"

Stampa una semplice stringa

echo $HOME

Mostra il percorso della home directory

echo -e "1\t2\n3"

Interpreta le sequenze di escape ( )

history Mostra la cronologia dei comandi
id Mostra UID, GID e gruppi dell’utente corrente
ls Elenca file e directory
ls -l

Elenco dettagliato con permessi e proprietari

ls -a

Mostra i file nascosti

ls -lh

Dimensioni leggibili per l’uomo

mkdir Crea directory
mkdir folder

Crea una singola directory

mkdir -p a/b/c

Crea directory annidate

mkdir dir{1,2,3}

Crea più directory contemporaneamente

mv Sposta o rinomina file/directory
mv oldname.txt newname.txt

Rinomina un file

mv file.txt /path/to/dir/

Sposta un file in un’altra directory

mv *.txt archive/

Sposta tutti i file .txt nella cartella archive

pwd Mostra la directory di lavoro corrente
pwd -P

Mostra il percorso fisico (senza symlink)

cd /tmp && pwd

Mostra il percorso dopo essere entrato in /tmp

rm Rimuove file o directory
rm file.txt

Elimina un file

rm -i file.txt

Elimina un file con conferma

rm -r folder/

Elimina ricorsivamente una directory

rm -rf folder/

Forza l’eliminazione senza conferma

rmdir Rimuove una directory vuota
rmdir emptydir

Rimuovi la directory emptydir

touch Crea file vuoti o aggiorna l’ora di modifica
touch newfile.txt

Crea un nuovo file vuoto se non esiste

touch a b c

Crea più file contemporaneamente

touch -c file.txt

Aggiorna l’orario senza creare un file se assente

whereis Trova il binario, il sorgente e le pagine man di un comando
whereis ls

Trova le posizioni per ls

whereis bash

Mostra i percorsi per il binario e la documentazione di Bash

whereis -b bash

Cerca solo il binario

which Mostra il percorso dell’eseguibile del comando
which python3

Percorso di python3

which grep

Percorso di grep

which --skip-alias ls

Ignora gli alias durante la ricerca

whoami Stampa il nome utente effettivo

🔸 Livello intermedio

Comando

Esempio

Descrizione

chmod Cambia i permessi di file o directory
chmod 755 file

Imposta i permessi con notazione ottale (es. 755)

chmod +x script.sh

Aggiungi il bit di esecuzione a uno script

chmod -R 644 dir/

Imposta ricorsivamente i permessi su una directory

chown Cambia proprietario e gruppo di un file
chown user file

Cambia il proprietario di un file

chown user:group file

Cambia proprietario e gruppo

chown -R user:group dir/

Cambia ricorsivamente proprietario e gruppo

curl Trasferisce dati da/a un server (HTTP, HTTPS, ecc.)
curl -I https://example.com

Invia una richiesta HEAD (solo intestazioni)

curl -O https://example.com/file.txt

Scarica un file mantenendo il suo nome

curl -d "a=1&b=2" -X POST URL

Invia una richiesta POST con dati di un form

df Mostra l’utilizzo dello spazio su disco del file system
df -h

Dimensioni leggibili per l’uomo

df /home

Utilizzo di un punto di mount specifico

df -T

Mostra i tipi di file system

diff Confronta file o directory
diff file1 file2

Confronta due file

diff -u old.c new.c

Diff unificato (stile patch)

diff -r dir1 dir2

Confronto ricorsivo tra directory

du Stima l’utilizzo dello spazio da parte di file e directory
du -sh *

Mostra la dimensione degli elementi nella directory corrente

du -h file.txt

Mostra la dimensione di un singolo file

du -sh --max-depth=1 /var

Riassume le dimensioni delle sottodirectory principali

find Cerca file/directory per nome, dimensione, tempo, ecc.
find . -name "*.log"

Trova tutti i file .log nella directory corrente

find / -type f -size +100M

Trova file più grandi di 100 MB

find . -mtime -1

File modificati nell’ultimo giorno

free Mostra la quantità di memoria libera e usata
free -h

Unità di memoria leggibili per l’uomo

free -m

Mostra valori in MB

watch -n 2 free -h

Aggiorna l’output ogni 2 secondi

grep Cerca testo usando pattern (espressioni regolari)
grep "error" logfile

Trova righe contenenti error

grep -r "error" /var/log

Ricerca ricorsiva in una directory

grep -i "fail" file

Ricerca senza distinzione tra maiuscole e minuscole

head Mostra le prime righe di un file
head -n 10 file

Prime 10 righe

head -n 20 file.txt

Prime 20 righe

head -c 100 file

Primi 100 byte

hostname Mostra o imposta il nome host del sistema
hostname newname

Imposta temporaneamente il nome host fino al riavvio

hostname -I

Mostra gli indirizzi IP

kill Invia segnali ai processi
kill -9 1234

Forza la chiusura di un processo tramite PID

kill -TERM 1234

Termina in modo pulito con SIGTERM

pkill -f python

Uccidi processi corrispondenti a un pattern

ping Verifica la connettività di rete usando richieste ICMP echo
ping 8.8.8.8

Ping a un indirizzo

ping -c 4 ya.ru

Invia 4 pacchetti

ping -i 2 1.1.1.1

Imposta un intervallo di 2 secondi

ps Mostra lo stato dei processi
ps aux

Elenca tutti i processi

ps -ef | grep nginx

Filtra per nome usando grep

ps -u $USER

Processi dell’utente corrente

rsync Trasferimento veloce e incrementale di file
rsync -av src/ dst/

Sincronizza directory localmente

rsync -avz user@host:/src /dst

Sincronizza con un host remoto via SSH

rsync --delete src/ dst/

Elimina file nella destinazione mancanti nella sorgente

scp Copia sicura (programma per copia remota)
scp file user@host:/path

Copia un file su un host remoto

scp user@host:/file.txt .

Copia un file da un host remoto

scp -r dir user@host:/path

Copia ricorsivamente una directory

sort Ordina righe di testo
sort file.txt

Ordine alfabetico

sort -r file.txt

Ordine inverso

sort -n numbers.txt

Ordine numerico

tail Mostra la parte finale dei file; segue i cambiamenti
tail -f logfile.log

Segui un log in tempo reale

tail -n 20 file.txt

Mostra le ultime 20 righe

tail -c 100 file.txt

Mostra gli ultimi 100 byte

tar Crea, elenca o estrai archivi tar
tar -czf archive.tgz dir/

Crea un archivio compresso .tgz

tar -xzf archive.tgz

Estrai un archivio .tgz

tar -tf archive.tgz

Elenca il contenuto di un archivio

tee Legge da stdin e scrive su stdout e file
echo "test" | tee out.txt

Scrivi l’output in out.txt e visualizzalo

ls | tee list.txt

Salva l’output di ls in un file e visualizzalo

command | tee -a log.txt

Aggiungi l’output alla fine di log.txt

top Mostra i task di Linux (visualizzatore interattivo dei processi)
top

Avvia top

htop

Visualizzatore interattivo alternativo (htop)

top -o %MEM

Ordina per utilizzo della memoria

uptime Mostra da quanto tempo il sistema è in esecuzione
uptime -p

Uptime in forma leggibile

uptime -s

Ora di avvio del sistema

wget Downloader di rete non interattivo
wget https://site.com/file.zip

Scarica un file tramite URL

wget -c file.zip

Riprendi un download interrotto

wget -O saved.txt URL

Salva con un nome file diverso

wc Stampa conteggio di righe, parole e byte dei file
wc -l file

Conta le righe

wc -w file

Conta le parole

wc -m file

Conta i caratteri

uniq Segnala o filtra le righe duplicate (adiacenti)
uniq file.txt

Rimuovi duplicati adiacenti

sort file | uniq

Rimuovi duplicati dopo sort

sort file | uniq -c

Conta le occorrenze di ogni riga

yes Ripete una stringa finché interrotto; utile negli script
yes "y" | command

Rispondi sempre “y” ai prompt

yes | rm -i *

Conferma automaticamente le eliminazioni interattive

yes no | command

Rispondi “no” ai prompt

🔧 Comandi avanzati

Comando

Esempio

Descrizione

at Pianifica un comando una tantum da eseguire a un’ora specifica
at now + 1 minute

Esegui un comando tra un minuto

atq

Elenca i job in sospeso

atrm

Rimuovi un job in sospeso

awk Linguaggio per la scansione e l’elaborazione di pattern
awk '{print $1}' file

Stampa la prima colonna

ps aux | awk '$3 > 50'

Filtra i processi per utilizzo CPU

cat file.txt | awk '{print $2}'

Stampa il secondo campo di ogni riga

awk '/error/ {print $0}' logfile

Stampa le righe corrispondenti a un pattern

crontab Installa, elenca o rimuove i job cron per utente
crontab -e

Modifica il crontab dell’utente corrente

crontab -l

Elenca i job cron

crontab -r

Rimuovi il crontab dell’utente corrente

cut Rimuove o seleziona sezioni da ogni riga di file
cut -d':' -f1 /etc/passwd

Stampa i nomi utente da /etc/passwd

echo "a:b:c" | cut -d':' -f2

Taglia il secondo campo usando ‘:’ come delimitatore

cut -c1-5 filename

Seleziona caratteri per posizione

df Mostra l’utilizzo dello spazio disco del file system
df -h

Dimensioni leggibili per l’uomo

df -T

Mostra i tipi di file system

df /home

Utilizzo della home directory

env Esegui un comando in un ambiente modificato o stampa l’ambiente
env | grep PATH

Mostra le voci di PATH

env -i bash

Avvia una shell pulita con ambiente vuoto

export Imposta variabili d’ambiente per la shell/sessione corrente
export VAR=value

Imposta una variabile per questa shell

export PATH=$PATH:/new/path

Aggiungi una directory a PATH

export -p

Elenca le variabili esportate

free Mostra l’utilizzo della memoria
free -m

Mostra in MB

free -h

Unità leggibili per l’uomo

free -s 5

Campiona ogni 5 secondi

hostnamectl Interroga e modifica l’hostname del sistema e le impostazioni correlate
hostnamectl status

Mostra lo stato dell’hostname

hostnamectl set-hostname newname

Imposta un nuovo hostname statico

ifconfig / ip Strumenti IP per visualizzare/gestire interfacce e indirizzi
ifconfig

Mostra interfacce di rete (legacy)

ip a

Mostra indirizzi con ip

ip link set eth0 up

Attiva un’interfaccia

iostat Mostra statistiche CPU e I/O
iostat -x 2

Statistiche estese ogni 2 secondi

iostat -d 5 3

Statistiche dispositivi (intervallo 5s, 3 report)

iptables Strumento di amministrazione per filtraggio pacchetti IPv4 e NAT
iptables -L

Elenca le regole correnti

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Consenti connessioni SSH in ingresso sulla porta 22

iptables -F

Svuota tutte le regole

journalctl Interroga il journal di systemd
journalctl -xe

Mostra errori recenti con contesto

journalctl -u nginx.service

Mostra i log di un servizio

journalctl --since "2 hours ago"

Mostra log da un tempo relativo

ln Crea collegamenti tra file
ln -s target link

Crea un link simbolico

ln file.txt backup.txt

Crea un hard link

ln -sf target link

Ricrea forzatamente un link simbolico

sed Editor di flussi per filtrare e trasformare testo
sed 's/old/new/g' file

Sostituisci una stringa globalmente

sed -n '1,5p' file

Stampa solo un intervallo di righe

sed '/pattern/d' file

Elimina righe corrispondenti a un pattern

systemctl Controlla il sistema e i servizi gestiti da systemd
systemctl status nginx

Mostra lo stato di un servizio

systemctl start nginx

Avvia un servizio

systemctl enable nginx

Abilita un servizio all’avvio

tr Traduce o elimina caratteri
tr a-z A-Z

Converti minuscole in maiuscole

echo "hello" | tr 'h' 'H'

Sostituisci un carattere

echo "abc123" | tr -d '0-9'

Elimina cifre

type Descrive come un nome viene interpretato nella shell
type ls

Mostra come viene risolto ls

type cd

Mostra come viene risolto cd

type python3

Mostra come viene risolto python3

ulimit Ottieni o imposta limiti di risorse dei processi utente
ulimit -n

Mostra il numero massimo di file aperti

ulimit -c unlimited

Abilita core dump

ulimit -u 4096

Limita il numero di processi utente

uptime Mostra uptime del sistema e carico medio
uptime -p

Uptime leggibile

uptime -s

Mostra ora di avvio

xargs Costruisce ed esegue comandi da input standard
xargs -n 1 echo

Stampa ogni argomento su una riga separata

echo "a b c" | xargs -n 1

Dividi parole in argomenti separati

find . -name '*.txt' | xargs rm

Trova file e rimuovili con xargs

🌐 Comandi di rete

Comando

Esempio

Descrizione

curl Trasferisce dati da/a server
curl -X POST -d "a=1" URL

Richiesta POST con dati di un form

curl -I URL

Recupera solo le intestazioni

curl -o file.html URL

Scarica e salva su file

dig Utility per interrogazioni DNS
dig openai.com

Richiedi record A

dig +short openai.com

Risposta breve

dig @8.8.8.8 openai.com

Usa un server DNS specifico

ftp Client FTP (File Transfer Protocol)
ftp host

Connetti a un server FTP

ftp -n host

Connetti senza login automatico

ftp> get file.txt

Scarica un file in una sessione FTP

ip address Mostra/gestisce indirizzi IP
ip addr show eth0

Mostra info indirizzo per eth0

ip addr

Elenca tutti gli indirizzi

ip link Mostra/gestisce dispositivi di rete
ip link show

Mostra collegamenti di rete

ip link set eth0 up

Attiva un’interfaccia

ip route Mostra/gestisce la tabella di routing IP
ip route list

Elenca la tabella di routing

ip route add default via 192.168.1.1

Aggiungi una route predefinita

nc Connessioni e listener TCP/UDP arbitrari
nc -zv host 22

Scansiona le porte di un host

nc -l 1234

Ascolta su una porta TCP

nc host 1234 < file

Invia un file a una porta remota

nmap Strumento di esplorazione rete e scanner di porte/sicurezza
nmap -sP 192.168.1.0/24

Ping scan di una subnet

nmap -sV 192.168.1.1

Rilevamento servizi/versioni

nmap -O 192.168.1.1

Rilevamento sistema operativo

nslookup Interroga i server DNS
nslookup google.com

Interroga un nome di dominio

nslookup 8.8.8.8

Reverse lookup per un IP

ssh Client OpenSSH per login remoto
ssh user@host

Connetti a un host

ssh -p 2222 user@host

Connetti usando una porta non predefinita

ssh -i ~/.ssh/id_rsa user@host

Accedi con una chiave privata specifica

ss Utility per analizzare i socket
ss -tuln

Elenca le porte TCP/UDP in ascolto

ss -s

Statistiche di riepilogo

ss -l

Elenca i socket in ascolto

telnet Interfaccia utente al protocollo TELNET
telnet host 80

Connetti a un host sulla porta 80

telnet example.com 443

Connetti alla porta 443

telnet localhost 25

Connetti al servizio SMTP locale

traceroute Traccia il percorso verso un host di rete
traceroute 8.8.8.8

Traccia percorso verso un IP

traceroute -m 15 8.8.8.8

Limita il numero massimo di hop

wget Recupera file dal web
wget -O file.txt URL

Salva output su file

wget URL

Scarica nella directory corrente

wget -c URL

Continua un download parziale

🔍 Ricerca e gestione file

Comando

Esempio

Descrizione

basename Rimuove directory e suffisso dai nomi file
basename /path/to/file

Stampa il nome file da un percorso

basename /path/to/file .txt

Rimuovi un suffisso dal nome

dirname Rimuove l’ultimo componente da un percorso
dirname /path/to/file

Mostra la parte directory del percorso

dirname /etc/passwd

Mostra il genitore di /etc/passwd

du Stima l’utilizzo dello spazio dei file
du -sh folder/

Mostra la dimensione di una directory

du -h *

Mostra la dimensione degli elementi nella directory corrente

du -c folder1 folder2

Dimensione cumulativa di più directory

file Determina il tipo di file
file some.bin

Rileva il tipo di file

file *

Rileva i tipi per tutti i file in una directory

file -i file.txt

Mostra il tipo MIME

find Cerca file
find /path -type f -name "*.sh"

Trova script shell per nome

find . -size +10M

Trova file più grandi di 10 MB

find /tmp -mtime -1

Trova file modificati nell’ultimo giorno

locate Trova file per nome usando un database
locate filename

Trova un nome file

locate *.conf

Ricerca con caratteri jolly

locate -i README

Ricerca senza distinzione maiuscole/minuscole

realpath Mostra il percorso assoluto risolto
realpath file

Risolvi il percorso di un file

realpath ../relative/path

Risolvi un percorso relativo

stat Mostra stato di file o file system
stat file

Mostra stato dettagliato di un file

stat -c %s file

Stampa solo la dimensione del file

stat -f file

Mostra stato del file system

tree Elenca contenuti delle directory in formato ad albero
tree

Stampa l’albero delle directory

tree -L 2

Limita la profondità di visualizzazione

tree -a

Includi file nascosti

📊 Monitoraggio del sistema

Comando

Esempio

Descrizione

dmesg Stampa o controlla il buffer ad anello del kernel
dmesg | tail

Mostra gli ultimi messaggi del kernel

dmesg | grep usb

Filtra i messaggi USB

free Mostra l’utilizzo della memoria
free -h

Unità leggibili per l’uomo

free -m

Mostra in MB

htop Visualizzatore interattivo dei processi
htop

Esegui htop

iotop Mostra l’utilizzo I/O per processo
iotop

Esegui iotop

iotop -o

Mostra solo i processi che fanno I/O

lsof Elenca i file aperti
lsof -i :80

Mostra i processi che usano la porta 80

lsof -u username

Mostra i file aperti da un utente

uptime Mostra uptime del sistema e carichi medi
vmstat Mostra statistiche di memoria virtuale
vmstat 1

Aggiorna ogni 1 secondo

vmstat 5 3

Intervallo di 5 secondi, 3 report

watch Esegue periodicamente un programma mostrando l’output
watch -n 1 df -h

Monitora l’utilizzo del disco

watch -d free -h

Evidenzia le differenze e monitora la memoria

📦 Gestione pacchetti

Comando

Esempio

Descrizione

apt Gestore pacchetti APT (Debian/Ubuntu)
apt install curl

Installa un pacchetto

apt remove curl

Rimuovi un pacchetto

apt update && apt upgrade

Aggiorna lista pacchetti e fai upgrade

dnf Dandified YUM (famiglia Fedora/RHEL)
dnf install curl

Installa un pacchetto

dnf upgrade

Aggiorna pacchetti

rpm Gestore pacchetti RPM
rpm -ivh package.rpm

Installa un pacchetto RPM

rpm -e package

Elimina (disinstalla) un pacchetto

snap Gestore pacchetti Snappy
snap install app

Installa uno snap

snap remove app

Rimuovi uno snap

yum Yellowdog Updater Modified (RHEL/CentOS)
yum install curl

Installa un pacchetto

yum remove curl

Rimuovi un pacchetto

💽 File system

Comando

Esempio

Descrizione

blkid Trova/stampa attributi dei dispositivi a blocchi
blkid

Elenca dispositivi a blocchi e attributi

df Mostra utilizzo dello spazio disco del file system
df -Th

Dimensioni leggibili per tipo

fsck Controlla e ripara un file system Linux
fsck /dev/sda1

Controlla un dispositivo

lsblk Elenca informazioni sui dispositivi a blocchi
lsblk

Elenca dispositivi in formato ad albero

mkfs Crea un file system Linux
mkfs.ext4 /dev/sdb1

Crea un file system ext4

mount Monta un file system
mount /dev/sdb1 /mnt

Monta un dispositivo su /mnt

mount | grep /mnt

Mostra i file system montati filtrati per percorso

parted Programma di gestione delle partizioni
parted /dev/sdb

Apri un disco per il partizionamento

umount Smonta file system
umount /mnt

Smonta un punto di mount

🤖 Script e automazione

Comando

Esempio

Descrizione

alias Definisci o mostra alias della shell
alias ll='ls -la'

Crea un alias utile

alias

Elenca alias definiti

bash / sh Esegui script shell
bash script.sh

Esegui uno script con Bash

sh script.sh

Esegui uno script con sh

crontab Tabelle cron per utente
crontab -e

Modifica il crontab dell’utente corrente

read Richiedi input all’utente negli script shell
read name

Leggi in una variabile

set Imposta opzioni/parametri posizionali della shell
set -e

Esci al primo errore

source Leggi ed esegui comandi da un file nella shell corrente
source ~/.bashrc

Ricarica la configurazione della shell

trap Intercetta segnali ed esegui comandi
trap "echo 'exit'" EXIT

Esegui un comando all’uscita dalla shell

🛠 Sviluppo e debugging

Comando

Esempio

Descrizione

gcc Compilatore GNU C
gcc main.c -o app

Compila un file sorgente C

gdb Debugger GNU
gdb ./app

Debug di un binario compilato

git Sistema di controllo versione distribuito
git status

Mostra lo stato dell’albero di lavoro

git commit -m "msg"

Effettua commit con messaggio

ltrace Tracer di chiamate a libreria
ltrace ./app

Traccia chiamate a libreria di un binario

make Utility per mantenere gruppi di programmi
make

Compila secondo Makefile

shellcheck Analisi statica per script shell
shellcheck script.sh

Lint di uno script shell

strace Traccia chiamate di sistema e segnali
strace ./app

Traccia le syscall di un programma

valgrind Framework di strumentazione per analisi dinamiche
valgrind ./app

Esegui un programma con Valgrind

vim / nano Editor di testo da riga di comando
vim file.sh

Modifica con Vim

nano file.sh

Modifica con Nano

📌 Varie

Comando

Esempio

Descrizione

cal Mostra un calendario
cal 2025

Mostra calendario annuale

cal 08 2025

Mostra un mese specifico

date Mostra o imposta data e ora del sistema
date +%T

Stampa ora corrente (HH:MM:SS)

date -d "next friday"

Stampa la data per un giorno relativo

factor Fattorizza interi
factor 100

Fattorizza un numero

man Formatta e mostra le pagine manuali online
man tar

Apri una pagina man

man -k copy

Cerca manuali per parola chiave

man 5 passwd

Apri una sezione specifica del manuale

seq Stampa sequenze di numeri
seq 1 5

Conta da 1 a 5

seq 1 2 9

Conta con passo

seq -s ',' 1 5

Unisci numeri con un separatore personalizzato

yes Stampa ripetutamente una stringa finché interrotto
yes | rm -r dir

Conferma automaticamente una rimozione ricorsiva

📚 Risorse aggiuntive

📘 pagine man - manuali dettagliati dei comandi:

man ls
man rm

📙 TLDR - esempi concisi di utilizzo dei comandi più popolari:

🧠 Suggerimento: Installa tldr per un aiuto in stile cheat sheet:

sudo apt install tldr   # oppure: npm install -g tldr
tldr tar                # esempio di un breve riepilogo per il comando tar

🌐 Link utili

Pagine man Linux online — manuali ufficiali, ricercabili per nome comando:
https://man7.org/linux/man-pages/

Pagine man semplificate e della community — pagine di aiuto guidate dalla community con esempi pratici:
https://tldr.sh/