Glossario comandi Linux (Shell)

Comandi essenziali, categorie e opzioni più usate

Per ogni comando trovi significato e “Opzioni” (opzioni/usi) con spiegazione.
Nota importante
  • Per l’elenco completo delle opzioni di un comando, usa man comando oppure comando --help (variano tra distribuzioni e versioni).
Aiuto e manuali
Comando Significato Opzioni Significato
man Manuale del comando man ls Apre la pagina di manuale di ls.
-k parola Cerca “parola” nel database dei manuali (come apropos).
-f comando Descrizione breve del comando (come whatis).
apropos Cerca comandi per parola chiave apropos network Mostra comandi legati a “network”.
whatis Descrizione sintetica whatis ls Mostra una breve descrizione di ls.
--help Aiuto rapido del comando ls --help Mostra opzioni principali e uso del comando.
Consiglio pratico
Durante i laboratori, prima di “inventare” una sintassi: apri il manuale e cerca la sezione OPTIONS (in man usa /OPTIONS).
Navigazione e listing
Comando Significato Opzioni Significato
pwd Stampa directory corrente -P Percorso fisico (risolve i link simbolici).
-L Percorso logico (default: mantiene symlink).
ls Elenca file e cartelle -l Formato lungo (permessi, owner, size, data).
-a Include nascosti (anche . e ..).
-A Include nascosti ma non . e ...
-h Dimensioni leggibili (con -l).
-R Ricorsivo (entra nelle sottocartelle).
-t Ordina per data di modifica.
-S Ordina per dimensione.
-r Inverte l’ordine di sorting.
-1 Un elemento per riga.
-d Mostra la directory come elemento (non il contenuto).
cd Cambia directory (built-in) .. Sali di un livello.
- Torna alla directory precedente.
~ Vai alla home dell’utente.
/percorso Vai a percorso assoluto.
percorso Vai a percorso relativo.
tree Visualizza struttura ad albero (se installato) -L N Limita la profondità a N livelli.
-a Include file nascosti.
-d Mostra solo directory.
Esempi rapidi
  • cd .. (salgo) → pwd (controllo) → ls -la (lista completa)
  • ls -lhS (dimensioni leggibili, ordinate per dimensione)
File e directory management
Comando Significato Opzioni Significato
touch Crea file / aggiorna timestamp -c Non creare il file se non esiste.
-a Aggiorna solo “access time”.
-m Aggiorna solo “modify time”.
-t YYYYMMDDhhmm[.ss] Imposta data/ora specifica.
mkdir Crea directory -p Crea anche le directory genitore.
-v Verbose.
-m MODE Imposta permessi alla creazione (es. 755).
cp Copia file/cartelle -r / -R Ricorsivo (necessario per directory).
-i Chiede prima di sovrascrivere.
-n Non sovrascrive file esistenti.
-u Copia solo se sorgente più nuova o destinazione mancante.
-v Verbose.
-a “Archive”: preserva attributi e copia ricorsiva.
mv Sposta/rinomina -i Chiede prima di sovrascrivere.
-n Non sovrascrive.
-u Sposta solo se sorgente più nuova o destinazione mancante.
-v Verbose.
rm Rimuove file/cartelle -i Chiede conferma (consigliato in laboratorio).
-f Forza (no prompt).
-r / -R Ricorsivo (directory).
-v Verbose.
rmdir Rimuove directory vuote -p Rimuove anche i genitori se diventano vuoti.
-v Verbose.
ln Crea link -s Link simbolico (symlink).
-f Forza sostituzione se esiste.
-v Verbose.
Attenzione con rm -rf
rm -rf elimina senza chiedere: usarlo solo quando si è certi del percorso (e mai da / o da directory “sensibili”).
Testo, pipe e ricerca
Idee chiave
  • Redirect: sposti l’output verso file (o leggi input da file).
  • Pipe (|): colleghi comandi, trasformando output in input.
  • Filtri (es. grep, sort): elaborano testo riga per riga.
