Pubblicato il 02/03/2024 da alnao nella categoria Debian

In questo articolo sono elencati la maggior parte dei comandi per GNU Linux e per le distribuzioni Debian, l’elenco è incompleto e non descrive tutti i parametri di ogni comando, per maggiori dettagli riguardo ad un singolo comando si rimanda ai siti ufficiali oppure è possibile visualizzare tutti i parametri oppure è possibile usare il comando MAN, per esempio la lista dei parametri può essere visualizzata con il comando:

$ man ls

Si rimanda alla documentazione ufficiale del comando man per ogni dettaglio e i parametri e funzionalità.


Gestione di files e directories:

cd dir entrare nella sottodirectory dir della cartella corrente
cd /home entrare nella directory /home
cd .. risalire di un livello
cd ../.. risalire di due livelli
cd ~ vai alla home directory dell’utente corrente
cd - vai alla directory precedente
pwd visualizzare il path della directory di lavoro
ls visualizzare file e directory
ls -F visualizzare file e directory separandoli
ls -l visualizzare i dettagli di file e directory
ls -a visualizzare anche i file nascosti
ls *a* visualizzare file e cartelle il cui nome contiene il carattere a
ls -lSr |more visualizzare la dimensione dei file ordinandoli per dimensione
tree visualizzare file e directory in un albero a partire da root
mkdir dir1 creare la directory dir1
mkdir dir1 dir2 creare due directory contemporaneamente
mkdir -p /tmp/dir1/dir2 creare un’albero di directory
rm -f file1 eliminare il file file1
rmdir dir1 eliminare la directory dir1
rm -rf dir1 eliminare ricorsivamente la directory dir1 e sul contenuto
mv dir1 new_dir rinominare/muovere una directory o file
cp file1 file2 copiare un file da file1 a file2
cp dir/* . copiare tutti i file di una directory dentro la directory di lavoro corrente
cp -a /tmp/dir1 . copiare una directory dentro la directory di lavoro corrente
cp -a dir1 dir2 copiare una directory
ln -s file1 lnk1 creare un link simbolico al file(o directory) file1 chiamato lnk1
ln file1 lnk1 creare un link fisico al file(o directory) file1 chiamato lnk1
find / -name file1 cercare un file partendo dalla radice /
find / -user user1 cercare tutti i file appartenenti all’utente user1
find /usr/bin -type f -atime +100 cercare tutti i file non utilizzati negli ultimi 100 giorni
find /usr/bin -type f -mtime -10 cercare tutti i file creati o modificati entro 10 giorni
locate \*.ps cercare tutti i file con una determinata estensione

Manipolazione dei file:

cat file1 visualizzare il contenuto di un file partendo dalla prima riga
tac file1 visualizzare il contenuto di un file partendo dall’ultima riga
more file1 visualizzare il contenuto di un file lungo
less file1 visualizza il file permettendo di scorrere il file sia in avanti che indietro
head -2 file1 visualizzare le prime due righe di un file
tail -2 file1 visualizzare le ultime due righe di un file
tail -f /var/log/messages visualizzare in tempo reale ciò che viene aggiunto ad un file
dos2unix filedos.txt fileunix.txt convertire un file di testo MSDOS in formato UNIX
unix2dos fileunix.txt filedos.txt convertire un file di testo UNIX in formato MSDOS
recode HTML page.txt page.html convertire un file di testo in formato html
cat file1 \textbar comando > result.txt elaborare il testo di un file e scrivere il risultato su un nuovo file
cat file1 \textbar comando >> result.txt elaborare il testo di un file ed appendere su un file esistente
grep Aug /dir/file cercare la parola Aug all’interno del file
grep ^Aug /dir/file cercare le parole che cominciano con Aug del file
grep [0-9] /dir/file selezionare tutte le righe che contengono numeri
grep Aug -R /var/log/* estendere la ricerca della stringa Aug dentro la directory /var/log
sed 's/stringa1/stringa2/g' file.txt rimpiazzare stringa1 con stringa2 nel file
echo 'abcd' | tr '[:lower:]' '[:upper:]' convertire da minuscolo in maiuscolo
sed -e '1d' result.txt elimina la prima riga dal file example.txt
sed -n '/stringa1/p' visualizza solo righe che contengono stringa1
sed -e 's/ *$//' example.txt rimuovi i caratteri vuoti alla fine di ogni riga
sed -e 's/stringa1//g' example.txt cancella solo la parola stringa1 da tutte le righe
sed -n '1,5p;5q' example.txt stampare a video dalla riga 1 alla 5
sed -n '5p;5q' example.txt stampare a video la riga numero 5
sed -e 's/00*/0/g' example.txt sostituire più zeri con un solo zero
cat -n file1 numerare le righe di un file
cat example.txt | awk 'NR%2==1' rimuove tutte le righe pari da example.txt
echo a b c | awk '{print $1}' stampare a video la prima colonna di una riga
echo a b c | awk '{print $1, $3}' stampare la prima e la terza colonna di una riga
paste file1 file2 fondere il contenuto di due file per colonne
paste  -d  '+' file1 file2 fondere il contenuto di due file per colonne con il delimitatore +
sort file1 file2 ordinare i contenuti di due file
sort file1 file2 | uniq ordinare omettendo le linee ripetute
sort file1 file2 | uniq -u ordinare stampando solo le line univoche
sort file1 file2 | uniq -d ordinare stampando solo le line duplicate
comm -1 file1 file2 comparare i contenuti di due file sopprimendo le righe univoche del file1
comm -2 file1 file2 comparare i contenuti di due file sopprimendo le righe univoche del file2
comm -3 file1 file2 comparare i contenuti di due file sopprimendo le righe che appaiono su entrambi i file

