Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria...

34
Uso di Linux

Transcript of Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria...

Page 1: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

Uso di Linux

Page 2: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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)

Page 3: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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.

Page 4: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 5: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 6: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 7: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 8: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 9: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 10: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

II-A.10

Labo

rato

rio d

i Pro

gram

maz

ione

File system in Linux

• La radice della struttura gerarchica è la root directory, 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

Page 11: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 12: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 13: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 14: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 15: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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)

Page 16: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 17: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 18: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 19: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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 tesi tesi: directory laren:~$ file test.ppt test.ppt: Microsoft Office Document laren:~$ file train500.pat train500.pat: ASCII text laren:~$ file tq.jpg tq.jpg: JPEG image data, JFIF standard laren:~$ file tutto.zip tutto.zip: Zip archive data, at least v2.0 to extract laren:~$ file report report: PDF document, version 1.2

Page 20: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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 (~)

Page 21: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 22: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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 directory 4 -rw-r--r-- 1 malchiod users 22 Oct 12 18:34 file

Page 23: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 24: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 25: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 26: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 27: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

Labo

rato

rio d

i Pro

gram

maz

ione

Primi programmi in Java

Page 28: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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

Page 29: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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!

Page 30: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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());

}

}

Page 31: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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%

giorno

mese

annoora

fusoorario

Page 32: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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());

}

}

Page 33: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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%

Page 34: Uso di Linux. Laboratorio di Programmazione II-A.2 Shell Una shell indica allutente la propria disponibilità ad accettare comandi visualizzando un messaggio.

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