Comandi Linux comuni

Codice comando Descrizione
arch Mostra l'architettura del processore della macchina (1)
uname -m Mostra l'architettura del processore della macchina (2)
uname -r Mostra la versione del kernel in uso
dmidecode -q Mostra i componenti hardware del sistema - (SMBIOS / DMI)
hdparm -i /dev/hda Elenca le caratteristiche architetturali di un disco
hdparm -tT /dev/sda Esegue un'operazione di lettura di test sul disco
cat /proc/cpuinfo Mostra informazioni sulla CPU
cat /proc/interrupts Mostra le interruzioni
cat /proc/meminfo Controlla l'uso della memoria
cat /proc/swaps Mostra quali swap sono in uso
cat /proc/version Mostra la versione del kernel
cat /proc/net/dev Mostra gli adattatori di rete e le statistiche
cat /proc/mounts Mostra i file system montati
lspci -tv Elenca i dispositivi PCI
lsusb -tv Mostra i dispositivi USB
date Mostra la data di sistema
cal 2007 Mostra il calendario dell'anno 2007
date 041217002007.00 Imposta data e ora - mese giorno ora minuti anno. secondi
clock -w Salva il tempo modificato nella BIOS

Codice comando Descrizione
shutdown -h now Spegnere il sistema
init 0 Spegnere il sistema
telinit 0 Spegnere il sistema
shutdown -h hours:minutes & Spegnere il sistema all'orario programmato
shutdown -c Annulla lo spegnimento programmato del sistema
shutdown -r now Riavviare
reboot Riavviare
logout Disconnettere

