SlideShare a Scribd company logo
www.riminilug.it
info@riminilug.it
Mini Corso su LINUX
Martedì, 19 aprile 2016
Networking & Terminal
Alessandro Carichini
alexsoft@riminilug.it
Dove ci eravamo lasciati?
Installazione & Post Linux Mint 17.3 (rosa)
www.riminilug.it
info@riminilug.it
Network: nomenclatura di base
● LAN (Local Area Network)
● Rete locale (tutti gli apparati si trovano nella
stesso edificio/area)
● WAN (Wide Area Network)
● Gruppi di LAN sparsi geograficamente che
dialogano attraverso modem/routers (Internet)
www.riminilug.it
info@riminilug.it
Network: gli strumenti (hardware)
● Router ADSL
● connessione alla “nuvola” Internet
● Switch
● Connettere più dispositivi al router
● Wi-Fi
● Connettere più dispositivi senza fili al router
● Repeater Wi-Fi
● Per estendere la portata del Wi-Fi
● Scheda di Rete (PC)
● Cavo RJ-45 (Ethernet)
● Wi-Fi
www.riminilug.it
info@riminilug.it
Struttura di una LAN casalinga
www.riminilug.it
info@riminilug.it
Network: strumenti x configurare
● Preferenze: Connessioni di rete
● Applet: System Tray
● Terminal: Shell dei comandi
ifconfig / iwconfig
File di configurazione /etc/network/interfaces
www.riminilug.it
info@riminilug.it
Network: Indirizzamento
● Dinamico:
● Server DHCP (Dynamic Host Configuration Protocol)
router ADSL/WiFi
● Manuale:
● Classe IP del router (default 192.168.1.0)
● Subnet mask: 255.255.255.0
● Gateway: il router (192.168.1.1)
● DNS: router o specifico (Google, OpenDNS..)
www.riminilug.it
info@riminilug.it
Network: Classe IP
Nazione.Città.Strada.Nr_Civico
www.riminilug.it
info@riminilug.it
Network: interfaces
Configurazione /etc/network/interfaces
www.riminilug.it
info@riminilug.it
Network: DNS / Hostname
/etc/resolv.conf
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4
/etc/hosts
127.0.0.1 localhost
192.168.1.1 myrouter
192.168.1.10 alexhome
192.168.1.20 raspberry
www.riminilug.it
info@riminilug.it
Network: strumenti x monitorare
● Terminale: Shell dei comandi
● Classico:
ping <indirizzo_ip>
● Avanzato:
nmap [options] <target_ip>
● Grafico: ZenMap
www.riminilug.it
info@riminilug.it
ZenMap
apt-get install zenmap
www.riminilug.it
info@riminilug.it
Network Services
 File Server
 Documenti, immagini, video, musica…
 Print Server
 Una stampante e più pc collegati
 Web Server
 Gestione mini sito
 FTP Server
 Per la gestione di qualche webcam
 Mail Server
Gestione della posta elettronica
www.riminilug.it
info@riminilug.it
Cosa vedremo oggi?
 File Server
 Samba (SMB)
 Print Server
 CUPS
 FTP Server
 VSFTP
