Linux HowTo

  Creare una versione Live di Linux su chiavetta USB
  Con il software OpenSource UNetbootin (http://unetbootin.sourceforge.net/) è possibile creare una chiavetta USB da cui fare il boot del sistema con una delle diverse distribuzioni di Linux, senza la necessità di creare un CD. Basta scaricare l'immagine ISO della distribuzione e installare poi Linux sulla chiavetta USB attraverso il programma UNetbootin.
  Operatori di confronto con numeri decimali in Bash shell
 

Gli operatori di confronto -eq -lt -gt -ge, ... si possono utilizzare solo con i numeri interi; per i numeri decimali si può utilizzare il programma bc -l passando ad esso l'espressione di confronto che produce il valore 0 (falso) o il valore 1 (vero):

$ a=12.6
$ b=4.5
$ echo "$a<$b" | bc -l
0
$ echo "$a>$b" | bc -l
1
$ echo "$a==$b" | bc -l
0
$ b=12.6
$ echo "$a==$b" | bc -l
1

  Calcoli con numeri decimali in Bash shell
 

$ a=144
$ echo $a
144
$ echo "sqrt($a)"
sqrt(144)
$ echo "sqrt($a)"|bc -l
12.00000000000000000000
$ risultato=`echo "sqrt($a)"|bc -l`
$ echo $risultato
12.00000000000000000000
$ a=3
$ b=4
$ c=-2
$ echo "$b*$b-4*$a*$c"
4*4-4*3*-2
$ echo "$b*$b-4*$a*$c"|bc -l
40
$ delta=`echo "$b*$b-4*$a*$c"|bc -l`
$ echo $delta
40
$ a=12.4
$ b=6.7
$ c=-4.5
$ delta=`echo "$b*$b-4*$a*$c"|bc -l`
$ echo $delta
268.09


Per determinare il numero di cifre decimale si usa scale:

$ a=144
$ echo "scale=2;sqrt($a)" | bc -l
12.00
$ somma=254
$ conta=18
$ media=`echo "scale=2;$somma/$conta"|bc -l`
$ echo $media
14.11


Si può anche creare uno script a cui passare come parametro l'espressione da calcolare:
$ vi calc

#!/bin/bash
# calcolatrice
echo "scale=2;$1" | bc -l; exit

$ chmod +x calc
$ ./calc 3*89.8
269.4
$ ./calc 1.2*1.2
1.44

  Radici di un'equazione di secondo grado
  #!/bin/bash
# equazione secondo grado
a=$1
b=$2
c=$3
delta=`echo "scale=2;$b*$b-4*$a*$c" | bc -l`
echo "delta = $delta"
diff=`echo "$delta>=0" | bc -l`
if [ $diff -eq 1 ]
then
rdelta=`echo "scale=2;sqrt($delta)" | bc -l`
x1=`echo "scale=2;(-1*$b+$rdelta)/(2*$a)" | bc -l`
echo "prima radice = $x1"
x2=`echo "scale=2;(-1*$b-$rdelta)/(2*$a)" | bc -l`
echo "seconda radice = $x2"
diff=`echo "$x1==$x2" | bc -l`
if [ $diff -eq 1 ]
then
echo 'soluzioni coincidenti'
fi
else
echo 'nessuna soluzione'
fi
  Eliminare partizione Linux su computer in dual boot
  Per eliminare una partizione Linux su un computer che ha il dual boot; eliminare GRUB e ripristinare il boot loader di Windows:
1) inserire il CD di installazione di Windows XP e fare il boot da CD
2) parte lo schermo blu e il caricamento dei driver
3) al termine chiede cosa si vuole fare:
premere il tasto R (ripristino o recupero)
4) scrivere il numero di sistema da ripristinare (normalmente 1)
5) chiede la password di amministrazione della macchina
6) viene attivata la linea comandi;
dare i comandi
fixboot (confermare con y)
fixmbr (confermare con y)
exit
7) il sistema viene riavviato con il boot di Windows XP

Per recuperare al partizione:
1) Pannello di controllo, Strumenti di amministrazione, Gestione computer, Gestione disco
2) tasto destro sulla partizione (sconosciuta):
Elimina partizione
3) tasto destro sullo spazio liberato: Nuova partizione
4) scegliere la lettera associata alla partizione e lanciare la formattazione (NTFS).
  Copiare tutti i file comprese le sottodirectory
  $ cp -a /dir_sorgente/* /dir_destinazione
  Informazioni sull'hardware in Linux
 

Come fare a ottenere informazioni su CPU e RAM di un sistema Linux:
per la CPU:
$ cat /proc/cpuinfo
per la RAM:
$ cat /proc/meminfo
per la versione di Linux (kernel e distribuzione)
$ cat /proc/version

  Usare vi all'interno di uno shell script
 

Esempio: Sostituzione in tutte le righe di un testo, il cui nome viene fornito come argomento del comando, di tutte le occorrenze di Milano con Roma.
(simula il comportamento del comando sed:
sed 's/Milano/Roma/g' nomefile)

#!/bin/bash
# sostituzioni
vi $1 <<EOF >/dev/null
:1,\$ s/Milano/Roma/g
:x
EOF

  • $1 è il nome del file di testo
  • <<EOF significa che lo standard input viene ridiretto dal testo dello script stesso fino a che viene letta la riga contenente i caratteri EOF
  • >/dev/null indica che l'output viene ridiretto sul file fittizio di output
  • le righe che iniziano con il : sono comandi di vi; la prima effettua la sostituzione, la seconda fa uscire da vi
  Usare la memory stick USB (penna) con Linux
  # mkdir /mnt/penna
# modprobe usb-storage
# fdisk /dev/sda
p per vedere
q per uscire
# mount -t vfat /dev/sda1 /mnt/penna
# cd /mnt/penna
# ls
# cd
# umount /mnt/penna
   








Note operative
Distribuzione Knoppix
> Linux e Open Source
Note, esempi, risorse dal Web
Php e MySQL