Uso di Linux - Home di homes.di.unimi.it Laboratorio di Programmazione Estensione di un file •...

34
Uso di Linux

Transcript of Uso di Linux - Home di homes.di.unimi.it Laboratorio di Programmazione Estensione di un file •...

Uso di Linux

II-A.2

Labo

rato

rio d

i Pro

gram

maz

ione

Shell

• Una shell indica all’utente la propria disponibilità ad accettare comandi visualizzando un messaggio (prompt)

II-A.3

Labo

rato

rio d

i Pro

gram

maz

ione

Logout

• Complementare al login, è la procedura con cui un utente termina di utilizzare delle risorse che si rendono in questo modo disponibili ad altri utenti.

• Viene effettuata selezionando la voce “logout” nel menu.

• exit o Ctrl+D permettono di chiudere una shell.

II-A.4

Labo

rato

rio d

i Pro

gram

maz

ione

Gestione del file system

• Il file system è la componente del sistema operativo preposta alla gestione delle informazioni memorizzate permanentemente, che risiedono tipicamente su disco.

• Le componenti di un file system sono– Il file– La directory

II-A.5

Labo

rato

rio d

i Pro

gram

maz

ione

File system strutturati

• La possibilità di inserire directory nelle directory fornisce l’opportunità di creare dei file system strutturati, in cui le informazioni sono memorizzate in modo ordinato

• In file system ben strutturati risulta più facile localizzare ed accedere alle informazioni in modo veloce

II-A.6

Labo

rato

rio d

i Pro

gram

maz

ione

Gerarchia del file system• Un file system ha una struttura gerarchica (in

particolare, ad albero) nella quale

– I file sono le estremità (foglie)

– Le directory sono i nodi rimanenti

– Esiste un’unica directory (radice) cui tutta la struttura fa capo

II-A.7

Labo

rato

rio d

i Pro

gram

maz

ione

Gerachia del file system

root

boot

bin dev

etc

lib

mnt opt root

sbin

tmp

usr

var

proc

home

casiraghi

Progr_Lab_Programmazione

II-A.8

Labo

rato

rio d

i Pro

gram

maz

ione

File system• /bin: eseguibili• /boot: file per l’esecuzione del s.o.• /dev: device driver• /etc: file di configurazione• /home: home directory degli utenti• /lib: librerie di sistema• /mnt: mount point per file system esterni• /opt: packages e add-on• /root: directory dell’amministratore• /sbin: eseguibili di sistema• /tmp: file temporanei• /usr: applicazioni• /var: file variabili (ad es. log, aree di spool)• /proc: processi in esecuzione ed informazioni sul sistema

II-A.9

Labo

rato

rio d

i Pro

gram

maz

ione

Pathname

• Ogni file all’interno del file system èindividuato in base alla sua posizione nell’albero, cioè al cammino (pathname o path) che si deve percorrere per raggiungerlo partendo dalla radice

• se voglio indicare il programma del corso di informatica devo specificare il cammino:

root+home+casiraghi+Progr_Lab_Programmazione

II-A.10

Labo

rato

rio d

i Pro

gram

maz

ione

File system in Linux

• La radice della struttura gerarchica è la rootdirectory, indicata dal carattere slash (/)

• I nodi di un pathname sono separati dal carattere slash (/)

• Ogni disco dell’elaboratore è individuato da un mount point nella struttura gerarchica

II-A.11

Labo

rato

rio d

i Pro

gram

maz

ione

Visualizzazione di directory

• Il comando pwd visualizza il pathname della directory in cui si è attualmente posizionati (directory corrente)

laren:~$ pwd

/home/malchiod

• Quando si esegue un terminale, la directory corrente è automaticamente impostata alla propria home directory

II-A.12

Labo

rato

rio d

i Pro

gram

maz

ione

Visualizzazione di directory

• Il comando ls permette di visualizzare il contenuto della directory corrente

• Se dopo ls si specifica il nome di una directory, vengono visualizzati i contenuti di quest’ultima

– . indica la directory corrente

– .. indica la directory che contiene la directory corrente

II-A.13

Labo

rato

rio d

i Pro

gram

maz

ione

Path assoluti e relativi

• Il nome di una directory può essere indicato specificando