Codice comando Descrizione
cd /home Accedi alla directory '/home'
cd .. Torna alla directory superiore
cd ../.. Torna a due directory superiori
cd Accedi alla tua directory personale
cd ~user1 Accedi alla directory personale di un altro utente
cd - Torna all'ultima directory visitata
pwd Mostra il percorso di lavoro
ls Visualizza i file nella directory
ls -F Visualizza i file nella directory
ls -l Mostra dettagli sui file e directory
ls -a Mostra i file nascosti
ls *[0-9]* Mostra i file e le directory con numeri nei nomi
tree Mostra la struttura ad albero dei file e directory a partire dalla radice
lstree Mostra la struttura ad albero dei file e directory a partire dalla radice
mkdir dir1 Crea una directory chiamata 'dir1'
mkdir dir1 dir2 Crea due directory contemporaneamente
mkdir -p /tmp/dir1/dir2 Crea una struttura di directory
rm -f file1 Elimina un file chiamato 'file1'
rmdir dir1 Elimina una directory chiamata 'dir1'
rm -rf dir1 Elimina una directory chiamata 'dir1' e tutti i suoi contenuti
rm -rf dir1 dir2 Elimina due directory e i loro contenuti contemporaneamente
mv dir1 new_dir Rinomina/sposta una directory
cp file1 file2 Copia un file
cp dir/* . Copia tutti i file da una directory nella directory di lavoro attuale
cp -a /tmp/dir1 . Copia una directory nella directory di lavoro attuale
cp -a dir1 dir2 Copia una directory
ln -s file1 lnk1 Crea un link simbolico a un file o directory
ln file1 lnk1 Crea un link fisico a un file o directory
touch -t 0712250000 file1 Modifica il timestamp di un file o directory - (YYMMDDhhmm)
iconv -l Elenca le codifiche conosciute
iconv -f fromEncoding -t toEncoding inputFile > outputFile Cambia la codifica dei caratteri
find . -maxdepth 1 -name *.jpg -print -exec convert Ridimensiona in batch i file nella directory corrente e inviali alla directory delle miniature (richiede ImageMagick per la conversione)

Codice comando Descrizione
find / -name file1 Cerca file e directory nel file system di root a partire da '/'
find / -user user1 Cerca file e directory appartenenti all'utente 'user1'
find /home/user1 -name \*.bin Cerca file con estensione '.bin' nella directory '/home/user1'
find /usr/bin -type f -atime +100 Cerca file eseguibili non utilizzati negli ultimi 100 giorni
find /usr/bin -type f -mtime -10 Cerca file creati o modificati negli ultimi 10 giorni
find / -name \*.rpm -exec chmod 755 '{}' \; Cerca file con estensione '.rpm' e definisci i loro permessi
find / -xdev -name \*.rpm Cerca file con estensione '.rpm', ignorando dispositivi rimovibili come CD e pen drive
locate \*.ps Cerca file con estensione '.ps' - esegui prima il comando 'updatedb'
whereis halt Mostra la posizione di un file binario, sorgente o man
which halt Mostra il percorso completo di un file binario o eseguibile

Codice comando Descrizione
mount /dev/hda2 /mnt/hda2 Monta un disco chiamato hda2 - assicurati che la directory '/mnt/hda2' esista
umount /dev/hda2 Smonta un disco chiamato hda2 - esci prima dalla directory di montaggio '/mnt/hda2'
fuser -km /mnt/hda2 Forza lo smontaggio quando il dispositivo è occupato
umount -n /mnt/hda2 Esegui un'operazione di smontaggio senza scrivere nel file /etc/mtab - molto utile quando il file è di sola lettura o quando il disco è pieno
mount /dev/fd0 /mnt/floppy Monta un floppy disk
mount /dev/cdrom /mnt/cdrom Monta un cdrom o dvdrom
mount /dev/hdc /mnt/cdrecorder Monta un cdrw o dvdrom
mount /dev/hdb /mnt/cdrecorder Monta un cdrw o dvdrom
mount -o loop file.iso /mnt/cdrom Monta un file o immagine ISO
mount -t vfat /dev/hda5 /mnt/hda5 Monta un file system FAT32 di Windows
mount /dev/sda1 /mnt/usbdisk Monta un'unità flash o pen drive USB
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Monta una condivisione di rete Windows

Codice comando Descrizione
df -h Mostra l'elenco delle partizioni montate
ls -lSr |more Ordina file e directory per dimensione
du -sh dir1 Stima lo spazio su disco utilizzato dalla directory 'dir1'
du -sk * | sort -rn Mostra la dimensione dei file e directory ordinati per capacità
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n Mostra lo spazio occupato dai pacchetti rpm installati ordinati per dimensione (sistemi basati su fedora, redhat)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n Mostra lo spazio occupato dai pacchetti deb installati ordinati per dimensione (sistemi basati su ubuntu, debian)

Codice comando Descrizione
groupadd group_name Crea un nuovo gruppo utente
groupdel group_name Elimina un gruppo utente
groupmod -n new_group_name old_group_name Rinomina un gruppo utente
useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 Crea un utente appartenente al gruppo "admin"
useradd user1 Crea un nuovo utente
userdel -r user1 Elimina un utente (con '-r' esclude la directory home)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 Modifica le proprietà di un utente
passwd Cambia la password
passwd user1 Cambia la password di un utente (autorizzato solo a root)
chage -E 2020-12-31 user1 Imposta la scadenza della password di un utente
pwck Verifica il formato del file '/etc/passwd' e eventualmente corregge la sintassi e gli utenti esistenti
grpck Verifica il formato del file '/etc/passwd' e eventualmente corregge la sintassi e i gruppi esistenti
newgrp group_name Accedi a un nuovo gruppo per cambiare il gruppo predefinito per i nuovi file creati

Codice comando Descrizione
ls -lh Mostra i permessi
ls /tmp | pr -T5 -W$COLUMNS Dividi il terminale in 5 colonne per la visualizzazione
chmod ugo+rwx directory1 Imposta il permesso di lettura (r), scrittura (w) ed esecuzione (x) per il proprietario (u), il gruppo (g) e gli altri (o) sulla directory
chmod go-rwx directory1 Rimuove i permessi di lettura, scrittura ed esecuzione per il gruppo (g) e gli altri (o) sulla directory
chown user1 file1 Cambia il proprietario di un file
chown -R user1 directory1 Cambia il proprietario di una directory e cambia anche le proprietà di tutti i file all'interno di essa
chgrp group1 file1 Cambia il gruppo di un file
chown user1:group1 file1 Cambia proprietà e gruppo di un file
find / -perm -u+s Elenca tutti i file con permesso SUID nel sistema
chmod u+s /bin/file1 Imposta il bit SUID su un file binario - l'utente che esegue il file riceve gli stessi permessi del proprietario
chmod u-s /bin/file1 Disabilita il bit SUID su un file binario
chmod g+s /home/public Imposta il bit SGID su una directory - simile al SUID, ma è per le directory
chmod g-s /home/public Disabilita il bit SGID su una directory
chmod o+t /home/public Imposta il bit STIKY su un file - solo i legittimi proprietari possono eliminare il file
chmod o-t /home/public Disabilita il bit STIKY su una directory

Codice comando Descrizione
chattr +a file1 Consenti solamente la lettura e scrittura in append su un file
chattr +c file1 Consenti al file di essere compresso/decompresso automaticamente dal kernel
chattr +d file1 Ignora il file durante i backup del file system eseguiti da dump
chattr +i file1 Imposta un file come immutabile; non può essere cancellato, modificato, rinominato o collegato
chattr +s file1 Consenti a un file di essere eliminato in modo sicuro
chattr +S file1 Ogni volta che un'applicazione scrive su questo file, il sistema deve immediatamente scrivere le modifiche su disco
chattr +u file1 Se un file viene cancellato, il sistema consente di recuperarlo in seguito
lsattr Mostra le proprietà speciali

Codice comando Descrizione
bunzip2 file1.bz2 Decomprime un file chiamato 'file1.bz2'
bzip2 file1 Comprimi un file chiamato 'file1'
gunzip file1.gz Decomprime un file chiamato 'file1.gz'
gzip file1 Comprimi un file chiamato 'file1'
gzip -9 file1 Compressione massima
rar a file1.rar test_file Crea un pacchetto chiamato 'file1.rar'
rar a file1.rar file1 file2 dir1 Comprimi contemporaneamente 'file1', 'file2' e la directory 'dir1'
rar x file1.rar Decomprime un pacchetto rar
unrar x file1.rar Decomprime un pacchetto rar
tar -cvf archive.tar file1 Crea un tarball non compresso
tar -cvf archive.tar file1 file2 dir1 Crea un file archivio contenente 'file1', 'file2' e 'dir1'
tar -tf archive.tar Mostra il contenuto di un pacchetto
tar -xvf archive.tar Estrae un pacchetto
tar -xvf archive.tar -C /tmp Estrae un pacchetto nella directory /tmp
tar -cvfj archive.tar.bz2 dir1 Crea un pacchetto compresso in formato bzip2
tar -jxvf archive.tar.bz2 Decomprime un pacchetto in formato bzip2
tar -cvfz archive.tar.gz dir1 Crea un pacchetto compresso in formato gzip
tar -zxvf archive.tar.gz Decomprime un pacchetto in formato gzip
zip file1.zip file1 Crea un pacchetto in formato zip
zip -r file1.zip file1 file2 dir1 Comprimi più file e directory in un pacchetto zip
unzip file1.zip Decomprime un pacchetto zip

Codice comando Descrizione
rpm -ivh package.rpm Installa un pacchetto rpm
rpm -ivh --nodeeps package.rpm Installa un pacchetto rpm ignorando le dipendenze
rpm -U package.rpm Aggiorna un pacchetto rpm senza cambiare i file di configurazione
rpm -F package.rpm Aggiorna un pacchetto rpm già installato
rpm -e package_name.rpm Elimina un pacchetto rpm
rpm -qa Mostra tutti i pacchetti rpm installati nel sistema
rpm -qa | grep httpd Mostra tutti i pacchetti rpm con "httpd" nel nome
rpm -qi package_name Ottieni informazioni speciali su un pacchetto installato
rpm -qg "System Environment/Daemons" Mostra il pacchetto rpm di un componente
rpm -ql package_name Mostra un elenco di file forniti da un pacchetto rpm installato
rpm -qc package_name Mostra un elenco di file di configurazione forniti da un pacchetto rpm installato
rpm -q package_name --whatrequires Mostra un elenco di dipendenze di un pacchetto rpm
rpm -q package_name --whatprovides Mostra la dimensione occupata da un pacchetto rpm
rpm -q package_name --scripts Mostra gli script eseguiti durante l'installazione/rimozione
rpm -q package_name --changelog Mostra la cronologia delle modifiche di un pacchetto rpm
rpm -qf /etc/httpd/conf/httpd.conf Verifica quale pacchetto rpm fornisca il file specificato
rpm -qp package.rpm -l Mostra l'elenco di file forniti da un pacchetto rpm non installato
rpm --import /media/cdrom/RPM-GPG-KEY Importa una chiave pubblica GPG
rpm --checksig package.rpm Verifica l'integrità di un pacchetto rpm
rpm -qa gpg-pubkey Verifica l'integrità di tutti i pacchetti rpm installati
rpm -V package_name Controlla dimensioni, permessi, tipo, proprietario, gruppo, checksum MD5 e data dell'ultima modifica di un file
rpm -Va Controlla tutti i pacchetti rpm installati nel sistema - usalo con cautela
rpm -Vp package.rpm Verifica che un pacchetto rpm non sia installato
rpm2cpio package.rpm | cpio --extract --make-directories *bin* Estrai file eseguibili da un pacchetto rpm
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm Installa un pacchetto da sorgente rpm
rpmbuild --rebuild package_name.src.rpm Costruisci un pacchetto rpm da sorgente

Codice comando Descrizione
yum install package_name Scarica e installa un pacchetto rpm
yum localinstall package_name.rpm Installa un pacchetto rpm utilizzando il tuo repository per risolvere tutte le dipendenze
yum update package_name.rpm Aggiorna tutti i pacchetti rpm installati nel sistema
yum update package_name Aggiorna un pacchetto rpm
yum remove package_name Rimuovi un pacchetto rpm
yum list Elenca tutti i pacchetti installati nel sistema
yum search package_name Cerca nel repository rpm i pacchetti disponibili
yum clean packages Pulisce la cache di rpm rimuovendo i pacchetti scaricati
yum clean headers Rimuove tutti i file header
yum clean all Rimuove tutti i pacchetti e i file di cache header

Codice comando Descrizione
dpkg -i package.deb Installa/aggiorna un pacchetto deb
dpkg -r package_name Rimuove un pacchetto deb dal sistema
dpkg -l Mostra tutti i pacchetti deb installati nel sistema
dpkg -l | grep httpd Mostra tutti i pacchetti deb che contengono "httpd" nel nome
dpkg -s package_name Ottieni informazioni su un pacchetto installato nel sistema
dpkg -L package_name Mostra l'elenco dei file forniti da un pacchetto deb installato
dpkg --contents package.deb Mostra l'elenco dei file forniti da un pacchetto non installato
dpkg -S /bin/ping Verifica quale pacchetto deb fornisca il file specificato

Codice comando Descrizione
apt-get install package_name Installa/aggiorna un pacchetto deb
apt-cdrom install package_name Installa/aggiorna un pacchetto deb da un'unità CD
apt-get update Aggiorna la lista dei pacchetti
apt-get upgrade Aggiorna tutti i pacchetti installati
apt-get remove package_name Rimuove un pacchetto deb dal sistema
apt-get check Verifica la correttezza e l'integrità dei repository delle dipendenze
apt-get clean Pulisce la cache dai pacchetti scaricati
apt-cache search searched-package Restituisce i nomi dei pacchetti che contengono la stringa cercata

Codice comando Descrizione
cat file1 Mostra il contenuto del file dalla prima all'ultima riga
tac file1 Mostra il contenuto di un file dal fondo verso l'alto
more file1 Visualizza il contenuto di un file lungo
less file1 Simile al comando 'more', ma consente la navigazione avanti e indietro nel file
head -2 file1 Mostra le prime due righe di un file
tail -2 file1 Mostra le ultime due righe di un file
tail -f /var/log/messages Mostra in tempo reale il contenuto aggiunto a un file

Codice comando Descrizione
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt Unisce il testo dettagliato di un file e scrive la sintesi in un nuovo file
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt Unisce il testo dettagliato di un file e scrive la sintesi in un file esistente
grep Aug /var/log/messages Cerca la parola chiave "Aug" nel file '/var/log/messages'
grep ^Aug /var/log/messages Cerca nel file '/var/log/messages' le righe che iniziano per "Aug"
grep [0-9] /var/log/messages Seleziona le righe del file '/var/log/messages' che contengono numeri
grep Aug -R /var/log/* Cerca la stringa "Aug" nella directory '/var/log' e nelle directory sottostanti
sed 's/stringa1/stringa2/g' example.txt Sostituisce "stringa1" con "stringa2" nel file example.txt
sed '/^$/d' example.txt Rimuove tutte le righe vuote da example.txt
sed '/ *#/d; /^$/d' example.txt Rimuove tutti i commenti e le righe vuote dal file
echo 'esempio' | tr '[:lower:]' '[:upper:]' Unisce il contenuto di celle superiori
sed -e '1d' result.txt Escludi la prima riga dal file example.txt
sed -n '/stringa1/p' Visualizza solo le righe contenenti "stringa1"
sed -e 's/ *$//' example.txt Rimuove gli spazi bianchi finali da ogni riga
sed -e 's/stringa1//g' example.txt Rimuove solo "stringa1" dal documento ma mantiene il resto
sed -n '1,5p;5q' example.txt Visualizza il contenuto dalla prima alla quinta riga
sed -n '5p;5q' example.txt Visualizza la quinta riga
sed -e 's/00*/0/g' example.txt Sostituisce più zeri con uno solo
cat -n file1 Indica il numero delle righe del file
cat example.txt | awk 'NR%2==1' Rimuove tutte le righe pari dal file example.txt
echo a b c | awk '{print $1}' Visualizza la prima colonna di un riga
echo a b c | awk '{print $1,$3}' Visualizza la prima e la terza colonna di una riga
paste file1 file2 Unisce il contenuto di due file o colonne
paste -d '+' file1 file2 Unisce il contenuto di due file o colonne, separati da "+"
sort file1 file2 Ordina il contenuto di due file
sort file1 file2 | uniq Ottieni l'unione dei contenuti di due file (le righe duplicate vengono mantenute)
sort file1 file2 | uniq -u Rimuovi l'intersezione e conserva le altre righe
sort file1 file2 | uniq -d Restituisci l'intersezione dei due file (mostra solo le righe presenti in entrambi)
comm -1 file1 file2 Compara i contenuti di due file mantenendo solo il contenuto 'file1'
comm -2 file1 file2 Compara i contenuti di due file mantenendo solo il contenuto 'file2'
comm -3 file1 file2 Compara i contenuti di due file mantenendo solo le parti che non sono condivise