Gestione del sistema e processi:

shutdown -h now arresto del sistema
init 0 arresto del sistema
telinit 0 arresto del sistema
shutdown -h ore:minuti arresto programmato del sistema
shutdown -c cancellare un arresto programmato del sistema
shutdown -r now riavvio del sistema
reboot riavvio del sistema
logout per abbandonare la sessione
top visualizza i processi di sistema che utilizzano più cpu
ps -eafw visualizza i processi di sistema
ps -e -o pid,args --forest visualizza i processi sistema in maniera gerarchica
pstree mostra un albero dei processi sistema
kill -9 IDProcesso forzare la chiusura del processo e terminarlo
kill -1 IDProcesso forzare il processo a ricaricare la configurazione
lsof -p $$ visualizza la lista dei file aperti dai processi
lsof /home/user1 la lista dei file aperti in una determinato path di sistema
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
watch -n1 'cat /proc/interrupts' mostra gli interrupts in tempo reale
last reboot mostra lo storico dei reboot
lsmod visualizza i mooduli del kernel caricati
free -m visualizza lo status della ram in megabyte
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
tail /var/log/dmesg visualizzare gli eventi inerenti al processo di boot del kernel
tail /var/log/messages visualizzare gli eventi di sistema

Informazioni sul sistema:

arch mostra l’architettura della macchina
uname -m mostra l’architettura della macchina
uname -r mostra la versione del kernel in uso
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
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
lspci -tv visualizzare le periferiche pci
lsusb -tv visualizzare le periferiche usb
date visualizzare la data di sistema
cal 2008 visualizzare il calendario dell’anno 2008
date 041217002007.00 impostare data e ora –  MeseGiornoOreMinutiAnno.Secondi
clock -w salvare definitivamente le modifiche della data sul BIOS

Mount e gestione dischi:

