Laboratorio di Internet I Il sistema operativo Linux

Documenti analoghi
Uso del terminale in ambiente UNIX

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Shell BASH. Variabili Redirezione

Lezione 2: Comandi avanzati della Shell di Unix

PROGRAMMAZIONE CONSUNTIVA Codice Mod. RQ 23.2 Pag 1/5. Sistemi e Reti (articolazione Telecomunicazione) Classe

Introduzione all'uso del sistema operativo Ubuntu

Shell di Linux e Comandi Utente

File System I parte. File System

Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Mirko Mariotti. March 9, 2009

Introduzione all uso dei laboratori aka Linux basics. October 23, 2013

Manipolazioni elementari di flussi di testo strutturati

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Introduzione ai sistemi UNIX/Linux. Introduzione ai sistemi UNIX/Linux

Laboratorio di Programmazione

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del Shell

Università degli Studi di Verona. Linux Ubuntue ilcompilatorec. Dicembre Sergio Marin Vargas. Dipartimento di Biotecnologie

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Domenico De Guglielmo Vanessa Gardellin & Sara Lioba Volpi

NOZIONI BASE SHELL E SCRIPT LINUX

Guida Linux. Molto rapida

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

I Metacaratteri della Shell Unix

Il terminale per tutti

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino

Corso di Laboratorio di Sistemi Operativi

File Leggimi di Parallels Tools

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Introduzione ai sistemi UNIX/Linux

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Installazione del driver Custom PostScript o del driver della stampante PCL per Windows

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script

IL SOFTWARE DI SISTEMA

Università degli Studi di Verona. Dipartimento di Biotecnologie. BreveguidaLinux. Ottobre Sergio Marin Vargas

GNU/Linux Concetti di base

Sistemi Operativi 8 Laboratorio linea 2

cambiare utente mediante il comando su verificare chi siete e su che dir state lavorando Chi siete e che dir? (Inserisci la risposta)

Sistema Operativo (Software di base)

Installazione di Ubuntu Mauro Piccolo

Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Installazione del driver Custom PostScript o del driver della stampante PCL per Windows

Il formato delle ricette Convenzioni tipografiche Versioni, ultima edizione ed errata corrige

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 1

Sistema operativo & file system 1

PRECORSO DI INFORMATICA. Laboratorio Prima Parte

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. 16/02/2007 Marco Marchisotti

Sintassi: alias nome_nuovo= comando_intero Se si usa il comando senza argomenti vengono mostrati tutti gli alias in uso.

Laboratorio di Algoritmi e Strutture Dati

Fondamenti di GNU/Linux

Utilizzo di putty. L uso base e molto semplice: richiede solo di specificare:

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Introduzione a GNU/Linux

Informatica di Base

Samsung Universal Print Driver Guida dell utente

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Strumento di impostazione dello spegnimento automatico

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Manuale EacqCE_Daemon. Versione manuale Copyright 2011 MMS Srl. Manuale EacqCE_Daemon Pagina 1

Ingegneria del Software 1: Eclipse

Terza lezione: Directory e File system di Linux

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Mini-Corso di Informatica

Laboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 28 Marzo 2012

Lavorare in ambiente UNIX. Prompt dei comandi (shell) Pipe e filtri (I/O) Tips and tricks

Laboratorio Multimediale Lezione n. 2

Eldy Manuale di installazione per Linux - Ubuntu - Debian

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per utenti singoli)

Linux e i software liberi. di Nardean Lorenzo e Redigolo Marco

Bioinformatica II. Esercitazione 2 GUIDA

Corso ForTIC C2 LEZIONE n. 5. I principali comandi utente e il loro uso Pipeline e ridirezioni

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

I comandi del DOS. Come si fornisce un comando al DOS

Laboratorio di Programmazione Strutturata

Sharpdesk V3.5. Guida di installazione: Edizione con chiave del prodotto. Versione 1.0

installazione pacchetti mandriva 1 aprire il centro di controllo

Installazione dell SDK sotto Windows

Il sistema operativo UNIX/Linux. Gli script di shell

