ls -lah
Elenca file con dettagli, hidden, human-readable
Esempio pratico
ls -lah
ls -lah /etc
developer reference
Reference pratica per usare Linux tutti i giorni con ricerca, copia comando e stampa PDF. Finalmente un sito che non ti obbliga a scavare in dieci tab aperti.
43 comandi visibili
ls -lah
Elenca file con dettagli, hidden, human-readable
ls -lah
ls -lah /etc
find <path> -name "<pattern>"
Cerca file per nome o attributi
find . -name "*.py"
find /var -mtime -7 -type f # modificati negli ultimi 7gg
find . -size +10M
cp -r <src> <dst>
Copia file o directory
cp file.txt backup.txt
cp -r src/ dst/
mv <src> <dst>
Sposta o rinomina file
mv old.txt new.txt
mv *.log /var/logs/
rm -rf <path>
Rimuove file/directory (attenzione: irreversibile)
Elimina definitivamente file e directory. Verifica il percorso risolto prima di usare -rf.
rm file.txt
rm -rf ./tmpdir
mkdir -p <path>
Crea directory (con -p crea anche le parent)
mkdir -p /opt/myapp/logs
ln -s <target> <link>
Crea link simbolico
ln -s /opt/myapp /usr/local/bin/myapp
du -sh <path>
Dimensione di file/directory
du -sh /var/log
du -sh * | sort -h # ordina per dimensione
cat <file>
Stampa contenuto file
cat /etc/hosts
cat file1 file2 > merged.txt
grep -rn "<pattern>" <path>
Cerca pattern in file/directory
grep -rn "TODO" ./src
grep -v "^#" config.txt # escludi commenti
grep -E "error|warn" app.log
sed 's/<old>/<new>/g' <file>
Sostituisce testo in file (stream editor)
sed 's/http/https/g' urls.txt
sed -i 's/foo/bar/g' file.txt # in-place
awk '{ print $1 }' <file>
Processa e trasforma testo colonna per colonna
awk '{print $1, $3}' data.txt
awk -F: '{print $1}' /etc/passwd # lista utenti
sort
Ordina linee (--numeric-sort, --reverse, -u unique)
sort file.txt
sort -k2 -n data.txt
sort -u file.txt # rimuovi duplicati
cut -d'<sep>' -f<n>
Estrae colonne da testo delimitato
cut -d: -f1 /etc/passwd
cut -d',' -f2,4 data.csv
tail -f <file>
Mostra ultime N righe; -f segue in real-time
tail -100 app.log
tail -f /var/log/syslog
wc -l <file>
Conta righe (-l), parole (-w), caratteri (-c)
wc -l access.log
grep "ERROR" app.log | wc -l
ps aux
Elenca tutti i processi con uso CPU/RAM
ps aux
ps aux | grep nginx
top
Monitor processi interattivo in real-time
top
top -u www-data # filtra per utente
kill -<signal> <pid>
Invia segnale a processo
Verifica il PID. Preferisci SIGTERM; SIGKILL impedisce la pulizia e può perdere dati non salvati.
kill -9 1234 # SIGKILL: forza termina
kill -15 1234 # SIGTERM: chiudi pulito
killall <name>
Termina tutti i processi con quel nome
Agisce su tutti i processi con quel nome. Verifica prima nome e segnale.
killall nginx
nohup <cmd> &
Esegui comando che sopravvive al logout
nohup python3 server.py &
nohup ./script.sh > out.log 2>&1 &
jobs
Elenca job in background della sessione
jobs
bg %1 # manda in background
fg %1 # riporta in foreground
chmod <mode> <file>
Cambia permessi file
Permessi Linux: cosa significano chmod 644 e 755? →Calcolatore chmod →
chmod 755 script.sh
chmod +x deploy.sh
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chown <user>:<group> <file>
Cambia proprietario di file/directory
chown www-data:www-data /var/www
chown -R enzo:enzo /opt/myapp
sudo <cmd>
Esegui comando come superuser
sudo apt update
sudo -u postgres psql # come altro utente
sudo visudo
Modifica sicura del file sudoers
sudo visudo
curl -X <METHOD> <url>
Trasferimento dati HTTP/FTP da riga di comando
curl -X GET https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"k":"v"}' <url>
curl -O https://example.com/file.zip
ssh <user>@<host>
Connessione SSH remota
ssh enzo@192.168.1.100
ssh -i ~/.ssh/id_rsa user@server
ssh -L 8080:localhost:80 user@server # tunnel
scp <src> <user>@<host>:<dst>
Copia file via SSH
scp file.txt enzo@server:/home/enzo/
scp -r ./dist user@server:/var/www/
ss -tulnp
Mostra porte in ascolto con processi
ss -tulnp
ss -tulnp | grep 8080
ip addr
Mostra interfacce di rete e indirizzi IP
ip addr
ip addr show eth0
ping -c 4 <host>
Verifica connettività con host
ping -c 4 google.com
ping -c 1 192.168.1.1
df -h
Spazio libero per filesystem
df -h
df -h /var
lsblk
Elenca dispositivi a blocchi e partizioni
lsblk
lsblk -f # includi filesystem
tar -czf <archive.tar.gz> <path>
Crea archivio compresso gzip
# crea
tar -czf backup.tar.gz /opt/myapp
# estrai
tar -xzf backup.tar.gz -C /tmp
# visualizza contenuto
tar -tzf backup.tar.gz
rsync -avz <src> <dst>
Sincronizzazione file efficiente (locale o SSH)
rsync -avz ./dist/ user@server:/var/www/
rsync -avz --delete src/ dst/
uname -a
Versione kernel e info sistema
uname -a
uptime
Tempo di avvio e load average
uptime
uptime -p # human-readable
systemctl <action> <service>
Gestione servizi systemd
systemctl start nginx
systemctl enable nginx
systemctl status nginx
systemctl restart nginx
journalctl -u <service> -f
Log systemd di un servizio (follow mode)
journalctl -u nginx -f
journalctl -u nginx --since "1 hour ago"
env
Mostra variabili d'ambiente
env
env | grep PATH
export VAR=value
Imposta variabile d'ambiente per la sessione
export NODE_ENV=production
export PATH="$PATH:/opt/myapp/bin"
crontab -e
Modifica cron jobs dell'utente corrente
# formato: min ora giorno mese dow comando
0 2 * * * /opt/backup.sh # ogni notte alle 2:00
*/5 * * * * /opt/check.sh # ogni 5 minuti
Le directory richiedono il bit di esecuzione per essere attraversate. Applicare 644 ricorsivamente le rende inaccessibili; imposta i permessi separatamente secondo le tue esigenze.
Usa Stampa PDF. La versione stampabile include tutti i comandi e gli esempi pratici, anche nelle sezioni nascoste dalla ricerca.
Sì. Servi i file statici con un server HTTP locale. Ricerca, filtri e copia funzionano nel browser; il tester Regex richiede un contesto HTTP con worker abilitati.