Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Quiz per shell

Per chi muove i primi passi nel mondo del pinguino

Quiz per shell

Messaggioda alphacentauri » mar mag 12, 2009 1:05 am

Ciao a tutti!
Recentemente mi sono imbattuto in questo articolo http://www.ziobudda.net/node/72596 che ho trovato parecchio interessante poiché spazia da comandi basilari ad alcuni più complessi. Però mi sono detto: come fare a mandarli a mente senza dover inventare ogni volta esempi con un file test, un altro prova e sfinire così l'immaginazione già latitante? Al che mi sono risposto: hai cominciato a spulciare manuali di bash scripting, cerca di sfruttarli per creare un giochetto, un quiz che a mo' di "chi vuol essere linuxiano" [rolleyes] ti alleni un po'. Qui sotto ho messo i due file (script e documento di testo ad esso collegato che riprende i contenuti del link sopra) che servono allo scopo, nel caso a qualcuno nelle mie condizioni venisse la voglia di usarlo... Se poi qualcuno di esperto volesse fare critiche ed osservazioni sono bene accette visto che sono alle primissime armi con lo scripting e sono certo ci saranno degli orrori.. però sembra funzionare nella sua semplicità...

Codice: Seleziona tutto
#!/bin/sh
#
# Learning shell
#
# Quiz per l'apprendimento di alcuni comandi
# importanti da shell.
# La lista di comandi presenti nel file "comandi_linux"
# è tratta da http://www.ziobudda.net/node/72596
# e succesivamente modificata per questo script.
# Il file comandi_linux è costruito mettendo prima il
# comando e nella riga successiva la descrizione, in modo
# da avere sempre comando su riga dispari e descrizione
# su riga pari.
#
# Sarei felice di ricevere suggerimenti e correzioni
# all'indirizzo lorenzo.lorenzon@gmail.com Buon divertimento! ;-)

MAX=630 #Questo è il numero totale di righe nel file comandi_linux
   #se si desidera modificarlo è necessario aggiornare anche questo valore,
   #ricordando di mettere sempre riga comando e sotto descrizione.

path=/home/nome_utente/comandi_linux

clear
echo
echo "##############################################################"
echo "#                    LEARNING SHELL                          #"
echo "##############################################################"
echo "# Questo script ti fornirà una serie di indicazioni a cui    #"
echo "# dovrai rispondere scrivendo il comando adeguato a svolgere #"
echo "# l'operazione richiesta. Premendo INVIO verrà visualizzata  #"
echo "# la soluzione suggerita che potrai quindi confrontare con   #"
echo "# con quella che hai appena dato tu.                         #"
echo "# Quando desideri terminare digita \"stop\" e INVIO            #"
echo "##############################################################"
echo

for ((a=1; a <= MAX/2; a++)) #Ciclo di for per un massimo di n volte quanti
              #sono i comandi presenti in comandi_linux
do
   numero=$RANDOM      #Generazione numeri casuali
   let "numero %= MAX"   #all'interno del range definito.
   QUOZ=$[numero/2]   
   RESTO=$[numero-QUOZ*2]
    if [ $RESTO -eq 1 ]; then   #Se il numero generato è dispari si passa al numero
      let "numero += 1"   #pari successivo in cui è presente la descrizione.
      sed -n -e "$numero p" $path
      read stringa            #come interrompere lo script
         if [ "$stringa" = stop ]; then
            exit 0
         fi
      echo "La risposta suggerita è:"   
      let "numero -= 1"      #La risposta sarà quindi nella riga precedente.
      sed -n -e "$numero p" $path
      echo   
   else
      sed -n -e "$numero p" $path                  #Qui invece il caso di
      read stringa                  #un numero pari.
         if [ "$stringa" = stop ]; then
            exit 0
         fi
      echo "La risposta suggerita è:"
      let "numero -= 1"
      sed -n -e "$numero p" $path
      echo
   fi
done

exit 0


