Linux / 159 comandi essenziali, suddivisi per attività

Per trovare un comando Linux, parti dall’attività: file, testo, utenti e permessi, processi, sistema, dischi, rete o pacchetti. Questa guida raccoglie 159 comandi in 13 gruppi e ne riassume lo scopo; i nomi collegati aprono spiegazioni ed esempi, in italiano dove la traduzione è già disponibile e altrimenti in inglese.

La disponibilità e le opzioni cambiano con distribuzione, versione e pacchetti installati. Nei modelli man nome e nome --help, sostituisci nome con il comando da cercare; per i comandi interni di Bash usa anche help nome. Un comando elencato qui non è necessariamente installato nel tuo sistema.

Come trovare i comandi Linux

Questi quattro comandi sono controlli indipendenti e di sola lettura: consulta il manuale di ls, visualizza le sue opzioni, identifica cd e verifica come la shell risolve python. Richiedono rispettivamente le pagine man installate, GNU ls e, per gli ultimi due, una shell con i relativi comandi interni, come Bash.

man ls
ls --help
type cd
command -v python

man ls apre il manuale; nel pager usuale si esce con q. ls --help elenca le opzioni; type cd in Bash identifica cd come comando interno. command -v python può stampare un percorso, un nome di funzione o un alias; se il nome non viene trovato, non stampa nulla e restituisce uno stato diverso da zero. Alcune distribuzioni espongono solo python3: controlla quel nome separatamente, senza creare alias o collegamenti per far coincidere l’esempio.

Aiuto e ambiente della shell

Comando Panoramica
man Mostra le pagine del manuale di comandi, file di configurazione e chiamate di sistema.
info Legge la documentazione dettagliata dei programmi GNU nel formato Info.
help Mostra l'aiuto per i comandi integrati di Bash come cd e read.
apropos Cerca parole chiave nella descrizione del manuale per trovare comandi correlati.
whatis Mostra una breve descrizione dal manuale su cosa fa un comando.
type Verifica se un nome è un alias, una funzione, un comando integrato della shell o un file eseguibile.
command Esegue un comando senza cercare funzioni della shell con lo stesso nome; con -v descrive come il nome viene risolto, anche se è un alias o un comando interno.
history Mostra o permette di richiamare la cronologia dei comandi della shell corrente.
alias Definisce nomi alternativi per sequenze di comandi usate spesso.
unalias Rimuove gli alias definiti nella shell corrente.
clear Pulisce lo schermo del terminale.
watch Esegue ripetutamente il comando specificato a intervalli regolari per osservare i cambiamenti nei risultati.
time Misura il tempo trascorso e il tempo CPU (unità centrale di elaborazione) usato da un comando.
env Mostra le variabili d'ambiente o esegue un comando con variabili d'ambiente temporanee.
printenv Visualizza i valori di tutte le variabili d'ambiente o delle variabili d'ambiente specificate.

Percorsi e informazioni sui file

Comando Panoramica
pwd Stampa il percorso assoluto della directory di lavoro corrente.
ls Elenca file e directory e può mostrare permessi, proprietario, dimensione e altre informazioni.
cd Cambia la directory di lavoro corrente in un altro percorso.
tree Visualizza la struttura di directory e file sotto forma di albero. Potrebbe essere necessaria un'installazione separata.
file Stima il tipo di file ispezionando il contenuto del file invece dell'estensione.
stat Visualizza dettagli sul file, come dimensione, permessi, inode e tempi di accesso/modifica.
basename Estrae l’ultimo componente di un percorso, come il nome del file o della directory.
dirname Restituisce il percorso senza l’ultimo componente.
realpath Visualizza il percorso assoluto risolvendo i percorsi relativi e i collegamenti simbolici.
readlink Controlla il percorso di destinazione a cui punta il collegamento simbolico.

Comandi per la gestione di file e directory