Comando Significato Opzioni Significato
cat Stampa/concatena file -n Numera tutte le righe.
-b Numera solo righe non vuote.
-A Mostra caratteri speciali (fine riga, TAB, ecc.).
-s Comprimi righe vuote multiple.
less Lettura a pagine -N Mostra numeri di riga.
-S Taglia righe lunghe (no wrap).
+F Modalità “follow” tipo tail -f.
head Prime righe/byte -n N Prime N righe.
-c N Primi N byte.
tail Ultime righe/byte -n N Ultime N righe.
-c N Ultimi N byte.
-f Follow (utile per log).
wc Conta righe/parole/byte -l Righe.
-w Parole.
-c Byte.
-m Caratteri (dipende da locale/encoding).
> Redirect stdout (sovrascrive) cmd > file Scrive su file, sostituendo contenuto precedente.
cmd 1> file Come sopra (stdout esplicito).
>> Redirect stdout (append) cmd >> file Aggiunge in coda.
< Redirect stdin cmd < file Legge input da file.
2> Redirect stderr cmd 2> err.log Salva errori su file.
2>> Append stderr cmd 2>> err.log Aggiunge errori in coda.
&> Stdout + stderr insieme cmd &> all.log Salva tutto nello stesso file.
| Pipe cmd1 | cmd2 stdout di cmd1 diventa stdin di cmd2.
tee Duplica output tee file Mostra a schermo e salva su file.
-a Append al file.
sort Ordina righe -n Numerico.
-r Inverso.
-u Unici.
-t SEP Separatore campi.
-k N Ordina per campo N.
uniq Gestisce duplicati adiacenti -c Conta occorrenze.
-d Solo duplicati.
-u Solo unici.
cut Estrae campi/colonne -d SEP Separatore.
-f LIST Campi (es. 1,3,5).
-c LIST Caratteri (es. 1-10).
--complement Seleziona il complemento: stampa tutto tranne i campi/caratteri indicati con -f o -c.
tr Trasforma caratteri -d SET Elimina caratteri del set.
-s SET Comprimi ripetizioni.
sed Stream editor -n Non stampa automaticamente.
-i Modifica in-place (attenzione!).
-E Regex estese.
awk Elaborazione a campi -F SEP Separatore di campo.
grep Cerca pattern (testo) dentro file o stream -i Ignora maiuscole/minuscole.
-n Mostra il numero di riga.
-r Ricerca ricorsiva nelle directory (scende nelle sottocartelle).
-E Usa regex estese (alternativa a egrep).
-F Interpreta il pattern come stringa fissa (no regex). Utile per prestazioni o caratteri speciali.
-v Inverte la selezione: mostra le righe che non corrispondono.
-w Match della parola intera (evita sottostringhe).
-o Stampa solo la parte che corrisponde (match) e non tutta la riga.
--color=auto Evidenzia le corrispondenze (solo su terminale).
column Allinea testo in colonne (formato tabellare) -t Modalità tabella: allinea automaticamente le colonne (opzione più usata).
-s SEP Imposta il separatore di campo in input (es. ;, ,, $'\t' per TAB).
-o SEP Imposta il separatore tra colonne in output (es. ' | ').
-c N Larghezza output (in caratteri). Utile se il terminale è stretto.
-x Riempie prima in righe invece che “a colonne” (utile con -c).
--help Mostra tutte le opzioni disponibili (possono variare tra versioni/distro).
Ricerca (contenuti e file): comandi chiave
  • grep cerca dentro i file; find cerca i file nel filesystem.
  • Combinazione tipica: find ... -type f -name "*.log" -exec grep -n "ERROR" {} \;