ASSOCIA CONTATTI DI DAVID TÄNZER. Manuale Utente ASSOCIAZIONE, RIMOZIONE ASSOCIAZIONI, RICERCA ASSOCIAZIONI E SALVATAGGIO DI ELEMENTI DI OUTLOOK

Corso di Informatica

Cosa è un sistema operativo?

Manuale versione Mobile (Smartphone Tablet)

Primi passi col linguaggio C

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Università degli Studi di Verona. Dipartimento di Biotecnologie. Introduzione a Linux. Dr. Sergio Marin Vargas

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

EXCEL: FORMATTAZIONE E FORMULE

Note_Batch_Application 04/02/2011

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Definizione di metodi in Java

Introduzione al Foglio Elettronico

Corso di avvicinamento al Software Libero. Parte 3 Shell e Comandi

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

LINUX. Multitasking: possibilità di eseguire più programmi contemporaneamente

EXCEL: FORMATTAZIONE E FORMULE

Transcript:

Università di Roma Sapienza Sede di Latina 25 Febbraio 2014 Laboratorio di Internet I Il sistema operativo Linux Luca Chiaraviglio Ingegneria dell Informazione

Outline Breve storia di Linux Concetti base Comandi principali Script di shell Script AWK Come accedere alle postazioni di laboratorio Scaricamento di programmi aggiuntivi

Linux: come e quando Figlio del sistema operativo UNIX UNIX: svilippato nel 1969 da AT&T e Bell Laboratories (principalmente Ken Thompson e Dennis Ritchie) nell ambito di un progetto di ricerca per la simulazione dei movimenti di stelle e pianeti. Linux: svilippato nel 1991 da Linus Torvalds per funzionare sulle nuove macchine commerciali i386. Architettura di kernel monolitico. Il kernel è liberamente disponibile e modificabile. Ampiamente utilizzato in ambito accademico e industriale.

Unix: una grande famiglia

Login Si accede al sistema mediante una username e una password. Diversi utenti associati ad una stessa macchina Utente privilegiato: root. Consente di operare modifiche amministrative al sistema. Dopo il login, il sistema esegue un programma chiamato shell. Con interfaccia grafica, la shell è disponibile cliccando sull icona del terminale. Ciascun programma in esecuzione è chiamato processo.

Il prompt dei comandi Una volta aperto il terminale, l utente può eseguire dei comandi. L utente normale (non privilegiato) può eseguire solo un sottoinsieme di comandi. L utente root (privilegiato) può eseguire l intero set dei comandi. $ -> utente non privilegiato # -> utente privilegiato

Funzionamento della shell Sono disponibili diversi tipi di shell, ma la più utilizzata in ambito Linux è la shell bash. Dalla shell è possible digitare il nome dei comandi assieme ai loro parametri, eseguirli, ed ottenere il risultato. I comandi generalmente stampano un output nella shell. Qualunque comando può essere interrotto prima della fine della sua esecuzione premendo Ctrl-c.

Tipi di file File Ordinari, usati per documenti di testo, input file per i programmi e anche programmi eseguibili File di directory, ovvero contenitori di altri file. File speciali, utilizzati per la comunicazione fra diversi processi, e per la comunicazione fra il processo e I dispositivi di hardware. I file di directory possono contenere al loro interno altre directory, costituendo una gerarchia.

Tipi di file e gerarchia Root directory (/) dev bin home A Chiaraviglio File di cartelle B File Speciali File Ordinari

Path name & Directory Per individuare un file all interno del file sistema si usa un pathname Un pathname è una lista di cartelle separate da / Esempio di pathname assoluto /home/chiaraviglio/b Esempio di pathname relativo /chiaraviglio/b Directory corrente:. Directory padre della directory corrente:..

Navigazione nella gerarchia dei file Per conoscere il pathname assoluto della directory corrente pwd (present working directory) Per cambiare directory si usa il comando cd (change directory) cd -> per tornare alla directory home cd.. -> per tornare alla directory superiore cd / -> per andare alla directory root cd./chiaraviglio -> sono nella directory home e voglio andare nella directory chiaraviglio cd /dev -> per andare nella directory /dev