Codice comando Descrizione
dos2unix filedos.txt fileunix.txt Converte un file di testo da formato MSDOS a formato UNIX
unix2dos fileunix.txt filedos.txt Converte un file di testo da formato UNIX a formato MSDOS
recode ..HTML < page.txt> page.html Converte un file di testo in HTML
recode -l | more Mostra tutti i formati di conversione consentiti

Codice comando Descrizione
badblocks -v /dev/hda1 Controlla i settori danneggiati sul disco hda1
fsck /dev/hda1 Controlla/ripara l'integrità del file system Linux sul disco hda1
fsck.ext2 /dev/hda1 Controlla/ripara l'integrità del file system ext2 sul disco hda1
e2fsck /dev/hda1 Controlla/ripara l'integrità del file system ext2 sul disco hda1
e2fsck -j /dev/hda1 Controlla/ripara l'integrità del file system ext3 sul disco hda1
fsck.ext3 /dev/hda1 Controlla/ripara l'integrità del file system ext3 sul disco hda1
fsck.vfat /dev/hda1 Controlla/ripara l'integrità del file system FAT sul disco hda1
fsck.msdos /dev/hda1 Controlla/ripara l'integrità del file system DOS sul disco hda1
dosfsck /dev/hda1 Controlla/ripara l'integrità del file system DOS sul disco hda1

Codice comando Descrizione
mkfs /dev/hda1 Crea un file system nella partizione hda1
mke2fs /dev/hda1 Crea un file system ext2 in hda1
mke2fs -j /dev/hda1 Crea un file system ext3 (con journaling) in hda1
mkfs -t vfat 32 -F /dev/hda1 Crea un file system FAT32
fdformat -n /dev/fd0 Formatta un floppy disk
mkswap /dev/hda3 Crea un file system swap

Codice comando Descrizione
mkswap /dev/hda3 Crea un file system swap
swapon /dev/h