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 i comandi non sono pensati per funzionare sul tuo sistema.

Per ulteriori informazioni su questi comandi accedere alle loro pagine di manuale utilizzando il comando man.

Per esempio, da terminale:

man cat

Gestione files e directory

cd /home

entrare nella directory '/home'

cd ..

risalire di un livello

cd ../..

risalire 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 mettendo le pause di fine pagina

ls -a

mostra il contenuto della directory corrente compresi i files nascosti

ls -l

mostra il contenuto della directory corrente con altre informazioni

ls -F

mostra il contenuto della directory corrente con i simboli indicanti il tipo di file o dir

ls dir[1234]

corrisponde a "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 dei file e delle directory ordinandoli per dimensione

rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n

visualizzare la dimensione dei pacchetti rpm installati ordinanti per dimensione(fedora, redhat e derivate)

mkdir dir

crea la directory di nome dir

mkdir /dir

crea la directory di nome dir sulla directory principale (radice)

pwd

comunica quale sia la dir corrente (print working directory)

file dir

mostra il contenuto della directory corrente e ne specifica il tipo di files

du dir

mostra lo spazio su dir

du -sh dir1

conoscere lo spazio su disco occupato dalla directory 'dir1'

du -sk * | sort -rn

visualizzare la dimensione dei file e delle directory ordinanti per dimensione

tree dir

mostra il contenuto della directory corrente in modo organizzato

rm -r dir

rimuove la directory dir

rmdir dir

rimuove la directory dir se e' vuota

touch file

crea il file di nome "file"

rm file

cancella il file

cat file

mostra il contenuto di un file

more file

mostra il contenuto di un file

less file

mostra 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, a partire dalla radice, che iniziano con il nome dir

mv file1 file2