Codice: Seleziona tutto
arch
Mostrare l’architettura della macchina
uname -r
Mostrare la versione del kernel in uso
dmidecode -q
Mostrare componenti hardware di sistema
hdaparm -i /dev/hda
Mostrare 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 2009
Visualizzare il calendario dell’anno 2009
date 041217002009.00
Impostare data e ora - MeseGiornoOreMinutiAnno.Secondi
clock -w
Salvare definitavamente le modifiche dell'orario sul BIOS
shutdown -h now
Arrestare il sistema
shutdown -r ore:minuti &
Arrestare in modo programmato il sistema
shutdown -c
Cancellare un arresto programmato del sistema
shutdown -r now oppure reboot
Riavviare il sistema
logout
Abbondonare la sessione
cd /home oppure cd
Entrare nella directory ‘/home’
cd ..
Risalire di un livello nell'albero delle directory
cd ../..
Risalire di due livelli nell'albero delle directory
cd -
Andare alla directory precedente
pwd
Visualizzare il path della directory di lavoro
ls
Visualizzare i file della directory corrente
ls -F
Distingure file e directory nella visualizzazione del contenuto della directory corrente
ls -l
Visualizzare i dettagli di file e directory
ls -a
Visualizzare file nascosti
ls *[0-9]*
Visualizzare file e cartelle che contengono numeri
lstree
Visualizza 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′
rm -rf dir1
Eliminare la directory ‘dir1′
rm -rf dir1 dir2
Eliminare due directory contemporaneamente
mv dir1 new_dir
Rinominare/muovere una directory o file
cp file1 file2
Copiare un file
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
touch -t 0712250000 fileditest
Modificare il timestamp di un file o directory - (YYMMDDhhmm)
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 / -name *.rpm -xdev
Cercare tutti i file con estensione rpm ignorando partizioni rimovibili come cdrom, pen-drive, ecc…
locate *.ps
Cercare tutti i file con estensione .ps
whereis programma
Visualizzare la locazione di un file binario,sorgente o man
which programma
Visualizzare il path completo di un file binario/eseguibile
mount /dev/hda2 /mnt/hda2
Montare il disco hda2 nella directory ‘/mnt/hda2′
umount /dev/hda2
Smontare il disco hda2 da ‘/mnt/hda2′
fuser -km /mnt/hda2
Forzare umount quando il device è occupato
umount -n /mnt/hda2
Eseguire umount senza scrivere sul file /etc/mtab - utile quando il filesystem è in read-only o il disco è saturo
mount /dev/fd0 /mnt/floppy
Montare un floppy-disk
mount /dev/cdrom /mnt/cdrom
Montare un cdrom/dvdrom
mount /dev/hdc /mnt/cdrecorder
Montare un cdrw/dvdrom
mount /dev/hdb /mnt/cdrecorder
Montare un cdrw/dvdrom
mount -o loop file.iso /mnt/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
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share
Montare una condivisione di rete windows
df -h
Visualizzare l’elenco delle partizioni montate
ls -lSr |more
Visualizzare la dimensione dei file e delle directory ordinandoli per dimensione
du -sh dir1
Conoscere lo spazio su disco occupato dalla directory ‘dir1′
du -sh * | sort -rn
Visualizzare la dimensione dei file e delle directory ordinanti per dimensione
rpm -q -a –qf ‘%10{SIZE}\t%{NAME}\n’ | sort -k1,1n
Visualizzare la dimensione dei pacchetti rpm installati ordinanti per dimensione
dpkg-query -W -f=’${Installed-Size;10}\t${Package}\n’ | sort -k1,1n
Visualizzare la dimensione dei pacchetti deb installati ordinanti per dimensione
groupadd nome_gruppo
Creare un nuovo gruppo
groupdel nome_gruppo
Eliminare un gruppo
groupmod -n nuovo_nome_gruppo vecchio_nome_gruppo
Rinominare un gruppo
useradd -c “Nome Cognome” -g admin -d /home/user1 -s /bin/bash user1
Creare un nuovo utente appartente al gruppo “admin” specificando un commento, home e shell
useradd user1
Creare un nuovo utente
userdel -r user1
Eliminare un utente e la sua home directory
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1
Modificare gli attributi utente specificando un commento, gruppo, home e shell
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
pwck
Verificare la correttezza sintattica e formale del file ‘/etc/passwd’ e l’effettiva esistenza degli utenti
grpck
Verificare la correttezza sintattica e formale del file ‘/etc/group’ e l’effettiva esistenza dei gruppi
alias hh=’history’
Impostare un alias ad un comando - hh = history
ls /tmp | pr -T5 -W$COLUMNS
Dividere il terminale in 5 colonne mentre si mostra il contenuto di /tmp
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) per directory 1
chmod go-rwx directory1
Rimuovere i permessi di lettura(r), scrittura(w) ed accesso(x) per gli utenti gruppo(g) e altri(o) per directory1
chown user1 file1
Modificare il proprietario di un file
chown user1 -R directory1
Modificare l’utente proprietario di una directory e tutti i file e directory contenuti al suo interno
chgrp gruppo1 file1
Modificare il gruppo di appartenenza di un file
chown user1:gruppo1 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/file_eseguibile
Impostare il bit SUID su un file binario - l’utente che esegue quel file ottienegli stessi privilegi del proprietario
chmod u-s /bin/file_binario
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/comune
Impostare il bit STIKY su una directory - consente la cancellazione dei file solo ai legittimi proprietari
chmod o-t /home/comune
Disattivare il bit STIKY su una directory
chattr +a file1
Consentire su un file l’apertura in scrittura solo in modalità append
chattr +c file1
Consente che un file venga compresso/decompresso dal kernel automaticamente
chattr +d file1
Fare in modo che il programma Dump ignori il file durante un backup
chattr +i file1
Rendere un file immutabile, ovvero non potrà essere eliminato, alterato, rinominato o linkato
chattr +s file1
Consentire ad un file di essere cancellato in maniera sicura, azzerandone i blocchi sul disco
chattr +S file1
Fare in modo che se un file viene modificato i cambiamenti vengono scritti in maniera sincrona sul disco come con sync
chattr +u file1
Permettere di recuperare il contenuto di un file anche se questo viene cancellato
lsattr
Visualizzare gli attributi speciali
bunzip2 file1.bz2
Decomprimere il file denominato ‘file1.bz2′
bzip2 file1
Comprimere il file denominato ‘file1′in bzip2
gunzip file1.gz
Decomprimere il file denominato ‘file1.gz’
gzip file1
Comprimere il file denominato ‘file1′ in gzip
gzip -9 file1
Comprimere con la massima compressione in gzip
rar a file1.rar test_file
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
Decomprimere un archivio rar
tar -cvf archivio.tar file1 file2 dir1
Creare un archivio tar contenente ‘file1′, ‘file2′ e ‘dir1′
tar -tf archivio.tar
Visualizzare il contenuto di un archivio
tar -xvf archivio.tar
Estrarre un archivio tar
tar -xvf archivio.tar -C /tmp
Estrarre un archivio tar dentro /tmp
tar -cvfj archivio.tar.bz2 dir1
Creare un archivio tar compresso in bzip2
tar -xvfj archivio.tar.bz2
Decomprimere un archivio tar compresso in bzip2
tar -cvfz archivio.tar.gz dir1
Creare un archivio tar compresso in gzip
tar -xvfz archivio.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
rpm -ivh pacchetto.rpm
Installare un pacchetto rpm
rpm -ivh –nodeeps pacchetto.rpm
Installare un pacchetto rpm ignorando le dipendenze richieste
rpm -U pacchetto.rpm
Aggiornare un pacchetto rpm senza modificarne i file di configurazione
rpm -F pacchetto.rpm
Aggiornare un pacchetto rpm solo se quest’ultimo risulta già installato
rpm -e nome_pacchetto.rpm
Rimuovere un pacchetto rpm
rpm -qa
Visualizzare tutti i pacchetti rpm installati sul sistema
rpm -qa | grep httpd
Visualizzare tutti i pacchetti rpm col nome “httpd”
rpm -qi nome_pacchetto
Ottenere informazioni su un determinato pacchetto installato
rpm -qg “System Environment/Daemons”
Visualizzare i pacchetti rpm di un gruppo software
rpm -ql nome_pacchetto
Visualizzare la lista dei file forniti da un pacchetto rpm installato
rpm -qc nome_pacchetto
Visualizzare la lista dei file di configurazione forniti da un pacchetto rpm installato
rpm -q nome_pacchetto –whatrequires
Visualizzare la lista delle dipendenze richieste da un pacchetto rpm
rpm -q nome_pacchetto –whatprovides
Visualizzare le capability fornite da un pacchetto rpm
rpm -q nome_pacchetto –scripts
Visualizzare gli script avviati in fase di installazione/rimozione di un pacchetto rpm
rpm -q nome_pacchetto –changelog
Visualizzare lo storico delle revisioni di un pacchetto rpm
rpm -qf /etc/httpd/conf/httpd.conf
Verificare a quale pacchetto rpm appartiene un dato file
rpm -qp pacchetto.rpm -l
Visualizzare la lista dei file forniti da un pacchetto rpm non ancora installato
rpm –import /media/cdrom/RPM-GPG-KEY
Importare la public-key della digital signature di pacchetti rpm
rpm –checksig pacchetto.rpm
Verificare l’integrità di un pacchetto rpm
rpm -qa gpg-pubkey
Verificare l’integrità di tutti pacchetti rpm installati
rpm -V nome_pacchetto
Verificare file size, permessi, tipo, owner, group, MD5 checksum e ultima modifica pacchetti rpm
rpm -Va
Verificare tutti i pacchetti rpm installati sul sistema - usare con cautela
rpm -Vp pacchetto.rpm
Verificare un pacchetto rpm non ancora installato
rpm2cpio pacchetto.rpm | cpio –extract –make-directories *bin*
Estrarre gli eseguibili da un pacchetto rpm
rpm -ivh /usr/src/redhat/RPMS/`arch`/pacchetto.rpm
Installare un pacchetto costruito da un rpm sorgente
rpmbuild –rebuild nome_pacchetto.src.rpm
Costruire un pacchetto da un rpm sorgente
yum install nome_pacchetto
Scaricare ed installa un pacchetto rpm
yum update
Aggiornare tutti i pacchetti rpm installati sul sistema con yum
yum update nome_pacchetto
Aggiornare un pacchetto rpm con yum
yum remove nome pacchetto
Rimuovere un pacchetto rpm dal sistema con yum
yum list
Elencare tutti i pacchetti rpm installati sul sistema con yum
yum search nome_pacchetto
Cercare un pacchetto rpm sul repository con yum
yum clean packages
Ripulire la cache dai pacchetti rpm scaricati con yum
yum clean headers
Rimuovere tutti i file headers che il sistema usa per la risoluzione delle dipendenze con yum
yum clean all
Rimuovere dalla cache i pacchetti e gli headers con yum
dpkg -i pacchetto.deb
Installare/aggiornare un pacchetto deb con dpkg
dpkg -r nome_pacchetto
Rimuovere un pacchetto deb dal sistema con dpkg
dpkg -l
Visualizzare tutti i pacchetti deb installati sul sistema con dpkg
dpkg -l | grep httpd
Visualizzare tutti i pacchetti deb col nome “httpd” con dpkg
dpkg -s nome_pacchetto
Ottenere informazioni su un determinato pacchetto installato con dpkg
dpkg -L nome_pacchetto
Visualizzare la lista dei file forniti da un pacchetto installato con dpkg
dpkg –contents pacchetto.deb
Visualizzare la lista dei file forniti da un pacchetto non installato con dpkg
dpkg -S /bin/ping
Verificare a quale pacchetto appartiene un dato file con dpkg
apt-get install nome_pacchetto
Installare/aggiornare un pacchetto deb con apt
apt-cdrom install nome_pacchetto
Installare/aggiornare un pacchetto deb da cdrom con apt
apt-get update
Aggiornare tutti i pacchetti deb installati sul sistema con apt
apt-get remove nome_pacchetto
Rimuovere un pacchetto deb dal sistema con apt
apt-get check
Verificare la corretta risoluzione delle dipendenze con apt
apt-get clean
Ripulire la cache dai pacchetti scaricati conn apt
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 senza poter scorrere avanti e indietro
less file1
Visualizzare il contenuto di un file potendo scorrere 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 /var/log/messages
cat file_originale | [operazione: sed, grep, awk, grep, etc] > result.txt
Sintassi per elaborare il testo di un file e scrivere il risultato su un nuovo file
cat file_originale | [operazione: sed, grep, awk, grep, etc] >> result.txt
Sintassi per elaborare il testo di un file ed appendere il risultato su un file esistente
grep Aug /var/log/messages
Cercare la parola “Aug” all’interno del file /var/log/messages
grep ^Aug /var/log/messages
Cercare le parole che cominciano con “Aug” all’interno del file /var/log/messages
grep [0-9] /var/log/messages
Selezionare all’interno del file /var/log/messages tutte le righe che contengono numeri
grep Aug -R /var/log/*
Estendere la ricerca della stringa “Aug” dentro la directory ‘/var/log’ e sottodirectory
grep Aug /var/log/messages
Scrivere il risultato di una ricerca all’interno del file /var/log/messages
sed ’s/stringa1/stringa2/g’ example.txt
Rimpiazzare la “stringa1″ con la “stringa2″ da example.txt
sed ‘/^$/d’ example.txt
Rimuovere tutte le righe vuote da example.txt
sed ‘/ *#/d; /^ *$/d’ example.txt
Rimuovere i commenti e le righe vuote da example.txt
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’
Convertire da lower case in upper case
sed -e ‘1d’ result.txt
Eliminare la prima riga dal file example.txt
sed -n ‘/stringa1/p’
Visualizza solo righe che contengono la parola “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 lasciando inalterato il resto
sed -n ‘1,5p;5q’ example.txt
Stampare a schermo dalla riga 1 alla 5
sed -n ‘5p;5q’ example.txt
Stampare a schermo la riga numero 5
sed -e ’s/00*/0/g’ example.txt
Sostituire più zeri con un solo zero da example.txt
cat -n file1
Numerare le righe di un file
cat example.txt | awk ‘NR%2==1′
Rimuovi tutte le righe pari da example.txt
echo a b c | awk ‘{print $1}’
Stampare a schermo la prima colonna di una riga
echo a b c | awk ‘{print $1,$3}’
Stampare a schermo 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 ‘+’ tra apici
sort file1 file2
Ordinare i contenuti di due file
sort file1 file2 | uniq
Ordinare i contenuti di due file omettendo le linee ripetute
sort file1 file2 | uniq -u
Ordinare i contenuti di due file stampando solo le line univoche
sort file1 file2 | uniq -d
Ordinare i contenuti di due file stampando solo le line duplicate
comm -1 file1 file2
Comparare i contenuti di due file sopprimendo soltanto le righe univoche del ‘file1′
comm -2 file1 file2
Comparare i contenuti di due file sopprimendo soltanto le righe univoche del ‘file2′
comm -3 file1 file2
Comparare i contenuti di due file sopprimendo soltanto le righe che appaiono su entrambi i 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.html
Convertire un file di testo in formato html
recode -l | more
Visualizzare tutti i formati di conversione disponibili
badblocks -v /dev/hda1
Verificare bad blocks sul disco hda1
fsck /dev/hda1
Riparare / verificare l’integrità del filesystem linux sul disco hda1
fsck.ext2 /dev/hda1
Riparare / verificare l’integrità del filesystem ext2 sul disco hda1
e2fsck /dev/hda1
Riparare / verificare l’integrità del filesystem ext2 sul disco hda1
e2fsck -j /dev/hda1
Riparare / verificare l’integrità del filesystem ext3 sul disco hda1
fsck.ext3 /dev/hda1
Riparare / verificare l’integrità del filesystem ext3 sul disco hda1
fsck.vfat /dev/hda1
Riparare / verificare l’integrità del filesystem fat sul disco hda1
fsck.msdos /dev/hda1
Riparare / verificare l’integrità del filesystem dos sul disco hda1
dosfsck /dev/hda1
Riparare / verificare l’integrità del filesystem dos 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(Journal) 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 una filesystem di tipo swap
swapon /dev/hda3
Attivare una nuova partizione di swap
swapon /dev/hda2 /dev/hdb3
Attivare due partizioni di swap
dump -0aj -f /tmp/home0.bak /home
Backup full della directory ‘/home’ con dump
dump -1aj -f /tmp/home0.bak /home
Backup incrementale della directory ‘/home’ con dump
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
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’
Backup di un hardisk locale su un host remoto via ssh con dd
tar -Puf backup.tar /home/user
Backup incrementale della directory ‘/home/user’ con tar
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’
Copiare il contenuto di una directory su una directory remota via ssh
( tar c /home ) | ssh -C user@ip_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 con tar
find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents
Trovare e copia tutti i file con estensione ‘.txt’ da una directory all’altra
find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2
Trovare tutti i file con estensione ‘.log’ e crea un archivio in formato bzip
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
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
Cancellare un cdrom riscrivibile
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 sull’hard-disk
mkisofs -J -allow-leading-dots -R -V “Label CD” -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 in file wav
cdrecord –scanbus
Scansionare il bus per identificare il canale scsi
ifconfig eth0
Visualizzare configurazione di una scheda di rete ethernet
ifup eth0
Attivare interfaccia ‘eth0′
ifdown eth0
Disattivare interfaccia ‘eth0′
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
Configurare ip address
ifconfig eth0 promisc
Configurare ‘eth0′ in modalità promiscua per raccogliere i pacchetti(sniffing)
dhclient eth0
Attivare l’interfaccia ‘eth0′ in dhcp
route -n
Visualizzare tabella di routing
route add -net 0/0 gw IP_Gateway
Configurare default gateway
hostname
Mostrare l’hostname del sistema
host www.linuxguide.it
Risoluzione hostname in ip address
ip link show
Mostrare status link di tutte le interfaccie
mii-tool eth0
Mostrare status link dell’interfaccia ‘eth0′
ethtool eth0
Mostrare statistiche scheda di rete ‘eth0′
netstat -tup
Mostrare tutte le connessioni di rete attive e rispettivi PID
netstat -tupl
Mostrare tutti i servizi di rete in ascolto sul sistema e rispettivi PID
tcpdump tcp port 80
Visualizzare tutto il traffico http
iwlist scan
Visualizzare le reti wireless
iwconfig eth1
Visualizzare configurazione di una scheda rete wireless
iptables -t filter -L
Mostrare tutte le chains della tabella di filtering di iptables
iptables -t nat -L
Mostrare tutte le chains della tabella di nat
iptables -t filter -F
Azzerare tutte le regole dalla tabella di filtraggio di iptables
iptables -t nat -F
Azzerare tutte le regole dalla tabella nat
iptables -t filter -X
Cancellare eventuali chains create dall’utente in iptables
iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT
Permettre connessioni telnet in ingresso
iptables -t filter -A OUTPUT -p tcp –dport http -j DROP
Bloccare connessioni http in uscita
iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT
Permettere connessioni pop3 sulla chain di forward
iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”
Logging sulla chain di input
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Configurare 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:2
Redirect dei pacchetti indirizzati a un host verso un altro
top
Visualizzare i processi di sistema che utilizzano più cpu
ps -eafw
Visualizzare i processi di sistema
ps -e -o pid,args –forest
Visualizza i processi sistema in maniera gerarchica
pstree
Mostrare un albero dei processi sistema
kill -9 ID_Processo
Forzare la chiusura del processo e terminarlo
kill -1 ID_Processo
Forzare il processo a ricaricare la configurazione
lsof -p $$
Visualizzare la lista dei file aperti dai processi
lsof /home/user1
Visualizzare la lista dei file aperti in una determinato path di sistema
strace -c ls >/dev/null
Mostrare le chiamate di sistema fatte e ricevute da un processo
strace -f -e open ls >/dev/null
Visualizzare le chiamate alle librerie
watch -n1 ‘cat /proc/interrupts’
Mostrare gli interrupts in tempo reale
last reboot
Mostrare lo storico dei reboot
lsmod
Visualizzare i mooduli del kernel caricati
free -m
Visualizzare 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
mkbootdisk –device /dev/fd0 `uname -r`
Creare un dischetto di boot
gpg -c file1
Cryptare un file con GNU Privacy Guard
gpg file1.gpg
Decryptare un file con GNU Privacy Guard
wget -r www.example.com
Scaricare un sito intero


Per farlo funzionare basta salvare il primo come learn_shell.sh e il secondo come comandi_linux, mettere il proprio username nella variabile path dello script(o il percorso desiderato), rendere lo script avviabile con chmod 755 learn_shell.sh, e alla fine dare ./learn_shell.sh. Nei commenti dello script c'è anche scritto come aggiornare e modificare il file comandi_linux all'occorenza.

Spero di aver fatto cosa gradita. Bye
Avatar utente
alphacentauri
Neo Iscritto
Neo Iscritto
 
Messaggi: 22
Iscritto il: sab feb 09, 2008 7:03 pm

Torna a NewBie

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising