Comandi Bash / Terminal
Comandi essenziali per navigazione, file, ricerca, permessi, processi, rete e archivi
Navigazione
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
ls
|
-la, -lh, -R |
ls -la /etc |
lista file | Elenca il contenuto della directory; -l formato lungo, -a file nascosti, -h dimensioni leggibili |
cd
|
-, ~, .. |
cd ~/projects |
cambia dir | Cambia directory; cd - torna indietro, cd ~ va alla home |
pwd
|
|
pwd |
/home/user | Stampa la directory di lavoro corrente (percorso completo) |
tree
|
-L n, -a |
tree -L 2 |
vista ad albero | Visualizza la struttura ad albero della directory; -L limita la profondità (potrebbe richiedere installazione) |
find
|
-name -type -mtime |
find . -name '*.log' |
percorsi file | Cerca file/directory che corrispondono ai criteri |
locate
|
-i |
locate nginx.conf |
percorsi file | Ricerca rapida file tramite indice database; eseguire prima updatedb |
Operazioni sui File
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
cp
|
-r, -i, -u |
cp -r src/ dst/ |
copia file | Copia file; -r per le directory, -i chiede conferma prima di sovrascrivere |
mv
|
-i, -n |
mv old.txt new.txt |
sposta/rinomina | Sposta o rinomina file; -i chiede conferma prima di sovrascrivere |
rm
|
-r, -f, -i |
rm -rf dist/ |
eliminato | Rimuove file/directory; -r ricorsivo, -f forza — usare con cautela |
mkdir
|
-p |
mkdir -p a/b/c |
nuova dir | Crea directory; -p crea le directory padre se necessario |
touch
|
|
touch index.html |
file vuoto | Crea un file vuoto o aggiorna il timestamp di un file esistente |
ln
|
-s |
ln -s /etc/nginx nginx |
symlink | Crea un hard link; -s per symbolic link |
Visualizzare File
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
cat
|
-n, -A |
cat -n file.txt |
contenuto file | Stampa il file; -n aggiunge numeri di riga, -A mostra caratteri non stampabili |
head
|
-n N |
head -n 20 log.txt |
prime N righe | Mostra le prime righe del file (default 10) |
tail
|
-n N, -f |
tail -f app.log |
ultime N righe | Mostra le ultime righe; -f segue i nuovi contenuti in tempo reale |
less
|
/search, q |
less large.log |
vista a pagine | Scorre il file pagina per pagina; / per cercare, q per uscire, spazio per la pagina |
wc
|
-l, -w, -c |
wc -l file.txt |
conteggio | Conteggio parole; -l righe, -w parole, -c byte/caratteri |
Ricerca & Testo
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
grep
|
-r -i -n -v -E |
grep -rn 'error' logs/ |
righe corrispondenti | Cerca pattern nel testo; -r ricorsivo, -i senza distinzione maiuscole, -n numeri di riga |
grep -v
|
|
grep -v 'debug' app.log |
non corrispondenti | Inverti la ricerca — mostra le righe che NON contengono il pattern |
grep -E
|
|
grep -E 'warn|error' log |
righe corrispondenti | Regex estesa — usa | per OR, + per uno-o-più |
awk
|
'{print $N}' |
awk '{print $1}' f |
valore colonna | Elaborazione testo pattern-azione; $1 primo campo, $NF ultimo campo |
sed
|
-i 's/a/b/g' |
sed -i 's/foo/bar/g' f |
testo modificato | Editor di flusso; s/ricerca/sostituzione/g sostituisce globalmente |
sort
|
-n -r -k N |
sort -n numbers.txt |
output ordinato | Ordina le righe; -n numerico, -r inverso, -k ordina per colonna N |
uniq
|
-c, -d |
sort f | uniq -c |
righe univoche | Rimuove righe duplicate adiacenti; di solito usato dopo sort tramite pipe |
Permessi
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
chmod
|
755, 644, +x |
chmod +x script.sh |
permessi modificati | Cambia i permessi del file; 755=rwxr-xr-x, 644=rw-r--r-- |
chown
|
-R user:group |
chown -R www-data:www-data /var/www |
proprietario cambiato | Cambia il proprietario e il gruppo del file; -R ricorsivo |
ls -la
|
|
ls -la /var/www |
lista permessi | Mostra permessi, proprietario, gruppo e dimensione per tutti i file |
umask
|
022, 027 |
umask 022 |
permessi default | Imposta la maschera di permesso predefinita per i nuovi file (022 → 644 per i file) |
sudo
|
-u user |
sudo systemctl restart nginx |
cmd elevato | Esegue il comando come superutente; -u per eseguire come utente diverso |
Gestione Processi
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
ps
|
aux, -ef |
ps aux | grep nginx |
lista processi | Elenca i processi; aux=tutti gli utenti, -ef=formato completo |
top
|
q, k, M |
top |
vista live | Monitor interattivo dei processi; q per uscire, k per terminare, M ordina per memoria |
htop
|
F3, F9 |
htop |
vista live | top migliorato con colori; F3 cerca, F9 termina (potrebbe richiedere installazione) |
kill
|
-9, -15 |
kill -9 1234 |
segnale inviato | Invia un segnale al PID; -15 SIGTERM (graceful), -9 SIGKILL (forza) |
killall
|
-9, -u |
killall node |
segnale inviato | Termina tutti i processi con il nome specificato |
jobs
|
-l |
jobs -l |
lista job | Elenca i job in background/sospesi nella shell corrente |
bg / fg
|
%N |
fg %1 |
ripreso | bg invia il job in background, fg lo riporta in foreground |
Rete
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
curl
|
-o -L -X -H -d |
curl -O https://example.com/f |
risposta | Trasferisce dati via HTTP/FTP; -L segue i redirect, -o salva su file |
wget
|
-O -r -q |
wget -q https://example.com |
file salvato | Scarica file; -O rinomina l'output, -r ricorsivo, -q silenzioso |
ping
|
-c N |
ping -c 4 google.com |
RTT ms | Testa la connettività di rete; -c limita il numero di pacchetti |
ssh
|
-i -p -L |
ssh user@host -p 2222 |
shell | Shell sicura; -i file chiave, -p porta, -L inoltro porta locale |
scp
|
-r -P -i |
scp file user@host:~/ |
copiato | Copia sicura via SSH; -r ricorsivo, -P porta (maiuscolo) |
netstat
|
-tuln |
netstat -tuln |
lista porte | Mostra le connessioni di rete; -t TCP, -u UDP, -l in ascolto, -n numerico |
ss
|
-tuln |
ss -tuln |
lista porte | Sostituto moderno di netstat; più veloce e dettagliato |
Archivi & Compressione
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
tar -czf
|
-czf out.tar.gz |
tar -czf arc.tar.gz dir/ |
archivio | Crea un tarball compresso con gzip; c=crea, z=gzip, f=nome file |
tar -xzf
|
-xzf file.tar.gz |
tar -xzf arc.tar.gz -C /tmp |
estratto | Estrae un tarball gzip; x=estrai, -C directory di destinazione |
tar -tf
|
|
tar -tf archive.tar.gz |
lista file | Elenca il contenuto del tarball senza estrarlo |
zip
|
-r, -9 |
zip -r out.zip dir/ |
file zip | Crea un archivio zip; -r ricorsivo, -9 compressione massima |
unzip
|
-d, -l |
unzip archive.zip -d out/ |
estratto | Estrae uno zip; -d destinazione, -l elenca il contenuto senza estrarlo |
gzip / gunzip
|
-k, -d |
gzip -k file.txt |
compresso | gzip su un singolo file; -k mantiene l'originale, gunzip per decomprimere |
Ambiente & Shell
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
env
|
|
env | grep PATH |
var=valore | Stampa tutte le variabili d'ambiente; usa pipe con grep per filtrare |
export
|
|
export NODE_ENV=production |
var impostata | Imposta una variabile d'ambiente per la sessione corrente e i processi figli |
echo $VAR
|
|
echo $HOME |
valore | Stampa il valore della variabile; usa ${VAR} per disambiguare nelle stringhe |
which
|
|
which node |
percorso | Mostra il percorso completo dell'eseguibile del comando |
alias
|
|
alias ll='ls -la' |
scorciatoia | Crea una scorciatoia per un comando; aggiungila a ~/.bashrc per renderla permanente |
source
|
|
source ~/.bashrc |
ricaricato | Esegue il file nel contesto della shell corrente (anche: . ~/.bashrc) |
history
|
!N, !! |
history | tail -20 |
lista cmd | Mostra la cronologia dei comandi; !! ripete l'ultimo, !N esegue il comando N-esimo |
Riferimento Git Rapido
| Comando | Opzioni | Esempio | Output | Descrizione |
|---|---|---|---|---|
git init
|
|
git init my-project |
repo creato | Inizializza un nuovo repository Git nella directory |
git clone
|
--depth 1 |
git clone url |
repo clonato | Clona un repository remoto; --depth 1 per clone superficiale |
git status
|
-s |
git status -s |
modifiche | Mostra lo stato dell'albero di lavoro; -s formato breve |
git add
|
-A, -p |
git add -p |
staged | Prepara le modifiche; -A tutto, -p modalità patch interattiva |
git commit
|
-m, --amend |
git commit -m 'msg' |
committato | Registra le modifiche preparate; --amend modifica l'ultimo commit |
git push
|
-u origin |
git push -u origin main |
inviato | Invia al remoto; -u imposta il branch di tracking upstream |
git pull
|
--rebase |
git pull --rebase |
sincronizzato | Recupera e integra le modifiche remote; --rebase invece di merge |
git log
|
--oneline --graph |
git log --oneline -10 |
cronologia | Mostra la cronologia dei commit; --oneline compatto, --graph branch visuale |
git stash
|
pop, list |
git stash pop |
ripristinato | Salva temporaneamente il lavoro non committato; pop per ripristinare |
git diff
|
--staged |
git diff --staged |
diff | Mostra le modifiche; --staged mostra quelle preparate ma non ancora committate |