Visualizzazione del contenuto di una cartella Per visualizzare il contenuto di una cartella, si usa il comando ls Digitando man ls otteniamo la descrizione del comando e le relative opzioni. Alcune opzioni: ls l -> stampa informazioni più dettagliate ls a -> stampa anche I file nascosti Esempio di output ls l serverone@serverone-poweredge-t320:~$ ls -l total 556 drwxr-xr-x 34 serverone serverone 4096 Feb 4 15:03 Desktop drwxr-xr-x 3 serverone serverone 4096 Oct 8 17:56 Documents drwxr-xr-x 2 serverone serverone 4096 Oct 8 17:03 Downloads drwx------ 107 serverone serverone 4096 Feb 4 13:51 Dropbox

Tree Directory di Linux

Gestione dei file e directory Creazione di directory mkdir <nome_directory> Copia dei file di una directory cp <directory_sorgente> <directory_destinazione> Copia di file in una directory cp <file 1> <file 2> <directory di destinazione> Rimozione di una directory rmdir <directory> Rimozione di un file rm <file>

Manipolazione dei file Stampare sulla shell il contenuto di un file cat <file> Stampare sulla shell il contenuto più file cat <file 1> <file 2> <file N> Contare il numero di linee, parole e caratteri su un file: wc <file> (wc non vuol dire bagno ma word count J ) Con i comandi man cat e man wc possiamo ottenere informazioni sulle possibili opzioni. Alcune opzioni interessanti: cat n <file> -> stampa il file con le righe numerate wc l <file> -> stampa solo il numero di righe

Visualizzazione dei file Oltre al comando cat, è possibile visualizzare parte di un file. head -<numero di righe> <file> Stampa soltanto le prime <numero di righe> di <file> Esempio: head -5 /etc/passwd tail -<numero di righe> <file> Stampa soltanto le ultime <numero di righe> di <file> tail -10 /etc/passwd

Sicurezza su Linux Semplice sistema di sicurezza basato su permessi. Sistema multi-utente: più utenti attivi sulla stessa macchina. Quattro classi di utente predefinite: - root: classe degli utenti privilegiati - Owner: utente che attualmente possiede il file - Group: classe di utenti che condividono l accesso di gruppo al file - World: tutti gli utenti che non appartengono alle altre categorie.

I permessi Ogni utente possiede dei permessi su un file. Possibili permessi: -r: lettura (Read) -w: scrittura (Write) -x: esecuzione (exectution) Tramite il comando ls l <nome_del_file> otteniamo I permessi associati al file. Esempio: ls -l /etc/passwd -rw-r--r-- 1 root root 2245 Feb 5 14:26 /etc/passwd Tipo di file e permessi Il proprietario è root (terzo campo), e il gruppo associato al file è quello root (quarto campo).

Modifica dei permessi Sovente occorre modificare i permessi di un file. Si utilizza il comando chmod chmod <nuovi_permessi> <file> I permessi si impostano secondo il seguente formato: <permessi proprietario> <permessi gruppo> <permessi mondo> r w x r w x r w x 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 Si associa uno 0 se il permesso è disabilitato, 1 se è abilitato

Modifica dei permessi - Esempio Supponiamo di cambiare i permessi del file prova.txt - Permessi di lettura, scrittura, esecuzione per il proprietario del file - Permessi di lettura per il gruppo del file - Nessun permesso per gli altri utenti 1) Scriviamo i permessi in formato binario rwx rwx rwx 111 100 000 2) Passiamo da formato binario a decimale 7 4 0 3) Impostiamo i permessi con chmod chmod 740 prova.txt 4) Controlliamo i permessi impostati con ls l prova.txt