– Un pathname assoluto, specificando tutto il percorso a partire dalla root directory

– Un pathname relativo, specificando uno dei possibili percorsi a partire dalla directory corrente

II-A.14

Labo

rato

rio d

i Pro

gram

maz

ione

Spostamento tra directory

• Il comando cd permette di cambiare la directory corrente

– Se non vengono specificati argomenti, ci si posiziona nella home directory

– Se viene specificato come argomento il pathname(assoluto o relativo) di una directory, ci si posiziona in quest’ultima

II-A.15

Labo

rato

rio d

i Pro

gram

maz

ione

Operazioni con le directory

• Creazione: tramite il comando mkdir• Eliminazione: tramite il comando rmdir

(eseguito solo se la directory è vuota)• Eliminazione di una directory e del suo

contenuto: tramite il comando rm -rf(ATTENZIONE!)

• Altre operazioni (spostamento, variazione del nome, …): tramite gli stessi comandi visti per i file (vedi oltre)

II-A.16

Labo

rato

rio d

i Pro

gram

maz

ione

Wildcard

• Nello specificare i pathname di file o directory, è possibile indicare un’espressione contenente dei caratteri jolly (o wildcard)

– * indica una qualunque sequenza di caratteri– ? indica un qualunque carattere– [] indica un qualunque carattere appartenente alla

sequenza indicata tra le parentesi

II-A.17

Labo

rato

rio d

i Pro

gram

maz

ione

Esempi

Diventa

m* m, ma, mb, …, maa, mab, …

m?lo malo, mblo, mclo, mdlo, …

m[aeiou]lo malo, melo, milo, molo, mulo

II-A.18

Labo

rato

rio d

i Pro

gram

maz

ione

Operazioni su file

• Creazione: tramite il comando touch

• Apertura– di file eseguibili: scrivendone il nome– di file di dati: tramite le relative applicazioni

• Visualizzazione dei contenuti: tramite i comandi cat, more e less

• Spostamento e/o modifica del nome: tramite il comando mv (vale anche per le directory)

• Cancellazione: tramite il comando rm

II-A.19

Labo

rato

rio d

i Pro

gram

maz

ione

Estensione di un file• Linux è in grado di capire il formato dei file leggendo

parte del loro contenuto (intestazione). Il comando file effettua tale riconoscimento

• È comunque possibile aggiungere delle estensioni significative al nome di un file

Esempi laren:~$ file tesitesi: directorylaren:~$ file test.ppttest.ppt: Microsoft Office Documentlaren:~$ file train500.pattrain500.pat: ASCII textlaren:~$ file tq.jpgtq.jpg: JPEG image data, JFIF standardlaren:~$ file tutto.ziptutto.zip: Zip archive data, at least v2.0 to extractlaren:~$ file reportreport: PDF document, version 1.2

II-A.20

Labo

rato

rio d

i Pro

gram

maz

ione

Home directory

• Ogni utente abilitato ad accedere al sistema ha una propria home directory contenuta in /home e avente come nome il proprio nome utente

• Nell’indicazione di un pathname, la home directory dell’utente attualmente connesso è abbreviabile usando il carattere tilde (~)

II-A.21

Labo

rato

rio d

i Pro

gram

maz

ione

Permessi su file

• gli utenti possono specificare i seguenti permessi di accesso– Read (R) indica se possono essere letti i

contenuti di un file o di una cartella

– Write (W) indica se è possibile modificare il contenuto di un file o di una cartella

– Execute (X) indica se è possibile eseguire un file o posizionarsi all’interno di una cartella

II-A.22

Labo

rato

rio d

i Pro

gram

maz

ione

Permessi sui file (2)

• i permessi sui file sono specificabili su tre livelli– Relativamente all’utente che li crea– Relativamente agli utenti facenti parte dello

stesso gruppo dell’utente che li crea– Relativamente ai rimanenti utenti

• Sono specificati da un terzetto di caratteri

laren:~$ ls –lstotal 8

4 drwxr-xr-x 2 malchiod users 4096 Oct 12 18:46 directory4 -rw-r--r-- 1 malchiod users 22 Oct 12 18:34 file

II-A.23

Labo

rato

rio d

