Enviar pesquisa
Carregar
Introduzione a Linux: differenze con windows e strumenti per la programmazione
•
0 gostou
•
454 visualizações
Valerio Bruno
Seguir
Introduction to Linux, gcc & gdb (in Italian).
Leia menos
Leia mais
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 62
Baixar agora
Baixar para ler offline
Recomendados
Corso Linux
Corso Linux
agnelloe
Corso linux base
Corso linux base
Beniamino Ferrari
debian gnu linux
debian gnu linux
itis e.divini san severino marche
Corso formazione Linux
Corso formazione Linux
Ercole Palmeri
Presentazione Linux
Presentazione Linux
Matteo
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
Maurizio Antonelli
Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2
Sebastiano Merlino (eTr)
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Janhu Silvio Crispiatico
Recomendados
Corso Linux
Corso Linux
agnelloe
Corso linux base
Corso linux base
Beniamino Ferrari
debian gnu linux
debian gnu linux
itis e.divini san severino marche
Corso formazione Linux
Corso formazione Linux
Ercole Palmeri
Presentazione Linux
Presentazione Linux
Matteo
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
Maurizio Antonelli
Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2
Sebastiano Merlino (eTr)
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Janhu Silvio Crispiatico
Lezione tre
Lezione tre
Sebastiano Merlino (eTr)
Sistema operativo unix
Sistema operativo unix
CarpioniVeronica
Linux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincenti
Maurizio Antonelli
Lezione due
Lezione due
Sebastiano Merlino (eTr)
LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizione
Maurizio Antonelli
Linux e fs storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
Maurizio Antonelli
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Fulvio Corno
Linux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincenti
Maurizio Antonelli
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
Marco Ferrigno
Relazione Sistemi
Relazione Sistemi
sebym94
Ubuntu Linux - Corso Base
Ubuntu Linux - Corso Base
Andrea D'Alessandro
Ubuntu Linux
Ubuntu Linux
Il Mosaico
FLOSS: Free Software e Open Source
FLOSS: Free Software e Open Source
Piergiorgio Borgogno
Xp addio
Xp addio
Gabriele Ponzo
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
I.S.I.S. "Antonio Serra" - Napoli
Understanding Linux: 20 anni di kernel tra storia e tecnica
Understanding Linux: 20 anni di kernel tra storia e tecnica
Marco Ferrigno
Installazione Linux
Installazione Linux
arock84
2013 pillole 02
2013 pillole 02
Vincenzo Lxcc Linux
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
Better Software
LinuxDay 2005: Computer Virus e rilevamento
LinuxDay 2005: Computer Virus e rilevamento
Valerio Bruno
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Claudio Cardinali
guida sommario indice windows 7 reti sicurezza tecniche avanzate
guida sommario indice windows 7 reti sicurezza tecniche avanzate
Libro Windows 7
Mais conteúdo relacionado
Mais procurados
Lezione tre
Lezione tre
Sebastiano Merlino (eTr)
Sistema operativo unix
Sistema operativo unix
CarpioniVeronica
Linux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincenti
Maurizio Antonelli
Lezione due
Lezione due
Sebastiano Merlino (eTr)
LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizione
Maurizio Antonelli
Linux e fs storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
Maurizio Antonelli
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Fulvio Corno
Linux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincenti
Maurizio Antonelli
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
Marco Ferrigno
Relazione Sistemi
Relazione Sistemi
sebym94
Ubuntu Linux - Corso Base
Ubuntu Linux - Corso Base
Andrea D'Alessandro
Ubuntu Linux
Ubuntu Linux
Il Mosaico
FLOSS: Free Software e Open Source
FLOSS: Free Software e Open Source
Piergiorgio Borgogno
Xp addio
Xp addio
Gabriele Ponzo
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
I.S.I.S. "Antonio Serra" - Napoli
Understanding Linux: 20 anni di kernel tra storia e tecnica
Understanding Linux: 20 anni di kernel tra storia e tecnica
Marco Ferrigno
Installazione Linux
Installazione Linux
arock84
2013 pillole 02
2013 pillole 02
Vincenzo Lxcc Linux
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
Better Software
Mais procurados
(19)
Lezione tre
Lezione tre
Sistema operativo unix
Sistema operativo unix
Linux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincenti
Lezione due
Lezione due
LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizione
Linux e fs storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Linux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincenti
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
Relazione Sistemi
Relazione Sistemi
Ubuntu Linux - Corso Base
Ubuntu Linux - Corso Base
Ubuntu Linux
Ubuntu Linux
FLOSS: Free Software e Open Source
FLOSS: Free Software e Open Source
Xp addio
Xp addio
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
Understanding Linux: 20 anni di kernel tra storia e tecnica
Understanding Linux: 20 anni di kernel tra storia e tecnica
Installazione Linux
Installazione Linux
2013 pillole 02
2013 pillole 02
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
Destaque
LinuxDay 2005: Computer Virus e rilevamento
LinuxDay 2005: Computer Virus e rilevamento
Valerio Bruno
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Claudio Cardinali
guida sommario indice windows 7 reti sicurezza tecniche avanzate
guida sommario indice windows 7 reti sicurezza tecniche avanzate
Libro Windows 7
Libro windows 7 reti sicurezza tecniche avanzate
Libro windows 7 reti sicurezza tecniche avanzate
Libro Windows 7
GNU Linux introduction
GNU Linux introduction
Vincenzo Paolo Fraddosio
(Manuale) Hardware Personal Computer
(Manuale) Hardware Personal Computer
Virtualdeejay.net
Computer Virus e rilevamento
Computer Virus e rilevamento
Simone Amati
Pericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virus
Giovanni Mennea
Gli antivirus
Gli antivirus
Piera Ingala
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Mirko Mancin
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
Mirko Mancin
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
Mirko Mancin
Training in Analytics, R and Social Media Analytics
Training in Analytics, R and Social Media Analytics
Ajay Ohri
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Stanford GSB Corporate Governance Research Initiative
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Barry Feldman
Destaque
(16)
LinuxDay 2005: Computer Virus e rilevamento
LinuxDay 2005: Computer Virus e rilevamento
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
guida sommario indice windows 7 reti sicurezza tecniche avanzate
guida sommario indice windows 7 reti sicurezza tecniche avanzate
Libro windows 7 reti sicurezza tecniche avanzate
Libro windows 7 reti sicurezza tecniche avanzate
GNU Linux introduction
GNU Linux introduction
(Manuale) Hardware Personal Computer
(Manuale) Hardware Personal Computer
Computer Virus e rilevamento
Computer Virus e rilevamento
Pericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virus
Gli antivirus
Gli antivirus
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
Training in Analytics, R and Social Media Analytics
Training in Analytics, R and Social Media Analytics
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Semelhante a Introduzione a Linux: differenze con windows e strumenti per la programmazione
Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione Tre
Dario Mazza
Circolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema Linux
Paolo Sammicheli
02 linux corso pratica
02 linux corso pratica
vincenzo cervi
Distro linux
Distro linux
Alessandro Costa
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
Paolo Campegiani
[Ubuntu per tutti] 2, La struttura del sistema e prime operazioni
[Ubuntu per tutti] 2, La struttura del sistema e prime operazioni
Galliate Linux User Group
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
Maurizio Antonelli
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione Due
Dario Mazza
Da Windows a Linux: è tempo di migrare
Da Windows a Linux: è tempo di migrare
Nicola Corti
Un Sistema Aperto Per Menti Aperte
Un Sistema Aperto Per Menti Aperte
Emmanuele Bello
Da windows a_linux_ot2013
Da windows a_linux_ot2013
Pordenone LUG
Intro Gnu Linux
Intro Gnu Linux
Emmanuele Bello
Lezione 6 sound design 1
Lezione 6 sound design 1
Lorenzo Cassulo
Lezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
Alex Palesandro
Come dove perchè? Ubuntu!
Come dove perchè? Ubuntu!
Nicola Corti
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione Os
Caterina Policaro
Appunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux Certification
Vincenzo Argese
Linux Day Torino 2015 applicazioni per iniziare
Linux Day Torino 2015 applicazioni per iniziare
Francesco Tucci
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Marco Ferrigno
Semelhante a Introduzione a Linux: differenze con windows e strumenti per la programmazione
(19)
Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione Tre
Circolo Izquierda: Anatomia Sistema Linux
Circolo Izquierda: Anatomia Sistema Linux
02 linux corso pratica
02 linux corso pratica
Distro linux
Distro linux
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
[Ubuntu per tutti] 2, La struttura del sistema e prime operazioni
[Ubuntu per tutti] 2, La struttura del sistema e prime operazioni
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione Due
Da Windows a Linux: è tempo di migrare
Da Windows a Linux: è tempo di migrare
Un Sistema Aperto Per Menti Aperte
Un Sistema Aperto Per Menti Aperte
Da windows a_linux_ot2013
Da windows a_linux_ot2013
Intro Gnu Linux
Intro Gnu Linux
Lezione 6 sound design 1
Lezione 6 sound design 1
Lezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
Come dove perchè? Ubuntu!
Come dove perchè? Ubuntu!
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione Os
Appunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux Certification
Linux Day Torino 2015 applicazioni per iniziare
Linux Day Torino 2015 applicazioni per iniziare
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Introduzione a Linux: differenze con windows e strumenti per la programmazione
1.
www.torlug.org
www.cs.uniroma2.it Corso di Laboratorio di Programmazione dei calcolatori 2007 Introduzione a Linux Differenze con Windows e strumenti per la programmazione valerio.bruno@torlug.org Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
2.
www.torlug.org
www.cs.uniroma2.it Cos'è Linux ? ● Il cuore di un sistema operativo (Linux Kernel) – Sviluppato inizialmente da Linus Torvalds, oggi da una comunità di persone che lavorano delocalizzate. – Software Libero! ● Distribuzione GNU-Linux (Linux Distro): un sistema operativo completo (Kernel + Compilatore + Applicazioni) – TANTI sistemi operativi Linux ( http://distrowatch.com/ ). Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
3.
www.torlug.org
www.cs.uniroma2.it Distro Linux: Pro ● Software Libero ! – Modificabile – In rapida evoluzione – Gratuito ● Sicuro e stabile – Virus? Quali virus? – Esecuzione esplicita di programmi = Eliminazione necessità firewall. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
4.
www.torlug.org
www.cs.uniroma2.it Distro Linux: Pro ● Vasta comunità di utenti – Forum e LUG di supporto. – Nuovi amici ● Grande varietà di software. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
5.
www.torlug.org
www.cs.uniroma2.it Distro Linux: Contro ● Mancanza del supporto hardware. ● Integrazione funzionalità desktop sufficiente ma ancora da migliorare. ● Milioni di programmi, centinaia di distro: che fatica l'integrazione! (per fortuna ci sono i gestori di pacchetti che risolvono le dipendenze) ● Mancanza di supporto sui normali canali commerciali. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
6.
www.torlug.org
www.cs.uniroma2.it Distro Linux: Quale ? http://reallylinux.com/docs/choosinglinux.shtml http://www.ubuntulinux.com http://www.opensuse.org/ Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
7.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
8.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Differenze con Windows ● In Linux i file sono ordinati in una unica gerarchia di cartelle. ● I percorsi si indicano con il front-slash / e non con il back-slash . Ad esempio i file dell'utente pippo si trovano in: /home/pippo/ invece che in “c:Documents and Settingspippo” Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
9.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Descrizione generale delle cartelle ● /boot : contiene i file necessari all'avvio del sistema. ● /sbin : contiene i programmi per l'amministrazione del sistema (es: configurazione hardware). ● /bin: contiene programmi di utilità. ● /lib: contiene le librerie utilizzabili dai vostri programmi. ● /etc : contiene i file di configurazione del sistema. ● /home : contiene i file personali degli utenti. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
10.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Descrizione generale delle cartelle 2 ● /root : la home dell'utente root. ● /mnt : contiene i mount point per altre periferiche di memoria di massa. ● /lost+found : file recuperati da blocchi di sistema ● /dev : contiene file che rappresentano periferiche hardware. ● /proc : contiene file che rappresentano processi. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
11.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Descrizione generale delle cartelle 3 ● /opt : contiene programmi non previsti dal sistema di base. ● /var : contiene file variabili (log di sistema, archivi di progetto, .... ). ● /tmp : contiene file temporanei. ● /usr : contiene file e programmi degli utenti condivisi tra gli utenti. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
12.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Differenze con Windows 2 ● Linux è case sensitive !!! (come il C) ● Le applicazioni sono “sparse” per il filesystem. Dal momento che non esistono i drive (A per il floppy , C per il disco fisso, D per il cdrom, ....), come accedo ad i file sul mio floppy disk o sulla mia penna usb ? Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
13.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Differenze con Windows 3 ● Per accedere ad i file su un dispositivo esterno (floppy disk, penna usb, ecc..) devo prima fare (o il sistema, dopo aver rilevato la periferica, esegue) il mount del dispositivo. ● I file “appariranno come per magia” in una sotto cartella del filesystem. ● Quando ho finito con i file, prima di scollegare il dispositivo DEVO fare l'unmount del dispositivo. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
14.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Gli utenti, i gruppi ed i loro file ● Linux è un sistema multi-utente; ● Un utente è identificato da una coppia username e password; ● Ciò che un utente può fare o non può fare è definito da i suoi permessi sui file. ● root è il super utente: può fare tutto su tutti. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
15.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Gli utenti, i gruppi ed i loro file 2 ● In Linux sono inoltre definiti i gruppi di utenti. ● Un utente appartiene almeno ad un gruppo; ● E' possibile impostare dei permessi specifici ad un gruppo, senza dover impostare tali permessi ad ogni utente di quel gruppo. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
16.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Gli utenti, i gruppi ed i loro file 3 ● Ad ogni file sono associati: – l'utente proprietario del file ed i permessi che quest'ultimo ha sul file stesso. – un gruppo di utenti (generalmente il gruppo principale del proprietario) ed i permessi che gli utenti di questo gruppo hanno sul file stesso – i permessi concessi a tutti coloro che non sono il proprietario e non appartengono al gruppo associato. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
17.
www.torlug.org
www.cs.uniroma2.it Il filesystem di Linux Gli utenti, i gruppi ed i loro file 4 ● i permessi corrispondono a 3 bit: uno per la lettura, uno per la scrittura ed uno per l'esecuzione. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
18.
www.torlug.org
www.cs.uniroma2.it Utilizzare Linux da shell Introduzione ● Una shell è un interprete di comandi. ● Lavora in modalità interattiva ma anche batch. ● Esistono tante shell: tcsh, csh, sh, ksh, perchè proprio bash? ● Maggiori informazioni sulla bash le trovate su http://www.gnu.org/software/bash Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
19.
www.torlug.org
www.cs.uniroma2.it Utilizzare Linux da shell Introduzione 2 ● Perchè utilizzare la shell quando esistono tante belle interfacce grafiche? – Per alcune cose utilizzare la shell è più veloce. – L'interfaccia grafica potrebbe non essere presente sulla macchina che stiamo usando (eg. server). – Potrebbe essere l'unico modo per accedere ad una funzionalità. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
20.
www.torlug.org
www.cs.uniroma2.it Utilizzare Linux da shell Primo incontro con il mostro ● Si accede alla shell – quando ci si logga in modalità testuale – tramite il programma Konsole di KDE – tramite il programma Terminale di Gnome – ... tramite un qualche programma di un qualche window manager – collegandosi da remoto alla macchina Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
21.
www.torlug.org
www.cs.uniroma2.it Utilizzare Linux da shell Primo incontro con il mostro 2 ● Si presenta come un prompt nomeUtente@nomeComputer percorsoCartellaSelezionata $ ● Il carattere ~ (tilde) indica la home folder dell'utente. ...ed è lì, immobile, che attende i vostri comandi... Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
22.
www.torlug.org
www.cs.uniroma2.it Utilizzare Linux da shell Convenzioni per i comandi ● Quando si inserisce un comando questo può avere parametri ed opzioni; in generale: – le opzioni vanno prima dei parametri; – le opzioni sono precedute dal meno – o dal doppio meno -- ; – quasi tutti i comandi hanno l'opzione –help che fa stampare una breve guida del comando. ● es: ls --help Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
23.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Navigare il filesystem ● Con il comando cd è possibile spostarsi tra le cartelle – utilizzando un path (relativo o assouluto) come parametro, la shell ci porta alla cartella puntata dal path. – senza parametri ci fa ritornare nella home; – utilizzando i .. come parametro saliamo la gerarchia di un livello; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
24.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Visualizzare i file ● Con il comando ls è possibile esaminare il contenuto di una cartella; alcune opzioni interessanti: – -a mostra i file nascosti; – -l mostra i file in un'unica colonna con i loro permessi, gli utenti ed i gruppi associati, la loro dimensione in byte, l'ultima data di modifica; – -h mostra la dimensione dei file nell'ordine di grandezza più comodo per la lettura da essere umano; questa opzione deve essere usata insieme all'opzione l. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
25.
www.torlug.org
www.cs.uniroma2.it Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
26.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Gestione dei file ● rm <nomeFile> – Cancella un file ● rm -r <nomeCartella> – Cancella una cartella e tutte le sottocartelle ● mv <nomeFile> <nuovoPath> – Sposta un file nel nuova cartella Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
27.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Gestione dei file 2 ● nano <nomeFile> oppure pico <nomeFile> – Crea/modifica un file ● mv <nomeFile> <nuovoNomeFile> – Rinomina un file ● mkdir <nomeCartella> – Crea una cartella Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
28.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Cercare un file ● find <percorsoInizioRicerca> -name <schemaNomeFile> – Ricerca dal percorso indicato in tutte le sottocartelle i file corrispondenti allo schema passato. ● find <percorsoInizioRicerca> -regex <schemaNomeFile> – Come il precedente tranne che lo schema passato e' un'espressione regolare. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
29.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Cambiare i permessi su un file ● chmod <soggettoPermessi> < + oppure - ><permesso> <file> – soggettoPermessi: u per utente proprietario, g per gruppo del file, o per tutti gli altri. – permesso: r per la lettura, w per la scrittura, x per l'esecuzione. ● Esempio: – chmod og-wx file1 ● rimuove a tutti coloro che non sono il proprietario il diritto di scrittura e di esecuzione. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
30.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Eseguire un programma ● ./<nomeProgramma> – naturalmente chi prova ad eseguirlo deve avere il permesso di farlo. – E' possibile evitare di usare il ./ solo se il programma è contenuto in una cartella indicata nella variabile di ambiente PATH. – Se il programma non è nella cartella corrente, sostituire il ./ con il percorso alla cartella del programma. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
31.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Cambiare la propria password ● passwd – richiede la vecchia password per assicurarsi che siete il proprietario della password. – richiede la nuova password. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
32.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell La guida di riferimento per i comandi ● man <comando> oppure man <funzione> – Visualizza la prima pagina relativa a quel comando/funzione. ● man <numPagina> <argomento> – Visualizza la pagina <numPagina> relativa a quell'argomento. ● man -a <argomento> – Visualizza tutte le pagine relative a quell'argomento. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
33.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell I flussi di un programma Programma STDOUT (1) STDIN (0) STDERR (2) Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
34.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell La guida di riferimento per i comandi ● cat <file> – Stampa il contenuto di un file a video. ● grep <stringa> – Legge il flusso di input e ne ristampa solo le righe che contengono la stringa Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
35.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Redirezione su file E' possibile redirigere i flussi standard da/verso un file: ● <comando> < <file di input> ● Il contenuto del <file di input> viene usato come flusso STDIN per il comando. ● <comando> > <file di output> ● Lo STDOUT del programma viene salvato su <file di output>. ● <comando> 2> <file di error> ● Lo STDERR del programma viene salvato su <file di error>. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
36.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Redirezione su file Esempi: ● ls --help > aiutoLs.txt ● Stampa la guida di ls dentro il file aiutoLs.txt ● sendmail destinatario@server.com < email ● Invia una email il cui contenuto è scritto nel file. ● Automazione trasferimento file in remoto con ftp. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
37.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Collegamento tra programmi E' possibile costruire una sequenza di programmi collegata dai flussi, in modo che l'STDOUT del programma[x] è l'STDIN del programma[x+1]. ... ... P[x-1] P[x] P[x+1] Per creare questo collegamento usiamo il simbolo pipe | (quello a sx dell'1 e sopra il backslash ). Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
38.
www.torlug.org
www.cs.uniroma2.it Introduzione all'utilizzo di Linux da shell Collegamento tra programmi Esempi: ● cat file1 | grep parola ● Stampa le righe di file1 che contengono parola ● Si possono concatenare più grep per restringere l'insieme delle righe. ● Utile per cercare una chiamata di funzione in un file di codice C. ● Applicare più operazioni su un file: ● cat fileCompresso | decomprimi | stampa Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
39.
www.torlug.org
www.cs.uniroma2.it gcc – GNU C Compiler ● Parte del progetto GNU ● Supporta lo standard originale del linguaggio C (C89) ed il più recente C99 ● In realtà gcc oggi sta per GNU Compilers Collection ● Homepage del progetto http://gcc.gnu.org Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
40.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Il processo di compilazione ● pre-process esegue le #macro ● compile crea un codice intermedio vicino a quello macchina ● assemble Trasforma il codice intermedio in codice macchina ● link Collega le varie parti di codice, ordinandole in un programma Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
41.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Cominciamo a compilare qualcosa ● gcc <nomeSorgente.c> ● preprocessa, compila, assembla e linka ● nessun output (a schermo) #include <stdio.h> ● produce un eseguibile a.out int main() { printf("Hello World!"); return 0; } Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
42.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Opzioni interessanti ● -o <nomeFile> – specifica il nome del file generato dalla compilazione (invece di a.out); ● -l <nomeLibreria> – fa il link usando una libreria: questa opzione può essere ripetuta; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
43.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Opzioni interessanti 2 ● -D <MACRO>=<valoreMacro> – definisce la macro prima di processare i file; ● -I <path> – specifica una cartella in cui il compilatore deve cercare file da includere di default (quelli tra <>); ● -L <path> – specifica una cartella in cui il compilatore deve cercare le librerie Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
44.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Opzioni interessanti 3 ● --std=c89 oppure --std=c99 – specifica che la compilazione deve essere eseguita secondo lo standard ● --pedantic – specifica che il compilatore deve dare errore per QUALSIASI cosa che non è conforme allo standard. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
45.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Opzioni interessanti 4 ● -E – Preprocessa i file in input e stampa a video il risultato; ● -S – Preprocessa e compila: non assembla né linka; ● -c – Preprocessa, compila ed assembla, ma non linka. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
46.
www.torlug.org
www.cs.uniroma2.it gcc -GNU C Compiler Errori comuni: distinzione tra include e librerie ● Negli header file vanno le dichiarazioni, non le definizioni; ● Al gcc vanno passati solo i file .c ; ● Quando si utilizza una libreria esterna non basta includere le sue dichiarazioni ma bisogna anche linkare il corpo delle sue funzioni; ● La libreria standard viene linkata automaticamente; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
47.
www.torlug.org
www.cs.uniroma2.it Debugging ● Un debugger è uno strumento che permette di: – controllare l'esecuzione di un programma che avete scritto, interrompendola o riprendendola in un determinato momento. – controllare lo stato del vostro programma (variabili, stack ed altro..) ● ovvero di studiare l'esecuzione del codice da voi scritto per determinare se ci sono dei casi in cui si verificano anomalie (bug). Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
48.
www.torlug.org
www.cs.uniroma2.it Debugging ● Scoprire bachi utilizzando un debugger è un'operazione piuttosto tediosa ed andrebbe evitata per quanto possibile: – facendo una buona progettazione PRIMA ( ad es. con diagrammi di flusso e schemi dei moduli) – utilizzando regole di buona programmazione ( ad es. evitare le variabili globali, utilizzare dei nomi di variabili comprensibili) ... ma se proprio ci siamo presi un baco ... Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
49.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger ● Debugger molto potente con interfaccia utilizzabile da shell. ● Fa parte del progetto GNU ● Maggiori informazioni su http://www.gnu.org/software/gdb Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
50.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger ● Per utilizzare il debugger sul vostro programma dovete compilarlo con l'opzione -g ; ● Eseguite gdb <nomeProgramma> ; ● A questo punto potete controllare l'esecuzione del programma inserendo comandi al prompt di gdb. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
51.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger Comandi ● break <nomeFunzione> oppure break <nomefile>:<riga> – Inserisce un breakpoint all'inizio della funzione o alla riga indicata; ● print <nomeVariabile> oppure print <espressione> – stampa il contenuto di una variabile o il valore di una espressione; ● run – Fa partire l'esecuzione del programma; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
52.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger Comandi 2 ● next – Va avanti di una istruzione; ● step – entra nell'esecuzione dell'istruzione; ● finish – Continua l'esecuzione del programma finchè la funzione corrente non termina; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
53.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger ● kill Comandi 3 – interrompe l'esecuzione del programma; ● display <variabile> oppure display <espressione> – come print, ma la stampa viene ripetuta ad ogni interruzione del programma; ● continue – riprende l'esecuzione del programma finché non incontra un breakpoint o il programma non termina; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
54.
www.torlug.org
www.cs.uniroma2.it gdb – GNU Debugger Navigare la pila delle chiamte ● backtrace – mostra la pila delle chiamate; ● frame <numeroChiamata> – seleziona la chiamata di funzione associata al numero passato; Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
55.
www.torlug.org
www.cs.uniroma2.it Scrivere un programma che... ● Prenda in input una serie di parole – Divise dal carattere a capo – La lettura dell'input si ferma nel caso l'utente inserisca la parola basta. ● Le inserisca in un array di parole ● Al termine ristampi tutte le parole Assumiamo che l'utente non sbagli MAI la procedura di inserimento Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
56.
www.torlug.org
www.cs.uniroma2.it Inizio Strutturiamo il Leggi una parola dall'input codice.. è basta NO Aggiungila nell'array ? Fine SI Stampa tutte le parole nell'array Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
57.
www.torlug.org
www.cs.uniroma2.it Vediamo il codice... Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
58.
www.torlug.org
www.cs.uniroma2.it Bug numero 1 ● Ho usato la funzione fgets senza aver letto bene il suo funzionamento sul manuale. ● Quando la funzione incontra un a capo 'n' interrompe la lettura dell'input; il problema è che memorizza anche questo carattere nel buffer. ● Quindi se l'utente scrive basta, nel buffer verrà scritto “bastan” ed il primo ciclo non sarà mai terminato. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
59.
www.torlug.org
www.cs.uniroma2.it Bug numero 2 ● Questa è un errore grave: in C le stringhe in realtà sono puntatori; il buffer usato per memorizzare le parole è sempre lo stesso! ● Quindi nelle celle dell array avremo sempre lo stesso puntatore, che conterrà l'ultima parola che ci abbiamo scritto sopra (“basta”). ● Cosi quando stampiamo le parole ne stampa una serie tutte uguali. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
60.
www.torlug.org
www.cs.uniroma2.it Bug numero 3 ● Oltre alle parole inserite, dentro l'array, vi è sempre il valore sentinella basta che completa la serie. ● In fase di inserimento bisogna controllare che nell'array non ci finisca il valore sentinella. Oppure cambiare il ciclo 1. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
61.
www.torlug.org
www.cs.uniroma2.it Errore stealth... ● Non appare su tutti i sistemi... ● E' dovuto a qualcosa che lo standard non definisce... ● Provoca un SEGMENTATION FAULT !! (ovvero accesso a memoria non allocata!) Tutti i puntatori nell'array NON sono inizializzati a NULL: ciò significa che se non lo fa automaticamente il sistema, andremo a chiamare la free() su puntatori non allocati dinamicamente. Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
62.
www.torlug.org
www.cs.uniroma2.it www.torlug.org Distributed under GNU Free Documentation License © 2007 Valerio Bruno [O(n)]
Baixar agora