www.riminilug.it
info@riminilug.it
Samba (SMB)
● Samba?
● Protocollo SMB (Server Message Block) di
Microsoft
● E’già installato?
● Dovrebbe ma nel dubbio un bel
sudo apt-get install samba
● Configurazione ibrida (grafico/shell)
● Condivisione dir (desktop)
● Creazione utenti (terminal)
www.riminilug.it
info@riminilug.it
Samba: Configurazione soft
Condivisione dir:
Creazione utente:
smbpasswd -a username
www.riminilug.it
info@riminilug.it
Samba: Configurazione hard
/etc/samba/smb.conf
[shared]
comment = Cartella condivisa # Commento sulla condivisione
path = /cartella/da/condividere # Percorso della condivisione
browseable = yes # Rende visibile la condivisione
public = yes # Rende la cartella accessibile
create mask = 0755 # Permessi dei file
sudo service smbd restart
http://wiki.ubuntu-it.org/Server/Samba
www.riminilug.it
info@riminilug.it
CUPS
● Common UNIX Printing System
● Gestione della coda di stampa
● Installato default
sudo apt-get install cups
● Configurazione Web
http://localhost:631
● Aggiungi stampanti e classi
● Aggiungi una stampante
● Locale (USB)
● Rete
www.riminilug.it
info@riminilug.it
CUPS: aggiungi stampante
www.riminilug.it
info@riminilug.it
CUPS: ultime considerazioni
● E’ come SAMBA e andare in bicicletta
Una volta imparato….
● Abilitare l’accesso web da remoto
/etc/cups/cupsd.conf
Listen localhost:631
Listen 192.168.1.41:631
Nei <Location /> e <Location /Admin> aggiungere
Allow 192.168.1.*
●
www.riminilug.it
info@riminilug.it
VSFTP
● FTP (File Transfert Protocol)
● Ha la mia età (1971)
● E’ ancora il sistema più usato per trasferire file
tra “mondi” diversi
● VSFTP (FTP Server)
sudo apt-get install vsftpd
Solito file /etc/vsftpd.conf
● Abilitare accesso anonymous
● Abilitare utenti locali
www.riminilug.it
info@riminilug.it
VSFTP: configurazione
/etc/vsftpd.conf
anonymous_enabled=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
local_enables=YES
write_enable=YES
sudo service vsftpd restart
http://wiki.ubuntu-it.org/Server/Ftp
www.riminilug.it
info@riminilug.it
Tutto chiaro?
www.riminilug.it
info@riminilug.it
Terminale Shell
● Accessori: Terminale
● Prompt dei comandi Linux
www.riminilug.it
info@riminilug.it
Differenze con cmd.exe?
www.riminilug.it
info@riminilug.it
Differenze con cmd.exe?
● I percorsi (PATH)
● Le barre (slash / e backslash )
● Le lettere dei drive rispetto ai punti di mount
● Il nome del comando ma non la logica di
funzionamento
● Redirezione <>
● Wild Card ?* (caratteri jolly)
● Pipeline | (condotto per passare i risultati a più
comandi)
www.riminilug.it
info@riminilug.it
Comandi Unix-Like essenziali (1)
● cp copia file
● cd cambia dir
● mkdir crea dir
● rm rimuove file/dir
● mv sposta/rinomina file/dir
● ls elenca file
● cat legge (concatena) file nello STD output
● find trova file
www.riminilug.it
info@riminilug.it
Comandi Unix-Like essenziali (2)
● grep cerca stringa nei file
● more blocca lo scorrimento a videata
● wc conta parole e caratteri
● echo mostra una riga di testo
● chmod cambia attributi utente dei file
● chgrp cambia attributi gruppo dei file
● file indica la tipologia del file
● tar comprime/decomprime file
www.riminilug.it
info@riminilug.it
Attenzione a certi comandi
www.riminilug.it
info@riminilug.it
http://www.corriere.it/tecnologia/provati-per-voi/16_aprile_15/sbaglia-comando-cancella-azienda-storia-italiano-marco-marsala-dd252b48-02ea-11e6-a3a1-
5b22ca0a1360.shtml
Ambiente Shell
 Struttura file/directory Unix-Like
 Variabili d’ambiente predefinite
$PATH .. $HOME .. $LOGNAME .. $SHELL
 Permessi (attributi) file/directory
www.riminilug.it
info@riminilug.it
Linguaggi di Scripting
● BASH (Linux, OSX, ...)
● Python (Linux, OSX, Windows)
● Perl (Linux, OSX, Windows)
● Ruby (Linux, OSX, Windows)
www.riminilug.it
info@riminilug.it
BASH su Windows 10
Inserita nell’aggiornamento estivo “Anniversary”
www.riminilug.it
info@riminilug.it
https://channel9.msdn.com/Events/Build/2016/P488?ocid=player
http://blog.dustinkirkland.com/2016/04/howto-ubuntu-on-windows.html
Editor di Testo (Plain Text)
 Default (Editor di Testo, GEdit)
 Grafici da installare
 Scite
 Geany
 Brackets
 Terminal
 nano
 vi (VIM)
