Guida definitiva “Elenco Comandi Linux da Terminale”, la risorsa essenziale per tutti gli utenti di Linux, dai principianti agli esperti. In questo articolo esploreremo i comandi più utili e potenti disponibili nel terminale Linux, strumenti indispensabili per la gestione efficiente e efficace dei vostri sistemi. Che siate amministratori di sistema, sviluppatori, o semplici appassionati di Linux, troverete in questa guida un compendio completo dei comandi che renderanno il vostro lavoro più produttivo e la vostra esperienza Linux ancora più gratificante.
Copriremo comandi generali da terminale che formano la base della navigazione e della gestione dei file in un ambiente Linux. Dalle operazioni più semplici alle più complesse, questi comandi sono il pane quotidiano per qualsiasi utente Linux.
Approfondiremo poi i comandi ls
, fondamentali per esplorare e visualizzare i file nel vostro sistema, seguiti dai comandi find
, essenziali per localizzare file e directory. Esploreremo i comandi grep
, strumenti potenti per la ricerca di testo, e i comandi sed
e awk
, indispensabili per la manipolazione e l’elaborazione di testi e dati.
Nella nostra guida, non mancheranno dettagli sui comandi tar
, utili per la gestione di archivi, sui comandi sort
e cut
, perfetti per ordinare e estrarre dati, sui comandi du
, che vi aiuteranno a monitorare l’utilizzo del disco, e infine sui comandi rsync
, fondamentali per il backup e la sincronizzazione di file.
Indice dei contenuti
Lista comandi da terminale: i fondamentali
L’elenco dei comandi importanti in sistemi operativi Unix e Linux:
cd
Cambia la directory corrente. È utilizzato per spostarsi tra le directory del sistema.
pwd
Mostra il percorso completo della directory corrente (presente nel “working directory”).
mkdir
Crea una nuova directory.
rmdir
Rimuove una directory vuota.
cp
Copia file e directory.
mv
Sposta o rinomina file e directory.
rm
Rimuove file o directory. È possibile utilizzarlo con opzioni come “-r” per rimuovere directory ricorsivamente o “-f” per forzare la rimozione senza conferme.
touch
Crea un nuovo file vuoto o aggiorna la data di accesso e modifica di un file esistente.
cat
Concatena e visualizza il contenuto di uno o più file.
more
Visualizza il contenuto di un file paginato, consentendo la visualizzazione a scorrimento.
less
Simile a “more”, ma con ulteriori funzionalità, come il supporto per lo scorrimento all’indietro.
head
Mostra le prime righe di un file (di default, le prime 10 righe).
tail
Mostra le ultime righe di un file (di default, le ultime 10 righe).
grep
Cerca testo all’interno di file o output di comandi usando espressioni regolari.
find
Trova file e directory in base a criteri specifici, come nome, dimensione, data di modifica, ecc.
chmod
Modifica i permessi di accesso ai file e alle directory.
chown
Cambia il proprietario di un file o di una directory.
ps
Visualizza i processi in esecuzione nel sistema.
kill
Invia segnali ai processi per terminarli o gestirli.
top
Mostra in tempo reale i processi in esecuzione e le risorse di sistema.
df
Mostra lo spazio libero e utilizzato sulle partizioni del disco.
du
Mostra la dimensione occupata da file e directory.
tar
Comprime e archivia file e directory in un unico file tar.
zip / unzip
Comprime e decomprime file e directory in formato zip.
ssh
Consente di accedere in modo sicuro a un altro computer in rete tramite Secure Shell (SSH).
ping
Verifica la connessione e la latenza verso un host remoto.
ifconfig / ip
Visualizza e gestisce le informazioni dell’interfaccia di rete.
wget
Scarica file da Internet da riga di comando.
curl
Effettua richieste HTTP, HTTPS e FTP da riga di comando.
Comandi Ls di Linux
Quando si esegue il comando “ls” senza opzioni, verranno mostrati semplicemente i nomi dei file e delle directory presenti nella directory di lavoro corrente. Tuttavia, il comando “ls” supporta numerose opzioni che consentono di personalizzare l’output e ottenere informazioni dettagliate sui file e sulle directory elencate. Trovi qui un approfondimento su ls Linux.
ls
Elencare i file e le directory nella directory di lavoro corrente.
ls -l
Visualizzare l’elenco in formato lungo, mostrando i dettagli come permessi, proprietario, gruppo, dimensione, data di modifica, ecc.
ls -a
Mostrare tutti i file, inclusi quelli nascosti (iniziati con un punto).
ls -h
Visualizzare le dimensioni dei file in formato leggibile dagli esseri umani (KB, MB, GB).
ls -R
Elenca ricorsivamente tutti i file e le directory presenti nella directory corrente e nelle sottodirectory.
ls -t
Ordinare l’elenco in base alla data e all’ora di modifica, con i file più recenti in cima.
ls -S
Ordinare l’elenco in base alla dimensione dei file, con i file più grandi in cima.
ls -r
Invertire l’ordine di visualizzazione, mostrando i file in ordine decrescente.
ls -i
Mostrare l’inode (numero univoco) assegnato a ogni file o directory nella directory corrente.
ls -G
Mostrare l’output colorato per facilitare la visualizzazione dei file e delle directory.
ls -1
Visualizzare ogni elemento in una riga separata.
ls -m
Visualizzare gli elementi separati da virgole.
ls -p
Aggiungere uno slash alla fine di ogni nome di directory.
ls -u
Mostrare l’ora dell’ultimo accesso anziché dell’ultima modifica.
ls -c
Mostrare l’ora del cambiamento dello stato dell’oggetto.
ls -g
Simile a “-l”, ma non mostra il proprietario.
ls -o
Simile a “-l”, ma non mostra il gruppo.
ls -@
Mostrare le estensioni estese degli attributi dei file (su sistemi macOS).
ls –sort=WORD
Ordinare l’elenco in base a WORD, ad esempio, “extension” per ordinare per estensioni, “size” per dimensione, ecc.
ls –color=auto
Abilitare l’output colorato (solo su sistemi Linux e macOS).
ls –full-time
Mostrare la data di modifica con informazioni dettagliate.
ls –author
Mostrare il nome dell’autore dell’oggetto.
ls –time=WORD
Mostrare l’ora in base a WORD, ad esempio, “atime” per l’ultimo accesso, “ctime” per il cambiamento dello stato, ecc.
ls –quoting-style=WORD
Specificare uno stile di quotatura per nomi di file che contengono spazi o caratteri speciali.
ls –block-size=SIZE
Impostare la dimensione del blocco per la visualizzazione della dimensione del file (ad esempio, “KB”, “MB”).
ls –hide=PATTERN
Nascondere i file il cui nome corrisponde a PATTERN.
Comandi find da terminale
Il comando “find” è estremamente potente e versatile, e offre numerose opzioni per specificare i criteri di ricerca, filtrare i risultati e eseguire azioni sui file trovati.
find -name
Cerca file e directory per nome specifico o pattern (supporta espressioni regolari).
find -iname
Come “-name”, ma senza distinzione tra maiuscole e minuscole.
find -path
Cerca percorso specifico usando pattern (supporta espressioni regolari).
find -type
Cerca file o directory di tipo specifico (es. “-type f” per file e “-type d” per directory).
find -size
Cerca file in base alla dimensione specificata (es. “-size +1M” per file maggiori di 1 MB).
find -empty
Cerca file vuoti (senza contenuto).
find -mtime
Cerca file in base alla data di modifica.
find -atime
Cerca file in base alla data dell’ultimo accesso.
find -ctime
Cerca file in base alla data del cambiamento dello stato.
find -perm
Cerca file in base ai permessi specifici.
find -print
Stampa il percorso completo dei file trovati.
find -exec
Esegue un comando su ogni file trovato (es. “-exec rm {} \;” per rimuovere i file trovati).
Linux comandi grep
“Grep” è un’utilità di ricerca di testo che cerca righe di testo all’interno di file o output di altri comandi utilizzando espressioni regolari o pattern specifici.
grep
Esegue una ricerca di base del testo all’interno dei file o dell’input fornito.
grep -i
Esegue una ricerca ignorando la distinzione tra maiuscole e minuscole.
grep -v
Esegue una ricerca inversa, mostrando le righe che non corrispondono al pattern.
grep -r o grep -R
Esegue una ricerca ricorsiva all’interno di tutte le sottodirectory.
grep -n
Mostra il numero di riga insieme al testo corrispondente.
grep -l
Mostra solo i nomi dei file che contengono il testo corrispondente.
grep -w
Esegue una ricerca solo per parole intere, evitando corrispondenze parziali.
grep -o
Mostra solo la parte del testo che corrisponde al pattern.
grep -c
Mostra il numero di righe corrispondenti invece del contenuto delle righe.
grep -A
Mostra un numero specifico di righe dopo la corrispondenza.
grep -B
Mostra un numero specifico di righe prima della corrispondenza.
grep -C
Mostra un numero specifico di righe prima e dopo la corrispondenza.
Comandi sed
sed
Il comando “sed” (Stream Editor) è uno strumento per trasformare il testo utilizzando espressioni regolari e regole di sostituzione. È uno degli strumenti fondamentali per l’elaborazione di flussi di testo e può essere utilizzato per modificare, eliminare, sostituire, filtrare e stampare testo in modo flessibile. È ampiamente utilizzato per la manipolazione di dati, l’editing di file di configurazione e la generazione di output strutturato.
sed -e
Specifica un’espressione regolare per la modifica del testo. Può essere utilizzato più volte per specificare più espressioni.
sed -i
Esegue una modifica “in-place”, cioè modifica direttamente il file di input senza creare un nuovo file.
sed -n
Disattiva l’output automatico e stampa solo le righe modificate esplicitamente.
sed -r
Utilizza le espressioni regolari estese (ERE) invece delle espressioni regolari di default.
sed -f
Specifica un file contenente uno script “sed” da eseguire. Utile per evitare l’inserimento di script direttamente sulla riga di comando.
sed -d
Elimina le righe anziché stamparle. È possibile specificare un indirizzo o un intervallo di righe da eliminare.
sed -p
Stampa l’output due volte: prima l’output originale e poi l’output modificato.
sed -s
Tratta il testo come un unico flusso continuo, invece di righe separate.
sed -u
Abilita l’output non bufferizzato, utile per interagire con altri programmi in tempo reale.
Guida ai comandi awk
awk
Il comando “awk” funziona leggendo il testo in input riga per riga, suddividendo ogni riga in campi e consentendo di eseguire azioni specifiche in base a modelli o condizioni definite dall’utente. “awk” è ampiamente utilizzato per estrarre, filtrare, manipolare e stampare dati in modo strutturato, rendendolo uno degli strumenti preferiti per l’elaborazione dei dati di testo.
awk ‘pattern { action }’
Esegue “action” su ogni riga del testo di input che corrisponde a “pattern”. “pattern” può essere un’espressione regolare, una stringa o una condizione logica. Se “pattern” viene omesso, “action” verrà eseguito su tutte le righe.
awk ‘{ action }’
Esegue “action” su ogni riga del testo di input senza richiedere un “pattern”. In questo caso, “action” verrà eseguito per ogni riga del testo.
awk -F ‘delimiter’
Specifica un delimitatore di campo personalizzato utilizzato per separare i campi nel testo di input. Il delimitatore può essere una virgola, uno spazio, un tabulatore o qualsiasi altro carattere.
awk -v variable=value
Definisce una variabile “variable” con il valore specificato “value”. La variabile può essere utilizzata all’interno dell'”action” per calcoli o manipolazioni.
awk ‘BEGIN { action }’
Esegue “action” prima di iniziare il processo di elaborazione del testo di input. Utile per inizializzare variabili o eseguire azioni preliminari.
awk ‘END { action }’
Esegue “action” dopo aver completato il processo di elaborazione del testo di input. Utile per stampare risultati finali o fare pulizie.
awk ‘{ print $1, $3 }’
Utilizza il comando “print” per stampare i campi specifici dalla riga di input. “$1”, “$2”, “$3”, ecc., rappresentano i campi individuali, separati dal delimitatore specificato o dallo spazio di default.
awk ‘length($0) > 10 { print }’
Esegue un’azione sulla riga di input solo se la sua lunghezza supera il valore specificato. “length($0)” restituisce la lunghezza della riga corrente.
awk ‘{ sum += $1 } END { print sum }’
Calcola la somma dei valori nel campo specificato (“$1”) e stampa il risultato alla fine del processo di elaborazione.
awk ‘NR > 1 { print prev_line ” ” $0 } { prev_line = $0 }’
Combina ogni riga con la riga precedente (eccetto la prima riga) e stampa la riga combinata. “NR” rappresenta il numero di righe e “$0” rappresenta l’intera riga.
Comandi tar spiegati
tar
Il comando “tar” viene utilizzato per creare archivi di file (tarball) e per estrarre il contenuto da archivi esistenti. Il nome “tar” deriva dalla parola “Tape ARchive”, poiché originariamente veniva utilizzato per creare archivi su nastri. Oggi, “tar” è comunemente utilizzato per creare file archiviati e compressi, mantenendo la struttura delle directory e i permessi originali dei file.
tar -c
Crea un nuovo archivio. È seguito dalle opzioni per specificare il nome del file archivio e i file/directory da includere nell’archivio.
tar -x
Estrae i file dall’archivio. È seguito dalle opzioni per specificare il nome dell’archivio e le opzioni per estrarre i file.
tar -f
Specifica il nome del file archivio da creare o da cui estrarre i file. Viene utilizzato per indicare il nome dell’archivio su cui lavorare.
tar -v
Visualizza il progresso dettagliato dell’operazione di creazione o estrazione dell’archivio. Questo permette di vedere l’elenco dei file mentre vengono elaborati.
tar -z
Comprime l’archivio utilizzando il programma “gzip”. L’opzione “-z” è utilizzata per creare archivi tar compressi con estensione “.tar.gz”.
tar -j
Comprime l’archivio utilizzando il programma “bzip2”. L’opzione “-j” è utilizzata per creare archivi tar compressi con estensione “.tar.bz2”.
tar -r
Aggiunge file o directory all’archivio esistente senza estrarre o sovrascrivere l’archivio originale.
tar -t
Visualizza l’elenco dei file all’interno dell’archivio senza estrarli. Questo permette di vedere il contenuto dell’archivio prima di estrarlo.
tar –exclude
Esclude file o directory specifici dall’archivio. È possibile utilizzare questa opzione per escludere file o directory specifiche durante l’operazione di archiviazione.
Comandi sort da terminale Linux
sort
Il comando “sort” viene utilizzato per ordinare le linee di testo in ordine alfabetico o numerico. È uno strumento molto utile per organizzare e classificare i dati di testo in modo leggibile e coerente.
sort file.txt
Ordina le linee del file di testo “file.txt” in ordine alfabetico (basato su caratteri) e stampa l’output ordinato sullo schermo.
sort -r file.txt
Ordina le linee del file di testo “file.txt” in ordine inverso (dall’ultima riga alla prima) e stampa l’output ordinato sullo schermo.
sort -n file.txt
Ordina le linee del file di testo “file.txt” in ordine numerico (basato sui valori numerici) e stampa l’output ordinato sullo schermo.
sort -k2 file.txt
Ordina le linee del file di testo “file.txt” in base al secondo campo (parola o numero) presente in ogni riga e stampa l’output ordinato sullo schermo.
sort -t’:’ -k3 file.txt
Ordina le linee del file di testo “file.txt” utilizzando il carattere “:” come delimitatore di campo e ordinando in base al terzo campo (parola o numero) presente in ogni riga. Stampa l’output ordinato sullo schermo.
sort -u file.txt
Ordina le linee del file di testo “file.txt” e rimuove le righe duplicate, mantenendo solo la prima occorrenza di ogni riga. Stampa l’output ordinato e unico sullo schermo.
sort -o output.txt file.txt
Ordina le linee del file di testo “file.txt” e salva l’output ordinato nel file “output.txt” senza modificare il file originale.
sort -c file.txt
Verifica se il file di testo “file.txt” è già ordinato. Non modifica il file, ma restituisce un messaggio di errore se il file non è ordinato.
sort -M file.txt
Ordina le date nel formato “mese giorno ora:minuto:secondo anno” nel file di testo “file.txt” in ordine cronologico.
sort -b file.txt
Ignora gli spazi iniziali bianchi nelle righe del file di testo “file.txt” durante l’ordinamento.
sort -f file.txt
Esegue l’ordinamento ignorando la distinzione tra maiuscole e minuscole nelle righe del file di testo “file.txt”.
Spiegazione di cut
cut
Il comando “cut” è utilizzato per estrarre colonne specifiche da file di testo utilizzando delimitatori. È particolarmente utile quando si desidera ottenere solo parti specifiche di una riga di testo, come campi separati da virgole o tabulazioni.
cut -f N file.txt
Estrae il campo specificato “N” dal file di testo “file.txt”, utilizzando il delimitatore predefinito della tabulazione (tab). Il numero “N” rappresenta la colonna da estrarre.
cut -f N,M file.txt
Estrae i campi specificati “N” e “M” dal file di testo “file.txt”, utilizzando il delimitatore predefinito della tabulazione (tab).
cut -f N-M file.txt
Estrae un intervallo di campi da “N” a “M” (inclusi) dal file di testo “file.txt”, utilizzando il delimitatore predefinito della tabulazione (tab).
cut -d ‘:’ -f N file.txt
Estrae il campo specificato “N” dal file di testo “file.txt”, utilizzando il delimitatore “:”. Il carattere “-d” indica il delimitatore da utilizzare.
cut -c N file.txt
Estrae il carattere specificato “N” dal file di testo “file.txt”. Il numero “N” rappresenta la posizione del carattere nella riga.
cut -c N-M file.txt
Estrae un intervallo di caratteri da “N” a “M” (inclusi) dal file di testo “file.txt”.
cut -b N file.txt
Estrae il byte specificato “N” dal file di testo “file.txt”. Utile quando si lavora con file binari.
cut -s -f N file.txt
Estrae solo le righe del file di testo “file.txt” che contengono dati nel campo specificato “N”. Le righe vuote o senza il campo “N” saranno ignorate.
cut -n -f N file.txt
Estrae solo le righe del file di testo “file.txt” che NON contengono dati nel campo specificato “N”. Le righe vuote o con il campo “N” saranno ignorate.
Comandi du (disk usage)
du
Il comando “du” (disk usage) viene utilizzato per calcolare e visualizzare la dimensione delle directory e dei file presenti nel sistema di file. È uno strumento utile per monitorare l’utilizzo del disco e identificare quali directory o file occupano più spazio sul disco rigido.
du file.txt
Calcola la dimensione totale del file “file.txt” in blocchi di disco e la mostra sullo schermo. Questo comando è utile per scoprire la dimensione esatta di un file.
du -h file.txt
Calcola e mostra la dimensione del file “file.txt” in un formato leggibile dall’essere umano (KB, MB, GB, ecc.). L’opzione “-h” sta per “human-readable”.
du -s directory
Calcola e mostra la dimensione totale della directory specificata, inclusi tutti i file e le sottodirectory contenuti al suo interno. L’opzione “-s” sta per “summarize”.
du -h -s directory
Calcola e mostra la dimensione totale della directory specificata in un formato leggibile dall’essere umano. L’opzione “-h” rende i risultati leggibili e l’opzione “-s” sintetizza i risultati.
du -c directory
Calcola e mostra la dimensione di ogni sottodirectory della directory specificata, insieme alla dimensione totale della directory. L’opzione “-c” sta per “total”.
du -ah directory
Mostra la dimensione di ogni file e directory all’interno della directory specificata in un formato leggibile dall’essere umano. L’opzione “-a” sta per “all”, mostrando tutti i file e le directory.
du -k directory
Calcola e mostra la dimensione della directory specificata in kilobyte (KB). Questo è utile per ottenere le dimensioni in un formato numerico semplice.
du -m directory
Calcola e mostra la dimensione della directory specificata in megabyte (MB). Questo è utile per ottenere le dimensioni in un formato numerico semplice.
du -h –max-depth=1 directory
Calcola e mostra la dimensione delle directory e dei file direttamente presenti nella directory specificata (senza elencare le sottodirectory). L’opzione “–max-depth=1” limita la profondità dell’analisi alle sole directory di primo livello.
du –help
Visualizza una breve descrizione delle opzioni disponibili per il comando “du” insieme ad alcuni esempi di utilizzo.
Tutti i comandi rsync
rsync
Il comando “rsync” è uno strumento potente per la sincronizzazione e il trasferimento di file e directory tra sistemi locali o remoti. È ampiamente utilizzato per copiare dati in modo efficiente e sincronizzare la struttura delle directory tra diversi dispositivi o server.
rsync source destination
Copia i file e le directory dalla “source” alla “destination”. “source” può essere una directory locale o un percorso remoto specificato come “utente@hostname:/path”. “destination” può essere un percorso locale o remoto.
rsync -a source/ destination/
Sincronizza le directory “source” e “destination”, mantenendo i permessi, i timestamp e altre informazioni di file e directory. L’opzione “-a” sta per “archive” e viene utilizzata per conservare tutte le proprietà dei file.
rsync -v source/ destination/
Esegue la sincronizzazione visualizzando l’output dettagliato, inclusi i file trasferiti e le informazioni sulle dimensioni.
rsync -r source/ destination/
Esegue la sincronizzazione in modo ricorsivo, copiando tutte le directory e i file all’interno delle directory. L’opzione “-r” sta per “recursive”.
rsync -u source/ destination/
Copia solo i file dalla “source” alla “destination” che sono più recenti o che non esistono nella destinazione. L’opzione “-u” sta per “update”.
rsync -z source/ destination/
Comprime i dati durante il trasferimento per ridurre la quantità di dati da trasferire. L’opzione “-z” sta per “compress”.
rsync -P source/ destination/
Visualizza il progresso dettagliato della sincronizzazione, incluso il numero di file completati e la velocità di trasferimento. L’opzione “-P” combina le opzioni “-v” e “–progress”.
rsync –delete source/ destination/
Elimina i file dalla destinazione che non esistono più nella sorgente. Questo assicura che le directory di destinazione siano identiche alla sorgente dopo la sincronizzazione.
rsync -n source/ destination/
Esegue una simulazione della sincronizzazione senza effettuare alcuna modifica effettiva. Utile per verificare cosa verrebbe sincronizzato senza eseguire alcuna azione.
rsync -e ‘ssh’ source/ user@hostname:/destination/
Esegue una sincronizzazione su un host remoto tramite SSH. Questo permette di copiare i file da o verso un altro server utilizzando la crittografia.