muove file1 in file2 (puo' essere usato per rinominare)

mv file1 dir

muove file1 nella directory dir

echo file*

mostra tutti i files che iniziano con il nome file

cat file1 file2 > file3

concatena file1 e file2 e li copia in file3

chgrp group1 file1

modificare il gruppo di appartenenza di un file

chmod +r file

aggiunge il permesso in lettura al file (altri valori w x)

chmod -r file

toglie il permesso in lettura al file (altri valori w x)

chmod ugo+rwx directory1

impostare i permessi di lettura(r), scrittura(w) ed accesso(x) per gli utenti proprietario(u), gruppo(g) e altri(o)

chmod go-rwx directory1

rimuovere i permessi di lettura(r), scrittura(w) ed accesso(x) per gli utenti gruppo(g) e altri(o)

chmod u+s /bin/file1

impostare il bit SUID su un file binario - l'utente che esegue quel file ottienegli stessi privilegi del proprietario

chmod u-s /bin/file1

disattivare il bit SUID su un file binario

chmod g+s /home/public

impostare il bit SGID su una directory - simile a SUID ma impostato sulla directory

chmod g-s /home/public

disattivare il bit SGID su una directory

chmod o+t /home/public

impostare il bit STIKY su una directory - consente la cancellazione dei file solo ai legittimi proprietari

chmod o-t /home/public

disattivare il bit STIKY su una directory

chown user1 file1

modificare il proprietario di un file

chown -R user1 directory1

modificare l'utente proprietario di una directory e tutti i file e directory contenuti al suo interno

chown user1:group1 file1

modificare utente e gruppo proprietario di un file

find / -perm -u+s

visualizzare tutti i file presenti sul sistema con SUID impostato

ls -lh

visualizzare i permessi

ls /tmp | pr -T5 -W$COLUMNS

dividere il terminale in 5 colonne

find /dir -name file -print

cerca il file di nome file a partire dalla directory dir

find /dir -name \*file -print

cerca i file che terminano con la parola file a partire dalla directory dir

grep parola /dir

cerca in tutti i file della directory dir (collocata nella radice) la parola parola

Sistema

top

Mostra i processi in esecuzione.

free

Mostra lo stato della memoria.

free -m

Mostra lo stato della memoria in Mb

sudo halt

Spegne il PC da terminale.

sudo reboot

Riavvia il PC da terminale.

uname -a

Mostra tutte le informazioni disponibili sul sistema.

uname -s

Mostra il nome del Kernel in uso.

uname -r

Mostra la release del Kernel in uso.

uname --help

Per conoscere le altre funzioni di uname

sudo fdisk -l

Stampa le partizioni sul disco.

lsusb

Stampa i dispositivi usb connessi.

sudo lshw -c video

Stampa informazioni sulla scheda video.

ifconfig

Informazioni sulla rete.

iwconfig

Informazioni sulla rete senza fili.

sudo /etc/init.d/networking restart

Reimposta la rete dopo configurazioni manuali.

sudo gedit /etc/network/interfaces

Apre, e consente di modificare, il file di configurazione manuale della rete.

lspci

Elenca le periferiche e i bus PCI.

lshw

Stampa l'elenco completo dell'hardware di sistema.

cat /proc/cpuinfo

Mostra informazioni sul processore.

cat /proc/meminfo

Mostra informazioni sulla memoria.

cat /proc/swaps

Mostra la partizione di swap.

cat /proc/mounts

Mostra i filesystem montati.

sudo lshw > ~/Scrivania/Hardware.txt

Crea un documeto “Hardware.txt” sulla scrivania con le info sull'hardware.

lspci | grep VGA

Vede la compatibilità della scheda video

pstree

Mostra un diagramma ad albero dei processi.

sudo nautilus

Apre il file manager con permessi di root.

xkill

Termina la finestra selezionata dal puntatore.

sudo shutdown hh:mm

Spegne il PC all'orario specificato.

sudo shutdown -c

Elimina uno spegnimento pianificato.

whoami

Mostra l'utente con cui si è loggati.

lsb_release -a

Mostra tutte le informazioni sulla distribuzione.

lsb_release -d

Mostra la descrizione della distro.

lsb_release --help

Per 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 il loro consumo di ram.

nohup nome_programma &

Chiude la shell senza chiudere il programma lanciato dal terminale.

ps

Stampa l' elenco dei processi correnti.

ps -l

Stampa l' elenco dei processi correnti, in formato esteso.

ps -r

Stampa i soli processi attivi.

ps -x

Stampa anche i processi non controllati dal terminale.

ps --help

Per conoscere tutte le funzioni di ps.

ps -e | grep nome_programma

Indica se un programma è attivo .

kill XXX

Terminare un processo. Bisogna sostituire XXX con il PID ricavato da ps-x.

killall -9 nome_programma

Per terminare un processo con il nome del programma.

bg

Elenca i job fermati o in sottofondo; ripristina un job fermato e messo in sottofondo .

fg

Porta il job più recente in primo piano .

fg n

Porta il job n 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

effettua un back-up della home di NOMEUTENTE in
/media/PERCORSO/ col nome BACKUP-UTENTE

sudo dpkg-reconfigure tzdata

Reimposta la data.

find /home/nomeutente/Musica/ -name Thumbs.db -delete

Trova ed elimina tutti i files Thumbs.db lasciati da Windows in Musica.

sudo gedit /boot/grub/grub.cfg

Apre, e consente di modificare, il file di configurazione del bootloader grub.

sudo /etc/init.d/gdm restart

Riavvia il server X e ritorna alla schermata di accesso (GNOME).

sudo /etc/init.d/kdm restart

Riavvia il server X e ritorna 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

Reimposta la configurazione del server X

last reboot

mostra lo storico dei reboot

lsmod

visualizza i mooduli del kernel caricati

lsof -p process_id

visualizza la lista dei file aperti dai processi

lsof /home/user1

visualizza la lista dei file aperti in una determinato path di sistema

smartctl -A /dev/hda

monitorare l'affidabilità di un hard-disk mediante SMART

smartctl -i /dev/hda

verificare se SMART è attivo su un hard-disk

strace -c ls >/dev/null

mostra le chiamate di sistema fatte e ricevute da un processo

strace -f -e open ls >/dev/null

visualizza le chiamate alle librerie

tail /var/log/dmesg

visualizzare gli eventi inerenti al processo di boot del kernel

tail /var/log/messages

visualizzare gli eventi di sistema

watch -n1 'cat /proc/interrupts'

mostra gli interrupts in tempo reale

Archivi

cat file.zip.part1 file.zip.part2 file.zip.part3 > file.zip

Unisce gli i files divisi in vari archivi che spesso si trovano nei siti di sharing.

lxsplit -s grossofile.estensione 15M

Divide in archivi di 15Mb un file molto grande.

lxsplit -j pezzettino.estensione.001

ricompone un archivio partendo dal file pezzettino.estensione.001 ed andando a cercarsi 002 ... 00n

rar a archivio.rar file.xxx

Crea un archivio “archivio.rar” che comprende “file.xxx”.

rar a archivio.rar file1.xxx file2.xxx filen.xxx

Crea un archivio “archivio.rar” che comprende “file1.xxx,file2.xxx,filen.xxx”

rar x archivio.rar

Comprime l'archivio rar “archivio.rar”.

Unrar x archivio.rar

Decomprime l'archivio rar “archivio.rar”

zip archivio.zip file1.xxx

Crea un archivio “archivio.zip” che comprende file1.zip

zip -r archivio.zip file1 file2 car1

Crea un archivio “archivio.zip” che comprende i file “file1,file2” e la cartella “car1”.

unzip archivio.zip

Decomprime l'archivio zip “archivio.zip”.

Ricerca File

find / -name file1

cercare un file o directory all'interno del filesystem partendo dalla radice '/'

find / -user user1

cercare tutti i file e le directory appartenenti all'utente 'user1'

find /home/user1-name \*.bin

cercare all'interno della directory '/home/user1' tutti file con estensione '.bin'

find /usr/bin -type f -atime +100

cercare tutti i file(binari) non utilizzati negli ultimi 100 giorni

find /usr/bin -type f -mtime -10

cercare tutti i file creati o modificati entro 10 giorni

find / -name *.rpm -exec chmod 755 '{}' \;

cercare tutti i file con estensione 'rpm' e modificarne i permessi

find / -xdev -name \*.rpm

cercare tutti i file con estensione rpm ignorando partizioni rimovibili come
cdrom, pen-drive, ecc…

locate \*.ps

cercare tutti i file con estensione .ps - prima eseguire il comando 'updatedb'

whereis halt

visualizzare la locazione di un file binario,sorgente o man

which halt

visualizzare il path completo di un file binario/eseguibile

Informazioni sul sistema

arch

mostra l'architettura della macchina(1)

cal 2018

visualizzare il calendario dell'anno 2007

cat /proc/cpuinfo

visualizzare informazioni sulla cpu

cat /proc/interrupts

visualizzare gli interrupts

cat /proc/meminfo

verificare la memoria in uso

cat /proc/swaps

visualizzare i filesystem(s) swap

cat /proc/version

visualizzare la versione del kernel

cat /proc/net/dev

visualizzare gli adattori di rete

cat /proc/mounts

visualizzare i filesystem(s) montati

clock -w

salvare definitavamente le modifiche della data sul BIOS

date

visualizzare la data di sistema

date 041217002018.00

impostare data e ora - MeseGiornoOreMinutiAnno.Secondi

dmidecode -q

mostra componenti hardware di sistema - (SMBIOS/DMI)

hdparm -i /dev/hda

mostra le info e le caratteristiche di un hard-disk

hdparm -tT /dev/sda

eseguire un test di lettura su un hard-disk

lspci -tv

visualizzare le periferiche pci

lsusb -tv

visualizzare le periferiche usb

uname -m

mostra l'architettura della macchina(2)

uname -r

mostra la versione del kernel in uso

Arresto, Riavvio e Logout di un sistema

init 0

arresto del sistema(2)

logout

abbondonare la sessione

reboot

riavvio del sistema(2)

shutdown -h now

arresto del sistema(1)

shutdown -h 16:30 &

arresto programmato del sistema

shutdown -c

cancellare un arresto programmato del sistema

shutdown -r now

riavvio del sistema(1)

telinit 0

arresto del sistema(3)

Utenti e Gruppi

chage -E 2018-03-31 user1

impostare la scadenza 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]