Permessi, ownership e ACL
Comando Significato Opzioni Significato
chmod Cambia permessi -R Ricorsivo.
-v Verbose.
u/g/o/a Utente/gruppo/altri/tutti (modalità simbolica).
+/-/= Aggiunge/rimuove/imposta (simbolica).
chown Cambia proprietario/gruppo -R Ricorsivo.
-v Verbose.
chgrp Cambia gruppo -R Ricorsivo.
getfacl Legge ACL -R Ricorsivo.
setfacl Imposta ACL -m Modifica/aggiunge entry ACL.
-x Rimuove una entry ACL.
-b Rimuove tutte le ACL.
-R Ricorsivo.
umask Maschera permessi di default 022 (esempio) Influenza permessi quando si creano nuovi file/directory.
Utenti e gruppi
Comando Significato Opzioni Significato
id UID/GID e gruppi -u Solo UID.
-g Solo GID.
-G Tutti i gruppi.
passwd Gestione password -l Blocca account.
-u Sblocca account.
useradd Crea utente -m Crea home.
-d DIR Home custom.
-s SHELL Shell di login.
-G g1,g2 Gruppi supplementari.
usermod Modifica utente -aG g1,g2 Aggiunge ai gruppi senza rimuovere quelli esistenti.
-s SHELL Cambia shell.
-d DIR -m Cambia home e sposta file.
userdel Elimina utente -r Rimuove anche home.
gpasswd Gestione membri gruppo -a user gruppo Aggiunge utente al gruppo.
-d user gruppo Rimuove utente dal gruppo.
Processi e job control
Comando Significato Opzioni Significato
ps Lista processi aux Vista “BSD” (comune).
-ef Vista “SysV” (comune).
top Monitor processi -p PID Filtra per PID.
kill Invia segnali -l Lista segnali.
-SIGTERM PID Terminazione “pulita” (default).
-SIGKILL PID Forza (ultima risorsa).
pgrep Cerca PID per nome -a Mostra anche la cmdline.
-f Match su command line completa.
pkill Termina per nome -f Match su command line completa.
jobs Job della shell -l Include PID.
bg Riprende in background %1 (esempio) Riprende il job 1 in background.
fg Porta in foreground %1 (esempio) Porta il job 1 in foreground.
nohup Ignora hangup (logout) cmd & Uso tipico: esegue in background e sopravvive al logout.
Sistema e hardware
Comando Significato Opzioni Significato
uname Info kernel/sistema -a Tutto.
free RAM/swap -h Valori leggibili.
dmesg Log kernel -T Timestamp leggibile.
-w Follow.
lsusb Dispositivi USB -t Vista ad albero.
lspci Dispositivi PCI -k Mostra driver in uso.
Dischi e filesystem
Comando Significato Opzioni Significato
df Spazio filesystem -h Valori leggibili.
-T Mostra tipo filesystem.
du Uso spazio directory -h Valori leggibili.
-s Totale (summary).
--max-depth=N Profondità massima.
lsblk Device a blocchi -f Mostra FS/UUID/label.
mount Monta filesystem -t TYPE Tipo filesystem.
-o OPTS Opzioni (es. ro, rw, noexec).
umount Smonta filesystem -l Lazy unmount.
Archivi e compressione
Comando Significato Opzioni Significato
tar Archivia (e spesso comprime) -c Crea archivio.
-x Estrae.
-t Lista contenuto.
-f file.tar Nome archivio.
-v Verbose.
-z gzip.
-J xz.
zip Crea zip -r Ricorsivo.
unzip Estrae zip -l Lista contenuto.
Rete e diagnostica
Comando Significato Opzioni Significato
ip Gestione rete (moderno) a Address (IP).
l Link (interfacce).
r Route (routing table).
ping Test ICMP -c N N pacchetti.
-i SEC Intervallo.
ss Socket/porte -t TCP.
-u UDP.
-l Listening.
-p Processo associato.
-n Numerico (no DNS).
curl Client HTTP -I Solo header.
-L Segui redirect.
-o file Salva su file.
-s Silenzioso.
Accesso remoto e trasferimenti
Comando Significato Opzioni Significato
ssh Shell remota -p PORTA Porta.
-i KEY Chiave privata.
scp Copia via SSH -r Ricorsivo.
-P PORTA Porta (maiuscola!).
rsync Sync efficiente -a Archive.
-v Verbose.
--delete Allinea cancellando nel target ciò che manca nella sorgente.
Servizi e log (systemd)
Comando Significato Opzioni Significato
systemctl Gestione servizi status unit Stato del servizio.
start unit Avvia servizio.
stop unit Ferma servizio.
restart unit Riavvia servizio.
enable unit Abilita all’avvio.
disable unit Disabilita all’avvio.
journalctl Log systemd -u unit Log di un servizio.
-f Follow.
--since "…" Da una data/ora.
Scheduling (cron/at)
Comando Significato Opzioni Significato
crontab Pianifica cron -e Modifica crontab.
-l Lista.
-r Rimuove.
at Esegue “una volta” -l Lista job.
-d ID Cancella job.
Pacchetti (Debian/Ubuntu)
Comando Significato Opzioni Significato
apt Gestione pacchetti update Aggiorna indici.
install pkg Installa.
remove pkg Rimuove.
purge pkg Rimuove + config.
search parola Cerca.
Nota
Su Fedora/RHEL si usa spesso dnf, su Arch pacman.
Sicurezza (base)
Comando Significato Opzioni Significato
sudo Esegue come root -l Mostra permessi sudo.
-u user Esegue come utente specifico.
ssh-keygen Genera chiavi SSH -t tipo Tipo (es. ed25519).
-f file File output.
-C commento Commento.
Container (Docker)
Comando Significato Opzioni Significato
docker ps Lista container -a Include container fermati.
docker run Avvia container -d Detached (background).
-it Interattivo + TTY.
--name N Nome container.
-p H:P Port mapping host:container.
docker exec Esegue dentro container -it Interattivo.
Suggerimento didattico
Docker è perfetto per laboratori “puliti”: ogni gruppo può lavorare su un container senza “sporcare” il sistema host.
Riepilogo rapido
  • Aiuto: man comando e comando --help.
  • Navigazione: pwd, ls -la, cd.
  • File: mkdir -p, cp -a, mv, rm -i.
  • Testo: |, redirect, grep, sort, cut.
  • Permessi: chmod, chown, ACL con getfacl/setfacl.
  • Rete: ip a, ping -c, ss -tulpn, curl.
  • Servizi/log: systemctl e journalctl -f.