i Pro

gram

maz

ione

Documentazione

• Il comando man permette di visualizzare una descrizione delle funzionalità dei vari comandi utilizzabili all’interno di un terminale

• Esempi– man ls

– man cd

– man man

II-A.24

Labo

rato

rio d

i Pro

gram

maz

ione

Ricerche nel file system

• find esegue una ricerca ricorsiva a partire da una directory specificata. È una utility molto potente (è possibile specificare nomi parziali, indicare le date entro cui effettuare la ricerca, …). Risulta però complessa da utilizzare

• locate esegue una ricerca su un archivio aggiornato periodicamente

II-A.25

Labo

rato

rio d

i Pro

gram

maz

ione

Completamento automatico

• Spesso non è necessario scrivere per esteso il nome di un file: basta– iniziare a scriverne il nome– premere il tasto di tabulazione

• Se i caratteri scritti individuano uno e un solo file nella directory corrente, il suo nome viene automaticamente “completato” dalla shell

II-A.26

Labo

rato

rio d

i Pro

gram

maz

ione

Completamento automatico

• Se i caratteri inseriti non individuano un unico file la pressione di TAB non ha effetti visibili e viene emesso un suono

• Premendo una seconda volta TAB si otterrà un elenco dei file compatibili con i caratteri specificati

• Il completamento automatico funziona anche con i nomi di comandi della shell

Labo

rato

rio d

i Pro

gram

maz

ione

Primi programmi in Java

II-A.28

Labo

rato

rio d

i Pro

gram

maz

ione

Il processo di sviluppo

• Passo 1: scrivere il programma– Software: un qualsiasi text editor

• Passo 2: compilare il programma– Software: Java Development Kit (JDK)– Comando: javac HelloWorld.java

• Passo 3: eseguire il programma– Software: JDK o Java Runtime environment– Comando: java HelloWorld

II-A.29

Labo

rato

rio d

i Pro

gram

maz

ione

HelloWorld.java/* Questo è il nostro primo programma

scritto in java */

public class HelloWorld {

public static void main(String args[]) {

System.out.println("Hello, world!");

}

}

// Ora Analizziamolo!

Non usate il procedimento di copia-e-incolla: copiatelo a mano!

II-A.30

Labo

rato

rio d

i Pro

gram

maz

ione

HelloDate.java/* HelloDate stampa la data corrente */

import java.util.Date;

public class HelloDate {

public static void main(String args[]) {

System.out.print("Sono le ");

System.out.println(new Date());}

}

II-A.31

Labo

rato

rio d

i Pro

gram

maz

ione

Eseguiamolo!

[~/HelloDate]malchiod%javac HelloDate.java

[~/HelloDate]malchiod% java HelloDate

La data corrente e' Mon Oct 13 14:50:16 CEST 2003

[~/HelloDate]malchiod%

giornomese

annoorafuso

orario

II-A.32

Labo

rato

rio d

i Pro

gram

maz

ione

HelloDateLungo.java/* HelloDateLungo stampa la data corrente */

import java.util.*;

public class HelloDateLungo {

public static void main(String args[]) {

System.out.print("Sono le ");

System.out.println(new Date());

}

}

II-A.33

Labo

rato

rio d

i Pro

gram

maz

ione

Eseguiamolo![~/HelloDate]malchiod% javac HelloDateLungo.java

[~/HelloDate]malchiod% java HelloDateLungo

La data corrente e' Mon Oct 13 14:50:19 CEST 2003

[~/HelloDate]malchiod%

II-A.34

Labo

rato

rio d

i Pro

gram

maz

ione

Dove sta la differenza?[~/HelloDate]malchiod% ls -lsa

total 32

0 drwxr-xr-x 204 Oct 13 14:50 .

0 drwxr-xr-x 204 Oct 13 14:47 ..

8 -rw-r--r-- 516 Oct 13 14:50 HelloDate.class

8 -rw-r--r-- 185 Oct 13 14:49 HelloDate.java

8 -rw-r--r-- 526 Oct 13 14:50 HelloDateLungo.class

8 -rw-r--r-- 187 Oct 13 14:50 HelloDateLungo.java

permessi dimensione nome.estensionedata/oradi creazione