log-in temporaneamente in un nuovo gruppo, cambia soltanto il gruppo di default dei nuovi file creati

passwd

modificare la password

passwd user1

modificare la password di un utente(solo da root)

pwck

Verificare la correttezza sintattica e formale del file '/etc/passwd' e l'effettiva esistenza degli utenti

useradd -c "User Linux" -g admin -d /home/user1 -s /bin/bash user1

creare un nuovo utente appartente al gruppo "admin"

useradd user1

creare un nuovo utente

userdel -r user1

eliminare un utente ('-r' elimina la home directory)

usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1

modificare gli attributi utente

Pacchetti DEB

dpkg -i [package.deb]

installare/aggiornare un pacchetto deb

dpkg -r [package]

rimuovere un pacchetto deb dal sistema

dpkg -l

visualizzare tutti i pacchetti deb installati sul sistema

dpkg -l | grep httpd

visualizzare tutti i pacchetti rpm col nome "httpd"

dpkg -s [package]

ottenere informazioni su un determinato pacchetto installato

dpkg -L [package]

visualizzare la lista dei file forniti da un pacchetto installato

dpkg --contents [package.deb]

visualizzare la lista dei file forniti da un pacchetto non installato

dpkg -S /bin/ping

verificare a quale pacchetto appartiene un dato file

