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. |
Lettura e ricerca nei file
| 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
sudosolo per comandi necessari e non eseguire comandi come amministratore se non li si comprende. - Verificare con
mane--helpse 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
- Manuale di GNU Coreutils nel repository ufficiale
- Manuale di GNU Bash
- Progetto man-pages di Linux
- Manuale ufficiale di systemctl e indice systemd
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.