Comando Panoramica
touch Crea un file vuoto o modifica i tempi di accesso/modifica di un file esistente.
mkdir Crea una nuova directory.
rmdir Elimina una directory vuota.
cp Copia file o directory in un'altra posizione.
mv Sposta o rinomina file e directory.
rm Elimina file o directory. L'eliminazione non va nel cestino, quindi verifica attentamente la destinazione.
ln Crea un collegamento fisico o un collegamento simbolico di un file.
install Copia un file impostando il proprietario, i permessi e la directory di destinazione.
shred Sovrascrive un file e può eliminarlo con le opzioni appropriate. Unità a stato solido (SSD), snapshot, backup e filesystem Copy-on-Write, che possono conservare blocchi precedenti alle modifiche, ne limitano l’efficacia.
mktemp Crea in modo sicuro file temporanei o directory temporanee evitando conflitti di nome.
truncate Riduce o estende un file alla dimensione specificata.
dd Copia o converte dati in blocchi. Se il dispositivo di destinazione è specificato in modo errato, i dati possono essere persi.
Comando Panoramica
cat Visualizza il contenuto dei file o concatena più file.
tac Stampa in ordine inverso a partire dall'ultima riga del file.
less Permette di sfogliare e cercare testo in file lunghi senza stamparlo tutto sul terminale.
more Controlla il contenuto di un file in modo sequenziale, una schermata alla volta.
head Controlla la parte iniziale di un file o dell'output di un comando.
tail Stampa l'ultima parte di un file e, con l'opzione -f, puoi monitorare continuamente le modifiche del log.
grep Trova le righe in un file o nell'output di un comando che corrispondono a una stringa o a un'espressione regolare.
find Cerca file in un percorso specificato utilizzando condizioni come nome, tipo, dimensione, permessi e tempo di modifica.
locate Trova rapidamente percorsi ricercando in un database di file pre-costruito.
which Cerca il percorso di un eseguibile in PATH. Per distinguere anche alias, funzioni e comandi interni è preferibile type.
whereis Cerca l'eseguibile, il sorgente e la pagina man di un comando.
diff Confronta le differenze tra due file o directory riga per riga.
cmp Confronta due file byte per byte per trovare la prima posizione differente.

Comandi per l'elaborazione del testo

Comando Panoramica
wc Conta il numero di righe, parole, caratteri e byte nei file o nell'input.
sort Ordina le righe di testo in base a caratteri, numeri o colonne specificate.
uniq Rimuove le righe duplicate adiacenti o conta il numero di duplicati.
cut Estrae da ogni riga intervalli di byte o caratteri, oppure campi delimitati, secondo le opzioni supportate.
paste Combina orizzontalmente le righe corrispondenti di più file.
join Unisce le righe di due file di testo ordinati in base ai campi comuni.
comm Confronta due file ordinati per distinguere le righe comuni e le righe uniche per ciascun file.
tr Sostituisce o elimina caratteri dell’input e può comprimere ripetizioni di caratteri.
tee Copia lo standard input nello standard output e, contemporaneamente, in uno o più file.
xargs Legge elementi dallo standard input e li passa come argomenti a uno o più comandi; per nomi con spazi o ritorni a capo occorrono delimitatori appropriati.
sed Elabora flussi di testo con operazioni di ricerca, sostituzione, eliminazione e selezione delle righe.
awk Elabora il testo per record e campi, eseguendo calcoli o stampe secondo condizioni.
column Dispone testo in colonne leggibili, usando delimitatori e opzioni della versione installata.
split Divide un file in parti in base a dimensione, numero di righe o altri criteri supportati.
csplit Divide un file in corrispondenza di numeri di riga o pattern.
fmt Riformatta i paragrafi di testo regolando la lunghezza delle righe.
fold Ripiega righe lunghe alla larghezza specificata.
printf Visualizza stringhe e numeri in un formato specificato.

Utenti e permessi

Comando Panoramica
whoami Stampa il nome associato all’ID utente effettivo del processo corrente.
id Mostra gli ID di utente e gruppi, compresi i gruppi supplementari.
who Mostra gli utenti attualmente connessi al sistema e i loro terminali di accesso.
w Mostra insieme utenti connessi, task in esecuzione e carico del sistema.
last Controlla i record di accesso e disconnessione.
groups Stampa i gruppi a cui appartiene l'utente corrente o quello specificato.
passwd Modifica o gestisce le password degli utenti.
sudo Permette agli utenti autorizzati di eseguire comandi come altri utenti, solitamente con privilegi di root.
su Esegue una nuova shell o un comando con l’identità di un altro utente, normalmente root se non è specificato un nome; non cambia l’identità della shell chiamante.
chmod Modifica i permessi di lettura, scrittura ed esecuzione di file e directory.
chown Modifica il proprietario o il gruppo proprietario di file e directory.
chgrp Modifica il gruppo proprietario di file e directory.
umask Mostra o imposta la maschera che rimuove permessi dai modi richiesti per nuovi file e directory; le liste di controllo degli accessi (ACL) predefinite possono influire.
getent Interroga le banche dati configurate tramite Name Service Switch (NSS), come utenti, gruppi e host.

Processi e sessioni del terminale

