↓ Salta al contenuto principale
  1. Posts/

50+ comandi Linux

886 parole·5 minuti·

Se lavori come sviluppatore, saper usare il terminale è una competenza fondamentale. Ecco una lista di comandi essenziali divisi per categoria.

1. Navigazione e gestione file
#

pwd - stampa la directory di lavoro corrente

ls - elenca i file nella directory corrente

ls -la - elenca tutti i file (inclusi quelli nascosti) con i dettagli

cd <dir> - cambia directory

cd .. - vai alla directory superiore

cd ~ - vai alla directory home dell’utente

cd - - torna alla directory precedente

mkdir <dir> - crea una nuova directory

mkdir -p <path/to/dir> - crea directory annidate

touch <file> - crea un file vuoto o ne aggiorna il timestamp

cp <source> <dest> - copia un file

cp -r <source> <dest> - copia una directory con tutto il suo contenuto

mv <source> <dest> - sposta o rinomina file e directory

rm <file> - rimuove un file

rm -rf <dir> - rimuove una directory e tutto il suo contenuto, senza chiedere conferma

Attenzione: rm non usa il cestino. Con rm -rf quello che cancelli è perso per sempre: controlla due volte il percorso prima di premere Invio.

2. Visualizzazione e ricerca
#

cat <file> - mostra il contenuto di un file

less <file> - visualizza un file con lo scorrimento (q per uscire)

head -n 10 <file> - mostra le prime 10 righe

tail -n 10 <file> - mostra le ultime 10 righe

tail -f <file> - segue le aggiunte al file in tempo reale (utile per i log)

grep "pattern" <file> - cerca testo in un file

grep -rn "pattern" . - cerca testo ricorsivamente nella directory corrente, mostrando i numeri di riga

find . -name "*.js" - trova file per nome

wc -l <file> - conta le righe di un file

3. Pipe e redirezione
#

Il vero potere del terminale sta nel combinare i comandi.

comando1 | comando2 - passa l’output del primo comando come input al secondo

comando > file.txt - scrive l’output in un file (sovrascrivendolo)

comando >> file.txt - aggiunge l’output in fondo a un file

comando 2> errori.log - salva solo gli errori in un file

comando > out.log 2>&1 - salva output ed errori nello stesso file

# I 5 file più grandi nella cartella corrente
du -sh * | sort -rh | head -n 5

# Quante righe di un log contengono "ERROR"
grep -c "ERROR" app.log

4. Permessi e proprietà
#

chmod +x <file> - rende un file eseguibile

chmod 755 <file> - permessi rwx al proprietario, r-x a gruppo e altri utenti

chmod 644 <file> - permessi rw- al proprietario, r-- a gruppo e altri (tipico per i file di testo)

chown user:group <file> - cambia proprietario e gruppo

sudo <comando> - esegue un comando con i privilegi di amministratore (root)

5. Processi e sistema
#

ps aux - mostra tutti i processi in esecuzione

top - monitor dinamico di processi e risorse

htop - versione interattiva e più leggibile di top (spesso va installato a parte)

kill <pid> - chiede a un processo di terminare, dato il suo PID

kill -9 <pid> - termina forzatamente un processo che non risponde

killall <nome> - termina tutti i processi con un certo nome

df -h - mostra lo spazio disponibile sui dischi

du -sh <dir> - mostra la dimensione totale di una directory

free -h - mostra l’utilizzo della memoria RAM

uname -a - mostra informazioni sul kernel e sul sistema

6. Rete
#

ping <host> - verifica se un host è raggiungibile

curl <url> - trasferisce dati da/verso un server

curl -I <url> - mostra solo gli header della risposta

wget <url> - scarica un file dal web

ss -tuln - mostra le porte in ascolto (sostituisce il vecchio netstat -tuln)

ip a - mostra le interfacce di rete e gli indirizzi IP

ssh user@host - connessione remota sicura

scp <file> user@host:<path> - copia sicura di file tra host

7. Pacchetti e servizi
#

sudo apt update && sudo apt upgrade - aggiorna l’elenco dei pacchetti e il sistema (Debian/Ubuntu; su Fedora si usa dnf)

sudo apt install <pacchetto> - installa un pacchetto

systemctl status <servizio> - mostra lo stato di un servizio (es. nginx)

sudo systemctl restart <servizio> - riavvia un servizio

sudo systemctl enable <servizio> - avvia il servizio automaticamente all’accensione

journalctl -u <servizio> -f - segue in tempo reale i log di un servizio

8. Archivi e compressione
#

tar -czvf archivio.tar.gz <dir> - crea un archivio compresso

tar -xzvf archivio.tar.gz - estrae un archivio compresso

zip -r archivio.zip <dir> - crea un archivio zip

unzip archivio.zip - estrae un archivio zip

9. Variabili, ambiente e aiuto
#

env - mostra le variabili d’ambiente

export VAR=valore - imposta una variabile d’ambiente

echo $VAR - stampa il valore di una variabile

which <comando> - mostra il percorso del programma che verrà eseguito

history - mostra la cronologia dei comandi eseguiti

alias nome='comando' - crea un alias per un comando

man <comando> - apre il manuale di un comando (q per uscire)

Bonus: editor da terminale
#

nano <file> - editor di testo semplice (Ctrl + O per salvare, Ctrl + X per uscire)

vim <file> - editor di testo avanzato (:wq per salvare e uscire, :q! per uscire senza salvare)


Conoscere questi comandi ti renderà molto più produttivo e indipendente nel tuo ambiente di sviluppo!

Ashif C.
Autore
Ashif C.
Sono un Edge Developer e tech enthusiast che sta imparando a costruire applicazioni moderne su infrastrutture distribuite, con un focus su performance, serverless ed esperienza sviluppatore. Nel tempo libero mi diverto facendo diversi esperimenti con ESP32.

Articoli correlati