APT-GET

sudo apt-get install nome_pacchetto

Installa un nuovo pacchetto.

sudo apt-get remove nome_pacchetto

Rimuove il pacchetto selezionato.

sudo apt-get --purge remove nome_pacchetto

Rimuove un pacchetto, compresi tutti i file di configurazione.

sudo apt-get autoremove nome_pacchetto

Rimuove un pacchetto e tutte le dipendenze inutilizzate.

sudo apt-get -f install

Tenta di di riparare i pacchetti con delle dipendenze non soddisfatte.

sudo apt-get clean

Rimuove dalla cache di apt i pacchetti .deb.

sudo apt-get update

Aggiorna la lista dei pacchetti disponibili dai repository.

sudo apt-get upgrade

Scarica e installa gli aggiornamenti per tutti i pacchetti installati.

sudo apt-get dist-upgrade

Aggiorna l'intero sistema ad una nuova versione.

apt-cache search stringa_da_cercare

Cerca una stringa nella lista dei pacchetti conosciuti.

Internet e Firewall

3m www.indirizzo_website.it

Browser testuale.

netstat -tupan

Elenca le connessioni tcp/udp in ascolto o stabilite nel sistema .

links2 -g google.com

Apre in modalità grafica la pagina di cui si fornisce il link .

host www.indirizzo_website.it

Mostra l'IP del sito in questione.

wget -r -l 2 Hwww.indirizzo_website.it

Scarica un sito internet con i suoi links ricorsivamente fino al livello 2

sudo nast -i wlan0 -m

Indica chi è connesso alla rete.

sudo nmap -A XXX.XXX.XXX.XXX

Fornisce informazioni sul determinato IP ricavato 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)

Dati nell'ordine, trasferiscono il contenuto di /source/dir dalla partenza alla destinazione attraverso la porta 2342. I files vengono automaticamente compattati all'invio e scompattati alla ricezione .

ufw enable

Attiva il firewall .

ufw disable

Disattiva 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 corrente e regole

ufw allow xx

Consenti traffico sulla porta “xx”.

ufw deny xx

Blocca traffico sulla porta “xx”.

ufw allow from xxx.xxx.xxx.xxx

Consenti l'indirizzo 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 chains della tabella di filtering

iptables -t nat -L

mostra tutte le chains della tabella di nat

iptables -t filter -F

azzera tutte le regole dalla tabella di filtraggio

iptables -t nat -F

azzera tutte le regole dalla tabella nat

iptables -t filter -X

cancella eventuali chains create dall'utente

iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT

permetti connessioni telnet in ingresso

iptables -t filter -A OUTPUT -p tcp --dport http -j DROP

blocca connessioni http in uscita

iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT

permetti connessioni pop3 sulla chain di forward

iptables -t filter -A INPUT -j LOG --log-prefix

logging sulla chain di input

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

configura un PAT(Port Address Traslation) sull'interfaccia eth0 mascherando 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

redirect dei pacchetti indirizzati a un host verso un altro