Comando Panoramica
ps Mostra una selezione dei processi con PID (identificatore), utente, stato e comando secondo le opzioni.
top Controlla l'utilizzo della CPU e della memoria per processo in tempo reale.
htop Mostra e gestisce processi in una schermata interattiva. Può richiedere un’installazione separata.
pgrep Cerca gli ID dei processi per nome del processo e condizioni.
pkill Invia un segnale ai processi che corrispondono al nome o alle condizioni.
kill Invia un segnale come una richiesta di terminazione specificando un ID di processo.
killall Invia un segnale ai processi che corrispondono al nome specificato.
jobs Controlla i job in background e quelli fermati eseguiti nella shell corrente.
bg Continua l'esecuzione dei job della shell fermati in background.
fg Porta un job della shell in background o fermato in primo piano.
nohup Avvia un comando ignorando SIGHUP, il segnale di disconnessione. Non lo mette automaticamente in background e non lo protegge da ogni causa di arresto.
nice Avvia un comando con un valore di niceness che influenza la priorità relativa di pianificazione CPU.
renice Modifica il valore di niceness di processi già in esecuzione, nei limiti consentiti dai permessi.
screen Crea sessioni di terminale che possono essere separate dalla connessione e riaperte.
tmux Gestisce sessioni, finestre e pannelli di terminale, con separazione e riconnessione.

Comandi per informazioni di sistema e servizi

Comando Panoramica
uptime Controlla il tempo di attività del sistema, il numero di utenti connessi e il carico medio.
free Controlla la capacità totale e lo stato di utilizzo della memoria fisica e dello spazio di swap.
uname Visualizza informazioni come la release del kernel attualmente in esecuzione e l'architettura hardware.
hostnamectl In un ambiente systemd, controlla il nome host, la distribuzione, il kernel e le informazioni sull'architettura oppure imposta il nome host.
date Mostra la data e l’ora correnti, anche con un formato specificato; altre opzioni possono impostarle e richiedono privilegi.
timedatectl Consulta o gestisce ora, fuso orario e sincronizzazione dell’ora negli ambienti systemd.
lscpu Visualizza l'architettura della CPU, i core, i thread e le informazioni sulla virtualizzazione.
lsmod Controlla l'elenco dei moduli attualmente caricati nel kernel e il loro stato d'uso.
modinfo Controlla la posizione del file, la descrizione, la versione e i parametri dei moduli del kernel.
dmesg Controlla i messaggi di avvio, dell'hardware e dei driver nel buffer ad anello del kernel.
systemctl Consulta o controlla servizi e altre unità systemd. Avvio immediato e abilitazione per gli avvii successivi sono operazioni distinte.
journalctl Visualizza i log di sistema e di servizio memorizzati nel journal di systemd.
reboot Richiede il riavvio del sistema. Prima occorre verificare lavori in corso e altri utenti; il comportamento dipende anche dalle opzioni.
shutdown Richiede o pianifica arresto o riavvio del sistema, secondo implementazione e opzioni.

Comandi per disco e filesystem

Comando Panoramica
df Controlla la capacità totale e lo spazio disponibile per ogni filesystem montato.
du Calcola l'utilizzo del disco di file e directory.
lsblk Controlla la gerarchia di dischi, partizioni e volumi logici, così come i loro punti di mount.
blkid Interroga l'UUID, il tipo di filesystem e l'etichetta dei dispositivi a blocchi.
mount Collega un filesystem a un punto di mount o ne consulta lo stato; il montaggio effettivo modifica lo stato del sistema.
umount Scollega un filesystem montato quando non è in uso; verificare prima processi e operazioni attive.
fdisk Consulta o modifica tabelle delle partizioni, fra cui MBR e GPT. Prima di salvare modifiche occorre verificare il disco.
parted Consulta e modifica tabelle e partizioni, comprese dimensione e posizione. Ridimensionare la partizione non equivale sempre a ridimensionare il filesystem.
mkfs Crea un nuovo filesystem su un dispositivo o una partizione, con possibile perdita dei dati esistenti.
fsck Controlla ed eventualmente ripara un filesystem tramite lo strumento specifico del formato. Per la riparazione il filesystem va normalmente smontato.
sync Richiede che i dati del file system rimasti in memoria vengano scritti sul dispositivo di archiviazione.

Comandi di rete