www.riminilug.it
info@riminilug.it
BASH: le basi
● Estensione .sh (per classificarlo)
● File reso eseguibile chmod +x myscript.sh
● La prima riga per indicare l’interprete
#!/bin/bash
● La sequenza dei comandi da eseguire
● Esecuzione dello script
./myscript.sh
oppure inserirlo nel $PATH
www.riminilug.it
info@riminilug.it
BASH: le variabili
● Il contenuto identifica il tipo
nomevar=”Alessandro”
nomevar=10
● Viene identificata col simbolo $
ma non quando viene assegnata
● Non vanno inseriti spazi tra il nome della
variabile e il suo valore (si usano le “ ” per le stringhe)
● Sono case sensitive (differenza tra maiuscolo e minuscolo)
www.riminilug.it
info@riminilug.it
BASH: le strutture di controllo
● Condizioni (if)
if [ condizione ]
then
comando
else
comando
fi
www.riminilug.it
info@riminilug.it
if [ $Conta == 10 ]
then
echo "Finito"
else
((Conta=Conta+1))
fi
BASH: gli operatori logici
www.riminilug.it
info@riminilug.it
BASH: cicli (while)
www.riminilug.it
info@riminilug.it
while [ True ]
do
if [ $Conta == 10 ]
then
echo "Finito"
exit
else
((Conta=Conta+1))
fi
done
BASH: cicli (for)
www.riminilug.it
info@riminilug.it
for ((Conta=1;Conta<=10;Conta=Conta+1)
do
echo $Conta
done
for file in *
do
echo $file
done
BASH: interfaccia grafica?
● Zenity (GNOME)
sudo apt-get install zenity
● Creazione di dialog box all’interno di script shell
zenity --info --title "Info BOX" --text "Esempio di info
dialognRiminiLUG"
www.riminilug.it
info@riminilug.it
BASH: Zenity
www.riminilug.it
info@riminilug.it
zenity
--help-
Application
Options
Esempi:
zenity --help-entry
zenity --help-info
BASH: qualche esempio
● Backup $HOME
● Monitor di Rete
● Resize di immagini
● Player Mp3
www.riminilug.it
info@riminilug.it
Esempio: Backup
#!/bin/bash
MYHOME=$HOME
MYDEST=/work/bak
FILE_BAK=$MYDEST"/"$(date +%Y%m%d_%H%M%S)".tar.gz"
if [ ! -e $MYDEST ]
then
mkdir $MYDEST
fi
> $FILE_BAK
tar -zcvf $FILE_BAK $HOME/*
www.riminilug.it
info@riminilug.it
Esempio: Monitor di rete
IP_NET="192.168.1."
MAX_HOST=254
FILE_OUT=$(date +%Y%m%d_%H%M%S)".log"
> $FILE_OUT
for (( ihost = 1;ihost <= $MAX_HOST; ihost++ ))
do
IP=$IP_NET$ihost
ping -c 1 $IP > /dev/null
if [ "$?" == 0 ]
then
echo "Trovato: " $IP
echo $IP >> $FILE_OUT
fi
done
www.riminilug.it
info@riminilug.it
Esempio: Resize immagini
#
# http://www.imagemagick.org
#
conta=0
for file in *.JPG
do
echo Converto $file
convert "$file" -resize 50% mini_"$file"
((conta=conta+1))
echo $conta
done
echo totale file ridimensionati $conta
www.riminilug.it
info@riminilug.it
Esempio: Player mp3
PLAYER=”/usr/bin/mpg321”
DIR=$(zenity --file-selection --directory )
echo "Directory selezionata: $DIR"
for file in $DIR/*.mp3
do
if [ -e “$file” ]
then
echo “Playing: “ $(basename “$file”)
$PLAYER "$file"
fi
done
www.riminilug.it
info@riminilug.it
Manuali BASH
● http://wiki.ubuntu-it.org/Programmazione/LinguaggioBash
● http://www.aquilante.net/doc/bash_programming.pdf
● http://www.html.it/guide/shell-scripting-la-guida/
www.riminilug.it
info@riminilug.it
Caso reale, come esempio pratico
www.riminilug.it
info@riminilug.it
Poche istruzioni per recuperare PDF
 Dir cache di Firefox
 Comandi Linux:
find
file
grep
find . -exec file {} ; | grep -i pdf
 Risultato:
./ncniyv8v.default/cache2/entries/F8B40EB3B619E31C34FDEE1C0D19CFB9AD9779F7: PDF document, version 1.4
www.riminilug.it
info@riminilug.it
www.riminilug.it
info@riminilug.it

More Related Content

ODP
Linux Capabilities - ita - v2.1.5 - compatta
ODP
Dns e bind
PPTX
GZIP, TAR, BZIP2
PDF
PostgreSQL: Prima configurazione
PDF
Io uso Tor e non lascio tracce! Sei proprio sicuro?
PPT
Implementazione DAOS in ambienti enterprise
PDF
Packet Sniffing
ODP
Slide Bit Torrent
Linux Capabilities - ita - v2.1.5 - compatta
Dns e bind
GZIP, TAR, BZIP2
PostgreSQL: Prima configurazione
Io uso Tor e non lascio tracce! Sei proprio sicuro?
Implementazione DAOS in ambienti enterprise
Packet Sniffing
Slide Bit Torrent

What's hot (6)

PDF
Corso Bash
PDF
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
ODP
Seminario introduzione all'uso del terminale e della bash in Linux
PDF
Glusterfs: un filesystem altamente versatile
PDF
Openmoko
Corso Bash
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
Seminario introduzione all'uso del terminale e della bash in Linux
Glusterfs: un filesystem altamente versatile
Openmoko
Ad

Viewers also liked (20)

PDF
Samantha-Lynch
PPTX
Sneak Peek: A Gold-standard Benchmark for ESG Performance
PPTX
Wausau West EurekaFest Presentation
PDF
Get started with dropbox
DOC
SARA CV
PPTX
15 jan
PDF
KJRESUMEMED
PPTX
Evaluation Question 5
PPTX
If sulfoxaflor is gone, what else can we use?
PPSX
Planejamento de Evento | Repom
PDF
Proposta comercial Consultoria Inova Brasil
PPTX
2011 05-11 IIBA Vendor Webinar- Business Process Modeling
PDF
BOBST_Presentation
PPTX
Diversity foundations of an inclusion program executive staff presentation
PDF
Baristas meet Barman
PPT
Creating a Dynamic Framework for Human Resource Management
PDF
PPT
Postdigitales Marketing - Ideen, Ansätze und Chancen im Umgang mit moderner ...
PDF
Ausweg aus den Irrwegen klassischer Organisationsentwicklung
PDF
130313 fo wisnet ikt nrw iu k tag 190213 01
Samantha-Lynch
Sneak Peek: A Gold-standard Benchmark for ESG Performance
Wausau West EurekaFest Presentation
Get started with dropbox
SARA CV
15 jan
KJRESUMEMED
Evaluation Question 5
If sulfoxaflor is gone, what else can we use?
Planejamento de Evento | Repom
Proposta comercial Consultoria Inova Brasil
2011 05-11 IIBA Vendor Webinar- Business Process Modeling
BOBST_Presentation
Diversity foundations of an inclusion program executive staff presentation
Baristas meet Barman
Creating a Dynamic Framework for Human Resource Management
Postdigitales Marketing - Ideen, Ansätze und Chancen im Umgang mit moderner ...
Ausweg aus den Irrwegen klassischer Organisationsentwicklung
130313 fo wisnet ikt nrw iu k tag 190213 01
Ad

Similar to RiminiLUG. Mini Corso su Linux p2: Networking & Terminal (20)

PDF
Chi ha paura della command-line? - WordCamp Roma 2018
PDF
Glusterfs: un filesystem altamente versatile
PDF
Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4)
PDF
ClearOS - Linux Small Business Server
PDF
Sametime 8.x configurarlo ed installarlo
PDF
Introduzione ad ubuntu core - Qt day 2017
PDF
Hardening
PDF
Linux Security Hardening - panoramica sui principi generali per la riduzione...
PDF
Ridirezionamento di I/O con Bash: un breve approfondimento
PDF
introduzione_a_pfSense
PPT
X2 Linux Riassunti
PDF
ClearOS
ODP
Progetto Netkit
PPTX
Sistemi operativi
PDF
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
PDF
KDE Plasma widgets
PDF
Linux@Unina
PDF
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
ODP
Beryl
PDF
Multithreading, multiprocessing e Asincronia
Chi ha paura della command-line? - WordCamp Roma 2018
Glusterfs: un filesystem altamente versatile
Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4)
ClearOS - Linux Small Business Server
Sametime 8.x configurarlo ed installarlo
Introduzione ad ubuntu core - Qt day 2017
Hardening
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Ridirezionamento di I/O con Bash: un breve approfondimento
introduzione_a_pfSense
X2 Linux Riassunti
ClearOS
Progetto Netkit
Sistemi operativi
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
KDE Plasma widgets
Linux@Unina
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Beryl
Multithreading, multiprocessing e Asincronia

RiminiLUG. Mini Corso su Linux p2: Networking & Terminal

  • 1. www.riminilug.it info@riminilug.it Mini Corso su LINUX Martedì, 19 aprile 2016 Networking & Terminal Alessandro Carichini alexsoft@riminilug.it
  • 2. Dove ci eravamo lasciati? Installazione & Post Linux Mint 17.3 (rosa) www.riminilug.it info@riminilug.it
  • 3. Network: nomenclatura di base ● LAN (Local Area Network) ● Rete locale (tutti gli apparati si trovano nella stesso edificio/area) ● WAN (Wide Area Network) ● Gruppi di LAN sparsi geograficamente che dialogano attraverso modem/routers (Internet) www.riminilug.it info@riminilug.it
  • 4. Network: gli strumenti (hardware) ● Router ADSL ● connessione alla “nuvola” Internet ● Switch ● Connettere più dispositivi al router ● Wi-Fi ● Connettere più dispositivi senza fili al router ● Repeater Wi-Fi ● Per estendere la portata del Wi-Fi ● Scheda di Rete (PC) ● Cavo RJ-45 (Ethernet) ● Wi-Fi www.riminilug.it info@riminilug.it
  • 5. Struttura di una LAN casalinga www.riminilug.it info@riminilug.it
  • 6. Network: strumenti x configurare ● Preferenze: Connessioni di rete ● Applet: System Tray ● Terminal: Shell dei comandi ifconfig / iwconfig File di configurazione /etc/network/interfaces www.riminilug.it info@riminilug.it
  • 7. Network: Indirizzamento ● Dinamico: ● Server DHCP (Dynamic Host Configuration Protocol) router ADSL/WiFi ● Manuale: ● Classe IP del router (default 192.168.1.0) ● Subnet mask: 255.255.255.0 ● Gateway: il router (192.168.1.1) ● DNS: router o specifico (Google, OpenDNS..) www.riminilug.it info@riminilug.it
  • 10. Network: DNS / Hostname /etc/resolv.conf nameserver 192.168.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4 /etc/hosts 127.0.0.1 localhost 192.168.1.1 myrouter 192.168.1.10 alexhome 192.168.1.20 raspberry www.riminilug.it info@riminilug.it
  • 11. Network: strumenti x monitorare ● Terminale: Shell dei comandi ● Classico: ping <indirizzo_ip> ● Avanzato: nmap [options] <target_ip> ● Grafico: ZenMap www.riminilug.it info@riminilug.it
  • 13. Network Services  File Server  Documenti, immagini, video, musica…  Print Server  Una stampante e più pc collegati  Web Server  Gestione mini sito  FTP Server  Per la gestione di qualche webcam  Mail Server Gestione della posta elettronica www.riminilug.it info@riminilug.it
  • 14. Cosa vedremo oggi?  File Server  Samba (SMB)  Print Server  CUPS  FTP Server  VSFTP www.riminilug.it info@riminilug.it
  • 15. Samba (SMB) ● Samba? ● Protocollo SMB (Server Message Block) di Microsoft ● E’già installato? ● Dovrebbe ma nel dubbio un bel sudo apt-get install samba ● Configurazione ibrida (grafico/shell) ● Condivisione dir (desktop) ● Creazione utenti (terminal) www.riminilug.it info@riminilug.it
  • 16. Samba: Configurazione soft Condivisione dir: Creazione utente: smbpasswd -a username www.riminilug.it info@riminilug.it
  • 17. Samba: Configurazione hard /etc/samba/smb.conf [shared] comment = Cartella condivisa # Commento sulla condivisione path = /cartella/da/condividere # Percorso della condivisione browseable = yes # Rende visibile la condivisione public = yes # Rende la cartella accessibile create mask = 0755 # Permessi dei file sudo service smbd restart http://wiki.ubuntu-it.org/Server/Samba www.riminilug.it info@riminilug.it
  • 18. CUPS ● Common UNIX Printing System ● Gestione della coda di stampa ● Installato default sudo apt-get install cups ● Configurazione Web http://localhost:631 ● Aggiungi stampanti e classi ● Aggiungi una stampante ● Locale (USB) ● Rete www.riminilug.it info@riminilug.it
  • 20. CUPS: ultime considerazioni ● E’ come SAMBA e andare in bicicletta Una volta imparato…. ● Abilitare l’accesso web da remoto /etc/cups/cupsd.conf Listen localhost:631 Listen 192.168.1.41:631 Nei <Location /> e <Location /Admin> aggiungere Allow 192.168.1.* ● www.riminilug.it info@riminilug.it
  • 21. VSFTP ● FTP (File Transfert Protocol) ● Ha la mia età (1971) ● E’ ancora il sistema più usato per trasferire file tra “mondi” diversi ● VSFTP (FTP Server) sudo apt-get install vsftpd Solito file /etc/vsftpd.conf ● Abilitare accesso anonymous ● Abilitare utenti locali www.riminilug.it info@riminilug.it
  • 22. VSFTP: configurazione /etc/vsftpd.conf anonymous_enabled=NO anon_upload_enable=NO anon_mkdir_write_enable=NO local_enables=YES write_enable=YES sudo service vsftpd restart http://wiki.ubuntu-it.org/Server/Ftp www.riminilug.it info@riminilug.it
  • 24. Terminale Shell ● Accessori: Terminale ● Prompt dei comandi Linux www.riminilug.it info@riminilug.it
  • 26. Differenze con cmd.exe? ● I percorsi (PATH) ● Le barre (slash / e backslash ) ● Le lettere dei drive rispetto ai punti di mount ● Il nome del comando ma non la logica di funzionamento ● Redirezione <> ● Wild Card ?* (caratteri jolly) ● Pipeline | (condotto per passare i risultati a più comandi) www.riminilug.it info@riminilug.it
  • 27. Comandi Unix-Like essenziali (1) ● cp copia file ● cd cambia dir ● mkdir crea dir ● rm rimuove file/dir ● mv sposta/rinomina file/dir ● ls elenca file ● cat legge (concatena) file nello STD output ● find trova file www.riminilug.it info@riminilug.it
  • 28. Comandi Unix-Like essenziali (2) ● grep cerca stringa nei file ● more blocca lo scorrimento a videata ● wc conta parole e caratteri ● echo mostra una riga di testo ● chmod cambia attributi utente dei file ● chgrp cambia attributi gruppo dei file ● file indica la tipologia del file ● tar comprime/decomprime file www.riminilug.it info@riminilug.it
  • 29. Attenzione a certi comandi www.riminilug.it info@riminilug.it http://www.corriere.it/tecnologia/provati-per-voi/16_aprile_15/sbaglia-comando-cancella-azienda-storia-italiano-marco-marsala-dd252b48-02ea-11e6-a3a1- 5b22ca0a1360.shtml
  • 30. Ambiente Shell  Struttura file/directory Unix-Like  Variabili d’ambiente predefinite $PATH .. $HOME .. $LOGNAME .. $SHELL  Permessi (attributi) file/directory www.riminilug.it info@riminilug.it
  • 31. Linguaggi di Scripting ● BASH (Linux, OSX, ...) ● Python (Linux, OSX, Windows) ● Perl (Linux, OSX, Windows) ● Ruby (Linux, OSX, Windows) www.riminilug.it info@riminilug.it
  • 32. BASH su Windows 10 Inserita nell’aggiornamento estivo “Anniversary” www.riminilug.it info@riminilug.it https://channel9.msdn.com/Events/Build/2016/P488?ocid=player http://blog.dustinkirkland.com/2016/04/howto-ubuntu-on-windows.html
  • 33. Editor di Testo (Plain Text)  Default (Editor di Testo, GEdit)  Grafici da installare  Scite  Geany  Brackets  Terminal  nano  vi (VIM) www.riminilug.it info@riminilug.it
  • 34. BASH: le basi ● Estensione .sh (per classificarlo) ● File reso eseguibile chmod +x myscript.sh ● La prima riga per indicare l’interprete #!/bin/bash ● La sequenza dei comandi da eseguire ● Esecuzione dello script ./myscript.sh oppure inserirlo nel $PATH www.riminilug.it info@riminilug.it
  • 35. BASH: le variabili ● Il contenuto identifica il tipo nomevar=”Alessandro” nomevar=10 ● Viene identificata col simbolo $ ma non quando viene assegnata ● Non vanno inseriti spazi tra il nome della variabile e il suo valore (si usano le “ ” per le stringhe) ● Sono case sensitive (differenza tra maiuscolo e minuscolo) www.riminilug.it info@riminilug.it
  • 36. BASH: le strutture di controllo ● Condizioni (if) if [ condizione ] then comando else comando fi www.riminilug.it info@riminilug.it if [ $Conta == 10 ] then echo "Finito" else ((Conta=Conta+1)) fi
  • 37. BASH: gli operatori logici www.riminilug.it info@riminilug.it
  • 38. BASH: cicli (while) www.riminilug.it info@riminilug.it while [ True ] do if [ $Conta == 10 ] then echo "Finito" exit else ((Conta=Conta+1)) fi done
  • 39. BASH: cicli (for) www.riminilug.it info@riminilug.it for ((Conta=1;Conta<=10;Conta=Conta+1) do echo $Conta done for file in * do echo $file done
  • 40. BASH: interfaccia grafica? ● Zenity (GNOME) sudo apt-get install zenity ● Creazione di dialog box all’interno di script shell zenity --info --title "Info BOX" --text "Esempio di info dialognRiminiLUG" www.riminilug.it info@riminilug.it
  • 42. BASH: qualche esempio ● Backup $HOME ● Monitor di Rete ● Resize di immagini ● Player Mp3 www.riminilug.it info@riminilug.it
  • 43. Esempio: Backup #!/bin/bash MYHOME=$HOME MYDEST=/work/bak FILE_BAK=$MYDEST"/"$(date +%Y%m%d_%H%M%S)".tar.gz" if [ ! -e $MYDEST ] then mkdir $MYDEST fi > $FILE_BAK tar -zcvf $FILE_BAK $HOME/* www.riminilug.it info@riminilug.it
  • 44. Esempio: Monitor di rete IP_NET="192.168.1." MAX_HOST=254 FILE_OUT=$(date +%Y%m%d_%H%M%S)".log" > $FILE_OUT for (( ihost = 1;ihost <= $MAX_HOST; ihost++ )) do IP=$IP_NET$ihost ping -c 1 $IP > /dev/null if [ "$?" == 0 ] then echo "Trovato: " $IP echo $IP >> $FILE_OUT fi done www.riminilug.it info@riminilug.it
  • 45. Esempio: Resize immagini # # http://www.imagemagick.org # conta=0 for file in *.JPG do echo Converto $file convert "$file" -resize 50% mini_"$file" ((conta=conta+1)) echo $conta done echo totale file ridimensionati $conta www.riminilug.it info@riminilug.it
  • 46. Esempio: Player mp3 PLAYER=”/usr/bin/mpg321” DIR=$(zenity --file-selection --directory ) echo "Directory selezionata: $DIR" for file in $DIR/*.mp3 do if [ -e “$file” ] then echo “Playing: “ $(basename “$file”) $PLAYER "$file" fi done www.riminilug.it info@riminilug.it
  • 47. Manuali BASH ● http://wiki.ubuntu-it.org/Programmazione/LinguaggioBash ● http://www.aquilante.net/doc/bash_programming.pdf ● http://www.html.it/guide/shell-scripting-la-guida/ www.riminilug.it info@riminilug.it
  • 48. Caso reale, come esempio pratico www.riminilug.it info@riminilug.it
  • 49. Poche istruzioni per recuperare PDF  Dir cache di Firefox  Comandi Linux: find file grep find . -exec file {} ; | grep -i pdf  Risultato: ./ncniyv8v.default/cache2/entries/F8B40EB3B619E31C34FDEE1C0D19CFB9AD9779F7: PDF document, version 1.4 www.riminilug.it info@riminilug.it