Backup

find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2

trova tutti i file con estensione '.log' e crea un archivio 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 [email protected]_addr 'dd of=hda.gz'

backupare il contentuo di un hardisk locale su un host remoto via ssh

dd if=/dev/sda of=/tmp/file1

backupare il contenuto di un hardisk 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 dalla copia di backup salvata su floppy

dump -0aj -f /tmp/home0.bak /home

backup full della directory '/home'

dump -1aj -f /tmp/home0.bak /home

backup incrementale della directory '/home'

restore -if /tmp/home0.bak

ripristino di un backup in maniera interattiva

rsync -rogpav --delete /home /tmp

sincronizzazione tra directory

rsync -rogpav -e ssh --delete /home ip_address:/tmp

rsync via ssh tunnel

rsync -az -e ssh --delete ip_addr:/home/public /home/local

sincronizzare una directory locale con una directory remota via ssh e compressione

rsync -az -e ssh --delete /home/local ip_addr:/home/public

sincronizzare una directory remota con una directory locale via ssh e compressione

tar -Puf backup.tar /home/user

backup incrementale della directory '/home/user'

( cd /tmp/local/ && tar c . ) | ssh -C [email protected]_addr 'cd /home/share/ && tar x -p'

copiare il contenuto di una directory su una directory remota via ssh

( tar c /home ) | ssh -C [email protected]_addr 'cd /home/backup-home && tar x -p'

copiare una directory locale su una directory remota via ssh

tar cf - . | (cd /tmp/backup ; tar xf - )

copiare in locale preservando i permessi e link da una directory all'altra

Utility

tasto "TAB"

Svolge una funzione di autocompletamento per files, 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/

Forza lo svuotamento del cestino .

du -h ~ | grep '[[:digit:]]G\b' | sort -n -r

Stampa le directory che superano 1GB.

eject

Apre l'unita ottica.

eject -t

Chiude l'unità ottica.

file /home/utente/cartella/file

Indica la reale estensione di un file .

md5sum /home/utente/cartella/file.iso

Stampa il checksum di una .iso.

rm -r ~/.mozilla/firefox/*/Cache/

Rimuove la cache di Firefox.

history

Stampa la lista degli ultimi comandi lanciati da terminale.

apropos xxxxxxxx

Cerca in man l'argomento specificato al posto delle x.

sudo !!

Esegue da amministratore un precedente comando che per disattenzione era stato editato senza anteporre sudo .

sudo hdparm -tT /dev/sda

Esegue test di lettura sull'hard-disk.

sudo hdparm -i /dev/sda

Mostra informazioni relative all'hard-disk.

find */nome_file.xxx

Cerca “nome_file” in ogni cartella, sostituire “xxx” con l'estensione del file.

sudo os-prober

Rileva e stampa tutti i sistemi operativi installati.

sudo iwlist scan

Rileva reti senza fili .

grep pattern files1

Cerca la stringa “pattern” nel file “file1”.

command | grep pattern

Cerca la stringa “pattern” nell'output del comando “command”.

locate file 1

Trova tutte le occorrenze di “file1”.

alias hh='history'

impostare un alias ad un comando - hh = history

apropos 

visualizza una lista dei comandi pertinenti alle keywords di un dato applicativo, utile quando si ricorda cosa un programma fa, ma non si ricorda il nome del programma

chsh	

cambiare shell di lavoro

chsh --list-shells

questo comando mostra eventuali utenti remoti loggati sul sistema

gpg -c file1

cryptare un file con GNU Privacy Guard

gpg file1.gpg

decryptare un file con GNU Privacy Guard

ldd /usr/bin/ssh

mostra le librerie richieste per esempio dal programma ssh

mkbootdisk --device /dev/fd0 

creare un dischetto di boot

wget -r www.esempio.com

scaricare un sito intero

wget -c www.esempio.com/file.iso

scaricare un file con la possibilità di arrestare il download e riprenderlo successivamente

echo 'wget -c www.esempio.com/file.iso' | at 19:00

iniziare un download ad una determinata ora

whatis

mostra le informazioni su quello che un dato programma fa

who -a

mostra gli utenti loggati in maniera dettagliata