Comando Panoramica
ip Controlla o configura le interfacce di rete, gli indirizzi IP, il routing e le tabelle dei vicini.
ss Mostra statistiche dei socket, porte in ascolto e connessioni, fra cui TCP e UDP secondo le opzioni.
ping Invia richieste ICMP Echo e misura le risposte e i tempi di andata e ritorno. La mancata risposta non prova da sola che l’host sia spento.
tracepath Esamina il percorso verso la destinazione e cerca la MTU di percorso, cioè la massima unità di trasmissione lungo il tragitto.
traceroute Traccia il percorso dei router che i pacchetti seguono per raggiungere la destinazione.
dig Interroga server del Domain Name System (DNS), il sistema dei nomi di dominio, e mostra i record e le risposte.
host Esegue semplici interrogazioni DNS per nomi di dominio e indirizzi IP.
nslookup Interroga server DNS per informazioni su nomi di dominio o indirizzi IP.
curl Trasferisce dati da o verso URL usando protocolli come HTTP, secondo le opzioni.
wget Scarica risorse da indirizzi web o FTP e può effettuare download ricorsivi.
nc Esegue connessioni TCP o UDP e semplici trasferimenti di dati; le opzioni di Netcat variano fra implementazioni.
nmap Esamina host, porte e servizi su destinazioni per cui si dispone dell’autorizzazione.
ethtool Consulta o modifica parametri del collegamento Ethernet, informazioni sul driver e funzioni dell’interfaccia.
resolvectl Consulta o gestisce risoluzione dei nomi e impostazioni DNS negli ambienti con systemd-resolved.

Accesso remoto e trasferimento di file

Comando Panoramica
ssh Esegue accessi e comandi remoti tramite SSH (Secure Shell), un protocollo con connessione cifrata.
scp Copia file fra sistemi tramite SSH; nelle versioni moderne di OpenSSH usa normalmente il protocollo SFTP.
sftp Offre trasferimento di file interattivo tramite SSH File Transfer Protocol, distinto da FTP.
rsync Sincronizza in modo efficiente directory locali o remote concentrandoti sui file modificati.
ssh-keygen Crea e gestisce coppie di chiavi SSH e ne mostra le impronte digitali.
ssh-copy-id Installa una chiave pubblica fra le chiavi autorizzate di un account remoto, se l’accesso necessario è consentito.

Il manuale OpenSSH di scp distingue il trasferimento SFTP moderno dal protocollo SCP storico; compatibilità e opzioni dipendono dalla versione installata.

Compressione e archivi

Comando Panoramica
tar Crea, elenca o estrae archivi di file e directory e può usare programmi di compressione.
gzip Comprime dati nel formato gzip.
gunzip Decomprime dati nel formato gzip.
bzip2 Comprime dati nel formato bzip2.
bunzip2 Decomprime dati nel formato bzip2.
xz Comprime dati nel formato xz.
unxz Decomprime dati nel formato xz.
zip Crea o modifica archivi ZIP contenenti file e directory.
unzip Elenca o estrae il contenuto di archivi ZIP.

Comandi di gestione dei pacchetti

Scegli il gestore previsto dalla distribuzione identificata con cat /etc/os-release, descritto nella specifica os-release. APT distingue l’interfaccia interattiva apt da strumenti più adatti agli script, come indica il manuale Debian di apt. Le implementazioni DNF e DNF5 dipendono dalla versione della distribuzione: consulta la documentazione DNF5 se è quella installata. I nomi elencati non rendono intercambiabili comandi e opzioni dei diversi gestori.

Comando Panoramica
apt Interfaccia APT orientata all’uso interattivo per cercare, installare, rimuovere e aggiornare pacchetti Debian e Ubuntu.
apt-get Interfaccia APT adatta anche agli script per operazioni sui pacchetti Debian e Ubuntu.
dpkg Esegue l'installazione locale di pacchetti DEB e interrogazioni del database dei pacchetti sui sistemi basati su Debian.
dnf Gestisce pacchetti e repository sui sistemi Fedora/RHEL/Rocky Linux/AlmaLinux.
rpm Interroga o gestisce file di pacchetti RPM e il database dei pacchetti installati.
zypper Gestisce pacchetti e repository su openSUSE e SUSE Linux Enterprise; le varianti transazionali richiedono procedure specifiche.
pacman Installa e rimuove pacchetti e aggiorna il sistema sulle distribuzioni basate su Arch Linux.
apk Gestisce pacchetti e indici dei repository su Alpine Linux tramite Alpine Package Keeper.

Per i dettagli delle altre famiglie consulta i manuali ufficiali di zypper, pacman e apk, scegliendo anche la documentazione della tua versione.

Punti da verificare quando si usano i comandi

  • Per comandi che modificano o eliminano dati, come rm, dd, mkfs, fdisk, controllare prima il percorso e il dispositivo di destinazione.
  • Usare sudo solo per comandi necessari e non eseguire comandi come amministratore se non li si comprende.
  • Verificare con man e --help se le opzioni trovate su internet esistono sul sistema attuale.
  • Comandi o opzioni potrebbero non esistere a seconda della distribuzione, della versione del programma e dei pacchetti installati.

Documentazione di riferimento

Questa lista è un punto di partenza per trovare rapidamente i comandi. Nell'uso reale, è più sicuro controllare la sintassi di base di ogni comando, le opzioni comunemente utilizzate, esempi di esecuzione e precauzioni prima di usarlo.