Espansione della shell La shell mette a disposizione dei caratteri speciali per effettuare operazioni su file. Tutti i file della directory corrente: * Esempio: cp /home/chiaraviglio/* /tmp Tutti i caratteri possibili: Esempio: ls /dev/tty??

Redirezione dell output Per default ogni comando stampa su schermo il risultato ottenuto. Si può redizionare l output su un file con il comando > Esempio: cat /etc/passwd > /home/chiaraviglio/prova.txt Per redizionare l output in coda ad un file si usa il comando >> Allo stesso modo si possono redizionare i messaggi di errore con il comando 2> Infine si possono redizionare l output e I messaggi di errore con il comando: &>

Funzioni di ricerca Per cercare una parola all interno di un file si usa il comando grep <parola> <nome_file> Esempio: grep chiaraviglio /etc/passwd La parola può essere sostituita da un espressione regolare. Per cercare un file si usa il comando find <pathnames> -<espressione> Dove <pathnames> è una lista di nomi di cartelle che viene ricercata ricorsivamente e <espressione> è una lista di espressioni che definiscono condizioni e azioni da eseguire su ciascun file. Esempi: find. -print find / -name passwd print 2>/dev/null

Funzioni di ordinamento Per ordinare un insieme di righe di un file dato un criterio si usa il comando: sort <opzioni> <file_di_input> Il file ordinato viene stampato su output. Esempio: sort /etc/passwd Principali opzioni: -f -> non fa distinzione fra maiuscole e minuscole -n -> tratta la chiave di ricerca come numerica invece che come stringa -r -> ordinamento inverso -t <s> -> usa il carattere <s> invece che lo spazio come separatore dei campi -k <c1>,<c2> -> usa i campi da <c1> a (<c2> - 1) come chiave di ricerca

Funzioni di ordinamento - esempi sort /etc/passwd sort t: -k3,4 /etc/passwd ATTENZIONE: mai fare la redirezione di un sort sullo stesso file: sort prova.txt > prova.txt

Trasformazioni di caratteri Linux mette a disposizione un filtro che legge da standard input e produce una versione modificata su standard output. La versione modificata consiste nel modificare tutti i caratteri della stringa <str1> nei corrispettivi caratteri della stringa <str2> Si usa il seguente comando: tr <str1> <str2> Esempio: tr ABC abc tr :. tr \t In alternativa, il comando tr può essere usato per rimuovere occorrenze multiple dei caratteri di <str1> tr s <str1> Esempio: tr s

Selezionare le colonne di un file Spesso occorre selezionare una specifica colonna all interno di un file. Si usa il comando: cut d<delimitatore> -f<campi> <file_di_input> Dove <delimitatore> è il carattere che separa le colonne, <campi> sono le colonne che si vogliono selezionare e <file_di_input> è il file di ingresso. Esempio: cut d: f1 /etc/passwd cut d: -f1,6 /etc/passwd cut d: -f1-6 /etc/passwd

Incollare assieme più file Spesso occorre incollare più file in modo che le colonne siano affianciate. Si usa il comando: paste <file1> <file2> Esempio: paste /etc/passwd /etc/passwd

Altre funzioni Ottenere la data corrente date Rimuovere le linee duplicate da un file di input uniq <nome_del_file> Confrontare due file cmp <file1> <file2> Stampare una stringa echo <str> Opzioni -n -> Stampa senza andare a capo.

Le pipe La shell mette a disposizione una funzionalità molto sfruttata: la pipe. Consiste nel concatenare una serie di comandi. L output di un comando diventa l input per il comando successivo. L output finale produce il risultato dell applicazione dei comandi. Esempio: ls /usr/bin wc w

Mettere più comandi in pipe Grazie alla pipe, è possibile concatenare assieme i comandi che abbiamo visto fino ad ora. Esempio: cat /etc/passwd cut d: -f7 sort uniq cat cut d: -f7 sort uniq /etc/passwd output su schermo

Script di shell I comandi visti fino ad ora possono essere eseguiti in un file ed eseguiti. Estensione tipica.sh. Esempio: bash script.sh La shell mette a disposizione anche dei parametri di ingresso $1 = primo parametro $2 = secondo parametro e così via Esempio: bash script.sh param1 param2 Dentro il file script.sh primo_parametro=$1; secondo_parametro=$2;

Script di shell le variabili Dentro lo script è possibile definire le variabili (non è necessario definire il tipo). Esempi: numero=2; stringa= sequenza_di_caratteri vettore1=[1 2 3 4 5]; vettore2= a b c d e f g ; risultato_comando= `cat /etc/passwd grep chiaraviglio `; Per estrarre il valore di una variabile, si usa il comando $ Esempi echo $numero echo $stringa echo $risultato_comando file= Prova.txt ; cat $file

Script di shell for Il ciclo for si può fare in due modi for((i=0; i<$max; i++)) do <azioni> done vett=[1 2 3 4 5]; for index in $vett do <azioni> done Nel secondo caso, il vettore può essere anche una sequenza di stringhe. Esempio: vett= Roma Torino Milano Bari Palermo ;

Script di shell while & if while <condizione> do <azioni> done ATTENZIONE -> Per decrementare un contatore, si utlizza la seguente sintassi: count=$[$count-1]; if <condizione> then <azione true> else <azione false> fi Per l if la parte else è opzionale.

Script di shell condizioni La <condizione> per l if e il while si implementa con il comando test <espressione> Esempi di espressione <str1> = <str2> <str1>!= <str2> <num1> -eq <num2> -> true se uguali <num1> -ne <num2> -> true se non uguali <num1> -lt <num2> -> true se minore di <num1> -gt <num2> -> true se più grande di <num1> -le <num2> -> true se minore o uguale di <num1> -ge <num2> -> true se maggiore o uguale di <exp1> -a <exp2> -> true se entrambe le espressioni sono true <exp1> -o <exp2> -> true se una delle espressioni è true

AWK Linguaggio di scripting specificatamente progettato per elaborare file di testo e aggiungere funzionalità computazionali alla shell. Come si invoca: awk f <file_di_script> <input_file1> <input_file2> La struttura tipica di un file di script è la seguente: BEGIN { <azioni da compiere prima di aprire il file> } { <azioni da compiere durante la lettura di <input_file_1> } END { <azioni da compiere dopo la lettura del file> }

AWK cicli for e while Questi costrutti sono del tutto analoghi a C e C++; Esempi for (i=0; i<50; i++) { <azione> } i=60; while(i<60) { <azione> i=i-1; }

AWK printf e modifica di singoli campi Per stampare su output il valore di una variabile si usa la funzione printf. Esempio; stringa= blablablabla ; printf( %s\n, stringa); Per ogni riga del file di ingresso, è possibile ricavare il valore di ciascuna variabile. Esempio: { for(i=1; i<=nf; i++) { printf( %s, $i); } }

AWK operazioni su variabili Con awk è possibile maneggiare in maniera del tutto semplice le variabili e l input di un file di ingresso. Esempio: Supponiamo di voler calcolare la somma degli elementi di ciascuna riga del seguente file prova.txt : 10 20 30 40 50 1 2 3 4 5 awk f script.awk prova.txt script.awk { tot_value=0; for(i=1; i<=nf; i++) { tot_value=tot_value+$i; } printf( %d\n, tot_value); }

Accesso alle postazioni del laboratorio Sulle macchine del laboratorio è già installata una distribuzione di Linux (Ubuntu). Nome utente: labint Password: lablint In alternativa, è possibile installare una versione di Ubuntu su macchine Windows utilizzando il software Wubi (soluzione molto comoda).

Installazione di programmi Per installare un nuovo programma su una distribuzione Ubuntu, solitamente si utilizzano i repository di pacchetti. Esempio: supponiamo di voler installare il programma ethtool. Per installare il programma, occorre innanzitutto aggiornare la lista dei repository, mediante il comando: sudo apt-get update Siccome l installazione di un programma richiede privilegi di root, utilizziamo il comando sudo per ottenerli. Ci verrà richiesta la password (lablint per le macchine del laboratorio). A questo punto installiamo il programma con il comando: sudo apt-get install <nome_programma> (nel nostro esempio: sudo apt-get install ethtool)

Fine Lezione!!