introduzione
Alcuni di questi comandi potrebbero non funzionare sulla tua distribuzione. L'esecuzione di questi comandi potrebbe richiedere l'installazione di pacchetti aggiuntivi o semplicemente questi comandi non sono progettati per funzionare sul tuo sistema.
Per ulteriori informazioni su questi comandi, apri le loro pagine man con il comando man .
Ad esempio, da un terminale:
man cat
Gestione di file e directory
cd /home
entra nella directory '/home'
cd ..
salire di livello
cd ../..
salire di due livelli
cd
vai alla home directory
cd ~user1
vai alla home directory
cd -
vai alla directory precedente
ls
mostra il contenuto della directory corrente
ls | more
mostra il contenuto della directory corrente, facendo una pausa alla fine della pagina
ls -a
mostra il contenuto della directory corrente, inclusi i file nascosti
ls -l
mostra il contenuto della directory corrente con altre informazioni
ls -F
visualizza il contenuto della directory corrente con simboli che indicano il tipo di file o directory
ls dir[1234]
coincidono con "ls dir1 dir2 dir3 dir4"
ls dir*
mostra il contenuto di tutte le directory che iniziano con la parola dir
ls -lSr |more
visualizzare la dimensione di file e directory ordinandoli per dimensione
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n
visualizzare la dimensione dei pacchetti rpm installati ordinati per dimensione (fedora, redhat e derivati)
mkdir dir
creare una directory denominata dir
mkdir /dir
creare una directory denominata dir nella directory principale
pwd
dire qual è la directory corrente (stampa directory di lavoro)
file dir
mostra il contenuto della directory corrente e specifica il tipo di file
du dir
mostra spazio quando dici
du -sh dir1
conoscere lo spazio su disco occupato dalla directory 'dir1'
du -sk * | sort -rn
visualizzare le dimensioni di file e directory ordinate per dimensione
tree dir
mostra il contenuto della directory corrente in modo organizzato
rm -r dir
elimina directory directory
rmdir dir
rimuovere la directory dalla directory se vuota
touch file
creare il file chiamato "file"
rm file
eliminare il file
cat file
mostrare il contenuto di un file
more file
mostrare il contenuto di un file
less file
mostrare il contenuto di un file
cp file1 dir
copia file1 nella directory dir
cp file1 file2
copia file1 in file2
cp file1 /dir*
copia file1 nelle directory, iniziando con root, iniziando con name dir
mv file1 file2
sposta file1 in file2 (può essere utilizzato per rinominare)
mv file1 dir
sposta file1 nella directory dir
echo file*
mostra tutti i file che iniziano con il nome del file
cat file1 file2 > file3
concatena file1 e file2 e li copia in file3
chgrp group1 file1
cambia il gruppo a cui appartiene un file
chmod +r file
aggiungi il permesso di lettura al file (altri valori wx)
chmod -r file
rimuovere il permesso di lettura dal file (altri valori wx)
chmod ugo+rwx directory1
impostare i permessi di lettura (r), scrittura (w) e accesso (x) per il proprietario (u), il gruppo (g) e altri (o) utenti
chmod go-rwx directory1
rimuovere i permessi di lettura (r), scrittura (w) e accesso (x) per gli utenti di gruppo (g) e altri (o).
chmod u+s /bin/file1
impostare il bit SUID su un file binario: l'utente che esegue quel file ottiene gli stessi privilegi del proprietario
chmod u-s /bin/file1
disattivare il bit SUID in un file binario
chmod g+s /home/public
imposta il bit SGID su una directory - simile a SUID ma impostato sulla directory
chmod g-s /home/public
disabilitare il bit SGID su una directory
chmod o+t /home/public
imposta il bit STIKY su una directory: consente solo di eliminare i file dai legittimi proprietari
chmod o-t /home/public
disabilitare il bit STIKY su una directory
chown user1 file1
cambiare il proprietario di un file
chown -R user1 directory1
modificare l'utente che possiede una directory e tutti i file e le directory in essa contenuti
chown user1:group1 file1
cambiare utente e proprietario del gruppo di un file
find / -perm -u+s
visualizzare tutti i file di sistema con SUID impostato
ls -lh
permessi di visualizzazione
ls /tmp | pr -T5 -W$COLUMNS
dividere il terminale in 5 colonne
find /dir -name file -print
cerca il file chiamato nomefile dalla directory dir
find /dir -name \*file -print
trova i file che terminano con il file word che inizia nella directory dir
grep parola /dir
cerca in tutti i file nella directory dir (che si trova alla radice) la parola word
Sistema
top
Mostra i processi in esecuzione.
free
Mostra lo stato della memoria.
free -m
Mostra lo stato della memoria in Mb
sudo halt
Spegnere il PC dal terminale.
sudo reboot
Riavvia il PC dal terminale.
uname -a
Mostra tutte le informazioni disponibili sul sistema.
uname -s
Mostra il nome del kernel in uso.
uname -r
Mostra la versione del kernel in uso.
uname --help
Conoscere le altre funzioni di uname
sudo fdisk -l
Stampa le partizioni sul disco.
lsusb
Stampa i dispositivi USB collegati.
sudo lshw -c video
Stampa le informazioni sulla scheda video.
ifconfig
Informazioni di rete.
iwconfig
Informazioni sulla rete wireless.
sudo /etc/init.d/networking restart
Riavvia la rete dopo le impostazioni manuali.
sudo gedit /etc/network/interfaces
Apre e consente di modificare il file di configurazione di rete manuale.
lspci
Elenca i bus e i dispositivi PCI.
lshw
Imprima la lista completa del hardware del sistema.
cat /proc/cpuinfo
Mostra le informazioni sul processore.
cat /proc/meminfo
Mostra le informazioni sulla memoria.
cat /proc/swaps
Mostra la partizione di scambio.
cat /proc/mounts
Mostra i file system montati.
sudo lshw > ~/Scrivania/Hardware.txt
Crea un documento "Hardware.txt" sul desktop con informazioni sull'hardware.
lspci | grep VGA
Vedi compatibilità scheda video
pstree
Mostra un diagramma ad albero dei processi.
sudo nautilus
Apri il file manager con i permessi di root.
xkill
Termina la finestra selezionata dal puntatore.
sudo shutdown hh:mm
Spegnere il PC all'ora specificata.
sudo shutdown -c
Elimina uno spegnimento programmato.
whoami
Mostra l'utente con cui hai effettuato l'accesso.
lsb_release -a
Mostra tutte le informazioni sulla distribuzione.
lsb_release -d
Mostra la descrizione della distribuzione.
lsb_release --help
Conoscere le altre funzioni di lsb_
df -h
Mostra lo spazio libero di tutti i file system montati.
ps aux | awk '{print $2, $4, $11}' | sort -k2r | head -n 20
Stampa informazioni sui programmi in esecuzione e sul loro consumo di RAM.
nohup nome_programma &
Chiude la shell senza chiudere il programma lanciato da terminale.
ps
Stampa l'elenco dei lavori correnti.
ps -l
Stampa l'elenco dei lavori correnti, in formato esteso.
ps -r
Stampa solo lavori attivi.
ps -x
Stampa anche processi non controllati dal terminale.
ps --help
Conoscere tutte le funzioni di ps.
ps -e | grep nome_programma
Indica se un programma è attivo.
kill XXX
Termina un processo. XXX deve essere sostituito con il PID ottenuto da ps-x.
killall -9 nome_programma
Per terminare un processo con il nome del programma.
bg
Elenco di lavori interrotti o in background; ripristina un lavoro interrotto e riprodotto in background.
fg
Porta in primo piano il lavoro più recente.
fg n
Porta n lavoro in primo piano.
sudo update-grub
Per aggiornare il bootloader.
rsync -auv --exclude=.local --exclude=.thumbnails --exclude=.mldonkey --delete --stats /home/NOMEUTENTE/ /media/PERCORSO/BACKUP-UTENTE
supporto / percorso / nome BACKUP-USER backup Username
sudo dpkg-reconfigure tzdata
Reimposta la data.
find /home/nomeutente/Musica/ -name Thumbs.db -delete
Trova ed elimina tutti i file Thumbs.db lasciati da Windows in Musica.
sudo gedit /boot/grub/grub.cfg
Apre e consente di modificare il file di configurazione del bootloader di grub.
sudo /etc/init.d/gdm restart
Riavvia il server X e torna alla schermata di accesso (GNOME).
sudo /etc/init.d/kdm restart
Riavvia il server X e torna alla schermata di accesso (KDE)
sudo gedit /etc/X11/xorg.conf
Apre e consente di modificare il file di configurazione del server grafico X.
sudo dpkg-reconfigure -phigh xserver-xorg
Ripristina le impostazioni del server X
last reboot
mostra la cronologia di riavvio
lsmod
mostra i moduli del kernel caricati
lsof -p process_id
mostra l'elenco dei file aperti dai processi
lsof /home/user1
mostra l'elenco dei file aperti in un determinato percorso di sistema
smartctl -A /dev/hda
monitorare l'affidabilità di un disco rigido utilizzando SMART
smartctl -i /dev/hda
verificare se SMART è attivo su un disco rigido
strace -c ls >/dev/null
visualizza le chiamate di sistema effettuate e ricevute da un processo
strace -f -e open ls >/dev/null
mostra le chiamate alle biblioteche
tail /var/log/dmesg
visualizzare gli eventi relativi al processo di avvio del kernel
tail /var/log/messages
visualizzare gli eventi di sistema
watch -n1 'cat /proc/interrupts'
visualizzare le interruzioni in tempo reale
Archivio, archivio
cat file.zip.part1 file.zip.part2 file.zip.part3 > file.zip
Combina i file divisi in più file che si trovano spesso sui siti di condivisione.
lxsplit -s grossofile.estensione 15M
Dividi un file molto grande in file da 15 Mb.
lxsplit -j pezzettino.estensione.001
ricompone un file dal file pezzettino.extension.001 e va a cercare 002 ... 00n
rar a archivio.rar file.xxx
Cree un archivo "archive.rar" que incluya "file.xxx".
rar a archivio.rar file1.xxx file2.xxx filen.xxx
Cree un archivio "archive.rar" che include "file1.xxx, file2.xxx, filen.xxx"
rar x archivio.rar
Comprimere il file rar "archive.rar".
Unrar x archivio.rar
Decomprimi il file rar "archive.rar"
zip archivio.zip file1.xxx
Cree un archivo "archive.zip" que incluya file1.zip
zip -r archivio.zip file1 file2 car1
Creare un file "archive.zip" che includa i file "file1, file2" e la cartella "car1".
unzip archivio.zip
Descomprima l'archivio zip "archive.zip".
ricerca di file
find / -name file1
cerca un file o una directory all'interno del file system a partire dalla radice '/'
find / -user user1
trova tutti i file e le directory di proprietà dell'utente 'utente1'
find /home/user1-name \*.bin
cerca nella directory '/home/user1' tutti i file con estensione '.bin'
find /usr/bin -type f -atime +100
trova tutti i file (binari) che non sono stati utilizzati negli ultimi 100 giorni
find /usr/bin -type f -mtime -10
trova tutti i file creati o modificati in 10 giorni
find / -name *.rpm -exec chmod 755 '{}' \;
trova tutti i file con estensione 'rpm' e cambia i loro permessi
find / -xdev -name \*.rpm
pen-drive, ecc... cerca i file con estensione '.rpm' ignorando le partizioni rimovibili
locate \*.ps
trova tutti i file con estensione .ps - esegui prima il comando 'updatedb'
whereis halt
visualizzare la posizione di un file binario, sorgente o man
which halt
visualizzare il percorso completo di un file binario/eseguibile
Informazioni di sistema
arch
mostra l'architettura della macchina (1)
cal 2018
vedere il calendario dell'anno 2007
cat /proc/cpuinfo
visualizzare le informazioni sulla CPU
cat /proc/interrupts
vedi interruzioni
cat /proc/meminfo
controllare la memoria in uso
cat /proc/swaps
visualizzare file system di condivisione
cat /proc/version
visualizza la versione del kernel
cat /proc/net/dev
vedi schede di rete
cat /proc/mounts
visualizzare i file system montati
clock -w
salvare permanentemente le modifiche alla data nel BIOS
date
visualizzazione della data di sistema
date 041217002018.00
set datetime - MonthDayHoursMinutesYear.Seconds
dmidecode -q
mostra i componenti hardware del sistema - (SMBIOS/DMI)
hdparm -i /dev/hda
mostra le informazioni e le caratteristiche di un disco rigido
hdparm -tT /dev/sda
eseguire un test di lettura su un disco rigido
lspci -tv
visualizzare i dispositivi pci
lsusb -tv
vedi periferiche usb
uname -m
mostra l'architettura della macchina (2)
uname -r
mostra la versione del kernel in uso
Arresto, riavvio e disconnessione da un sistema
init 0
spegnimento del sistema (2)
logout
disconnettersi
reboot
riavvio del sistema (2)
shutdown -h now
spegnimento del sistema (1)
shutdown -h 16:30 &
spegnimento programmato del sistema
shutdown -c
annullare un arresto programmato del sistema
shutdown -r now
riavvio del sistema (1)
telinit 0
spegnimento del sistema (3)
Utenti e gruppi
chage -E 2018-03-31 user1
impostare la scadenza della password per un utente
groupadd [group]
creare un nuovo gruppo
groupdel [group]
eliminare un gruppo
groupmod -n moon sun
rinominare un gruppo
grpck
Verificare la correttezza sintattica e formale del file '/etc/group' e l'effettiva esistenza dei gruppi
newgrp - [group]
Accedi temporaneamente a un nuovo gruppo, cambia solo il gruppo predefinito di file appena creati
passwd
cambia la password
passwd user1
cambiare la password di un utente (solo root)
pwck
Verifica la correttezza sintattica e formale del file '/etc/passwd' e la reale esistenza degli utenti
useradd -c "User Linux" -g admin -d /home/user1 -s /bin/bash user1
creare un nuovo utente appartenente al gruppo "admin".
useradd user1
creare un nuovo utente
userdel -r user1
rimuovere un utente ('-r' rimuovere la directory home)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1
modificare gli attributi dell'utente
Pacchetti DEB
dpkg -i [package.deb]
installa/aggiorna un pacchetto deb
dpkg -r [package]
rimuovere un pacchetto deb dal sistema
dpkg -l
visualizza tutti i pacchetti deb installati sul sistema
dpkg -l | grep httpd
visualizza tutti i pacchetti rpm con il nome "httpd"
dpkg -s [package]
ottenere informazioni su un particolare pacchetto installato
dpkg -L [package]
visualizzare l'elenco dei file forniti da un pacchetto installato
dpkg --contents [package.deb]
visualizzare l'elenco dei file forniti da un pacchetto disinstallato
dpkg -S /bin/ping
controlla a quale pacchetto appartiene un determinato file
APT-GET
sudo apt-get install nome_pacchetto
Installa un nuovo pacchetto.
sudo apt-get remove nome_pacchetto
Elimina il pacchetto selezionato.
sudo apt-get --purge remove nome_pacchetto
Rimuove un pacchetto, inclusi tutti i file di configurazione.
sudo apt-get autoremove nome_pacchetto
Rimuove un pacchetto e tutte le dipendenze inutilizzate.
sudo apt-get -f install
Prova a riparare i pacchetti con dipendenze non soddisfatte.
sudo apt-get clean
Rimuovere i pacchetti .deb dalla cache di apt.
sudo apt-get update
Aggiorna l'elenco dei pacchetti disponibili nei repository.
sudo apt-get upgrade
Scarica e installa gli aggiornamenti per tutti i pacchetti installati.
sudo apt-get dist-upgrade
Aggiorna l'intero sistema a una nuova versione.
apt-cache search stringa_da_cercare
Cerca una stringa nell'elenco dei pacchetti conosciuti.
Internet e firewall
3m www.indirizzo_website.it
Browser di testo.
netstat -tupan
Elenca le connessioni TCP/udp in ascolto o stabilite sul sistema.
links2 -g google.com
Apre la pagina a cui è fornito il collegamento in modalità grafica.
host www.indirizzo_website.it
Mostra l'IP del sito in questione.
wget -r -l 2 Hwww.indirizzo_website.it
Scarica un sito web con i suoi link ricorsivamente fino al livello 2
sudo nast -i wlan0 -m
Indica chi è connesso alla rete.
sudo nmap -A XXX.XXX.XXX.XXX
Fornisce informazioni sull'IP specifico ottenuto dal comando precedente.
nc -l -p 2342 | tar -C /target/dir -xzf – (nel server di destinazione)
tar -cz /source/dir | nc ip_server_di_destinazione 2342 (nel server di partenza)
In ordine, trasferiscono il contenuto di /source/dir dall'inizio alla destinazione sulla porta 2342. I file vengono automaticamente compressi all'invio e decompressi alla ricezione.
ufw enable
Attiva il firewall.
ufw disable
disabilitare il firewall
ufw default allow
Consenti tutte le connessioni per impostazione predefinita
ufw default deny
Blocca tutte le connessioni per impostazione predefinita
ufw status
Stato attuale e regole
ufw allow xx
Consenti traffico sulla porta "xx".
ufw deny xx
Blocca il traffico sulla porta "xx".
ufw allow from xxx.xxx.xxx.xxx
Permita la dirección IP "xxx.xxx.xxx.xxx".
ufw deny from xxx.xxx.xxx.xxx
Blocca l'indirizzo ip "xxx.xxx.xxx.xxx"
iptables -t filter -L
mostra tutte le stringhe dalla tabella dei filtri
iptables -t nat -L
mostra tutte le stringhe dalla tabella nat
iptables -t filter -F
elimina tutte le regole dalla tabella dei filtri
iptables -t nat -F
elimina tutte le regole dalla tabella nat
iptables -t filter -X
rimuove qualsiasi stringa creata dall'utente
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT
consentire connessioni telnet in entrata
iptables -t filter -A OUTPUT -p tcp --dport http -j DROP
bloccare le connessioni http in uscita
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT
consentire connessioni pop3 nella catena diretta
iptables -t filter -A INPUT -j LOG --log-prefix
registrare nella stringa di input
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
configurare una PAT (port address translation) sull'interfaccia eth0 per mascherare i pacchetti in uscita
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22
reindirizzamento di pacchetti indirizzati da un host a un altro
Supporto per
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2
trova tutti i file con estensione '.log' e crea un file in formato bzip
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
trova e copia tutti i file con estensione '.txt' da una directory all'altra
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'
eseguire il backup del contenuto di un disco rigido locale su un host remoto tramite ssh
dd if=/dev/sda of=/tmp/file1
eseguire il backup del contenuto di un disco rigido su un file locale
dd if=/dev/hda of=/dev/fd0 bs=512 count=1
creare una copia dell'MBR (Master Boot Record) su floppy
dd if=/dev/fd0 of=/dev/hda bs=512 count=1
ripristinare l'MBR dal backup salvato sul floppy
dump -0aj -f /tmp/home0.bak /home
backup completo della directory '/home'
dump -1aj -f /tmp/home0.bak /home
backup incrementale della directory '/home'
restore -if /tmp/home0.bak
ripristinare un backup in modo interattivo
rsync -rogpav --delete /home /tmp
sincronizzazione delle directory
rsync -rogpav -e ssh --delete /home ip_address:/tmp
rsync su tunnel ssh
rsync -az -e ssh --delete ip_addr:/home/public /home/local
sincronizzare una directory locale con una directory remota tramite ssh e compressione
rsync -az -e ssh --delete /home/local ip_addr:/home/public
sincronizzare una directory remota con una directory locale tramite ssh e compressione
tar -Puf backup.tar /home/user
backup incrementale della directory '/home/user'
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'
copia il contenuto di una directory in una directory remota tramite ssh
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'
copia una directory locale in una directory remota tramite ssh
tar cf - . | (cd /tmp/backup ; tar xf - )
copia localmente conservando autorizzazioni e collegamenti da una directory all'altra
Utilità
tasto "TAB"
Esegue una funzione di completamento automatico per file, directory.
man comando
Specificando il comando si apre la pagina di manuale del comando stesso.
sudo rm -rf ~/.local/share/Trash/info/
sudo rm -rf ~/.local/share/Trash/files/
Forzare lo svuotamento della spazzatura.
du -h ~ | grep '[[:digit:]]G\b' | sort -n -r
Stampa le directory che superano 1 GB.
eject
Aprire l'unità ottica.
eject -t
Chiudere l'unità ottica.
file /home/utente/cartella/file
Indica l'effettiva estensione di un file.
md5sum /home/utente/cartella/file.iso
Stampa il checksum di un .iso.
rm -r ~/.mozilla/firefox/*/Cache/
Elimina la caché de Firefox.
history
Stampa l'elenco degli ultimi comandi lanciati dal terminale.
apropos xxxxxxxx
Cerca man per l'argomento specificato invece di xs.
sudo !!
In qualità di amministratore, esegui un comando precedente che è stato modificato inavvertitamente senza anteporre sudo.
sudo hdparm -tT /dev/sda
Eseguire test di lettura del disco rigido.
sudo hdparm -i /dev/sda
Mostra le informazioni sul disco rigido.
find */nome_file.xxx
Cerca "nome file" in ogni cartella, sostituisci "xxx" con l'estensione del file.
sudo os-prober
Rileva e stampa tutti i sistemi operativi installati.
sudo iwlist scan
Rileva reti wireless.
grep pattern files1
Trova la stringa "pattern" nel file "file1".
command | grep pattern
Busque la cadena "patrón" en la salida del comando "comando".
locate file 1
Trova tutte le occorrenze di "file1".
alias hh='history'
imposta un alias per un comando - hh=storia
apropos
mostra un elenco di comandi relativi alle parole chiave per una determinata applicazione, utile quando ricordi cosa fa un programma, ma non riesci a ricordare il nome del programma
chsh
cambiare involucro di lavoro
chsh --list-shells
questo comando visualizza tutti gli utenti remoti registrati nel sistema
gpg -c file1
cifrar un archivo con GNU Privacy Guard
gpg file1.gpg
descifrar un archivo con GNU Privacy Guard
ldd /usr/bin/ssh
mostra le librerie richieste, ad esempio, dal programma ssh
mkbootdisk --device /dev/fd0
creare un disco di avvio
wget -r www.esempio.com
scarica il sito completo
wget -c www.esempio.com/file.iso
scaricare un file con l'opzione per interrompere il download e riprenderlo in un secondo momento
echo 'wget -c www.esempio.com/file.iso' | at 19:00
avviare un download a una certa ora
whatis
visualizza informazioni su ciò che sta facendo un particolare programma
who -a
mostra gli utenti registrati in dettaglio