mount /dev/hda2 /mnt/hda2 montare il disco hda2 nella directory /mnt/hda2
umount /dev/hda2 smontare il disco hda2 (prima uscire da /mnt/hda2)
fuser -km /mnt/hda2 forzare umount quando il device è occupato
mount /dev/fd0 /mnt/floppy montare un floppy-disk
mount /dev/cdrom /media/cdrom montare un cdrom/dvdrom
mount -o loop file.iso /media/cdrom montare un file ISO9660 o Immagine iso
mount -t vfat /dev/hda5 /mnt/hda5 montare un filesystem windows FAT32
mount /dev/sda1 /mnt/usbdisk montare una pendrive usb o flash
df -h visualizzare l’elenco delle partizioni montate
du -sh dir1 conoscere lo spazio su disco occupato dalla directory dir1
du -sk * | sort -rn visualizzare la dimensione dei file ordinanti per dimensione
badblocks  -v  /dev/hda1 verifica bad blocks sul disco hda1
fsck /dev/hda1 ripara e verifica l’integrità del filesystem linux sul disco hda1
fsck.ext2 /dev/hda1 ripara e verifica l’integrità del filesystem ext2 sul disco hda1
e2fsck /dev/hda1 ripara e verifica l’integrità del filesystem ext2 sul disco hda1
mkfs /dev/hda1 creare un filesystem di tipo linux sulla partizione hda1
mke2fs /dev/hda1 creare il filesystem di tipo linux ext2 sulla partizione hda1
mke2fs -j /dev/hda1 creare il filesystem di tipo linux ext3 sulla partizione hda1
mkfs -t vfat 32 -F /dev/hda1 creare un filesystem di tipo FAT32
fdformat  -n /dev/fd0 formattare un floppy disk
mkswap /dev/hda3 creare un filesystem di tipo swap
swapon /dev/hda3 attivare una nuova partizione di swap
swapon /dev/hda2 /dev/hdb3 attivare due partizioni di swap
mkisofs /dev/cdrom > cd.iso creare l’immagine iso di un cdrom sull’hard-disk
mkisofs /dev/cdrom | gzip > cd_iso.gz creare l’immagine iso compressa di un cdrom
mkisofs -J -allow-leading-dots -R -V LabelCD -iso-level 4 -o ./cd.iso data_cd creare l’immagine iso di una directory da masterizzare
cdrecord -v dev=/dev/cdrom cd.iso masterizzare un immagine iso
gzip -dc cd\_iso.gz | cdrecord dev=/dev/cdrom masterizzare un immagine iso compressa
mount -o loop cd.iso /mnt/iso montare un’immagine iso
cd-paranoia -B rippare le traccie audio da un cd in file wav
cd-paranoia -- '-3' rippare le prime tre traccie audio da un cd
cdrecord --scanbus scansionare il bus per identificare il canale scsi

Gestione utenti e gruppi:

groupadd nomegruppo creare un nuovo gruppo
groupdel nomegruppo eliminare un gruppo
groupmod -n nuovogruppo vecchiogruppo rinominare un gruppo
useradd -c "Nome Cognome" -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 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
passwd modificare la password
passwd user1 modificare la password di un utente(solo da root)
chage -E 2005-12-31 user1 impostare la scadenza password per un utente
chsh --list-shells mostra gli utenti loggati da remoto
who -a mostra gli utenti loggati in maniera dettagliata

Gestione permessi sui files:

ls -lh visualizzare i permessi
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)
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
chgrp group1 file1 modificare il gruppo di appartenenza di un file
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
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
chattr +a file1 consente su un file l’apertura in scrittura solo in modalità append
chattr +c file1 consente che un file venga compresso dal kernel automaticamente
chattr +d file1 fa in modo che il programma Dump ignori il file durante un backup
chattr +i file1 rende un file immutabile, ovvero non potr\`{a} essere eliminato, alterato, rinominato o linkato
chattr +s file1 consente ad un file di essere cancellato in maniera sicura, azzerandone i blocchi sul disco
chattr +S  file1 fa in modo che se un file viene modificato i cambiamenti vengano scritti in maniera sincrona sul disco come con sync
chattr +u file1 permette di recuperare il contenuto di un file anche se questo viene cancellato
lsattr visualizzare gli attributi speciali

Gestione archivi e file compressi:

bunzip2 file1.bz2 decomprimere il file denominato file1.bz2
bzip2 file1 comprimere il file denominato file1
gunzip file1.gz decomprimere il file denominato file1.gz
gzip file1 comprimere il file denominato file1
gzip -9 file1 comprimere con la massima compressione
rar a file1.rar testfile creare un archivio rar chiamato file1.rar
rar a file1.rar file1 file2 dir1 comprimere in rar simultaneamente file1, file2 e dir1
rar x file1.rar comprimere un archivio rar
unrar x file1.rar decomprimere un archivio rar
tar -cvf archive.tar file1 creare un archivio tar non compresso
tar -cvf archive.tar file1 file2 dir1 creare un archivio contenente file1, file2 e dir1
tar -tf archive.tar visualizzare il contenuto di un archivio
tar -xvf archive.tar estrarre un archivio tar
tar -xvf archive.tar -C /tmp estrarre un archivio tar dentro /tmp
tar -cvfj archive.tar.bz2 dir1 creare un archivio tar compresso in bzip2
tar -xvfj archive.tar.bz2 decomprimere un archivio tar compresso in bzip2
tar -cvfz archive.tar.gz dir1 creare un archivio tar compresso in gzip
tar -xvfz archive.tar.gz decomprimere un archivio tar compresso in gzip
zip file1.zip file1 creare un archivio compresso in zip
zip -r file1.zip file1 file2 dir1 zippare più file e directory contemporaneamente
unzip file1.zip decomprimere un archivio zip

Gestione pacchetti Debian:

dpkg -i pacchetto.deb installare/aggiornare un pacchetto deb
dpkg -r nomepacchetto rimuovere un pacchetto deb dal sistema
dpkg -l visualizzare tutti i pacchetti deb installati sul sistema
dpkg -l | grep httpd visualizzare tutti i pacchetti col nome httpd
dpkg -s nomepacchetto ottenere informazioni su un determinato pacchetto installato
dpkg -L nomepacchetto la lista dei file forniti da un pacchetto installato
dpkg --contents pacchetto.deb la lista dei file forniti da un pacchetto non installato
apt-get install nomepacchetto installare/aggiornare un pacchetto deb
apt-cdrom install nomepacchetto installare/aggiornare un pacchetto deb da cdrom
apt-get update aggiorna la lista dei pacchetti(non installati)
apt-get upgrade aggiorna tutti pacchetti deb installati
apt-get remove nomepacchetto rimuovere un pacchetto deb dal sistema
apt-get check verifica la corretta risoluzione delle dipendenze
apt-get clean ripulire la cache dai pacchetti scaricati
apt-cache search nomepacchetto ritorna la lista dei pacchetti con la stringa

Gestione backup:

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  rsync -rogpav -e ssh --delete sincronizzazione tra directory rsync via ssh tunnel

Principali comandi di rete:

ifconfig eth0 visualizza configurazione di una scheda di rete ethernet
ifup eth0 attiva interfaccia eth0
ifdown eth0 disattiva interfaccia eth0
ifconfig eth0 192.168.1.1

netmask 255.255.255.0

configura ip address
ifconfig eth0 promisc configura eth0 in modalità promiscua
dhclient eth0 active interface eth0 in dhcp mode
route -n visualizza tabella di routing
route add -net 0/0 gw IPGateway configura default gateway
route add -net 192.168.0.0

netmask 255.255.0.0 gw 192.168.1.1

configura route statica
route del 0/0 gw IPgateway rimuovi route statica
ip link show mostra status link di tutte le interfaccie
mii-tool eth0 mostra status link dell’interfaccia ‘eth0’
ethtool eth0 mostra statistiche scheda di rete ‘eth0’
netstat -tup tutte le connessioni di rete attive e rispettivi PID
netstat -tupl tutti servizi di rete sul sistema e rispettivi PID
tcpdump tcp port 80 visualizza tutto il traffico http
iwlist scan visualizza le reti wireless
iwconfig eth1 visualizza configurazione di una scheda rete wireless
hostname mostra l’hostname del sistema
host www.example.com risoluzione hostname in ip address e viceversa
nslookup www.example.com risoluzione hostname in ip address e viceversa
whois www.example.com lookup sul database Whois
nbtscan ipaddr risoluzione nome netbios
nmblookup -A ipaddr risoluzione nome netbios
smbclient -L ipaddr/hostname visualizza le condivisioni remote di un host windows
smbget -Rr smb://ipaddr/share come wget permette di scaricare file da un host windows via smb
mount -t smbfs -o username=user,password=pass 

//WinClient/share /mnt/share

montare una condivisione di rete windows
MENU