LABORATORIO DI SISTEMI OPERATIVI. Corso di Laurea in Ingegneria Informatica A.A. 2019/2020

Documenti analoghi
Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019. Ing. Carlo Vallati

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 1 Unix - storia e filosofia Debian GNU/Linux Primi passi su Linux

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Daniele Migliorini Vanessa Gardellin & Sara Lioba Volpi

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

Introduzione ai sistemi UNIX/Linux

Introduzione ai sistemi UNIX/Linux

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 1 Unix - storia e filosofia Debian GNU/Linux Primi passi su Linux

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

Introduzione ai sistemi GNU/Linux

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Lezione 1: Introduzione alla Shell di Unix

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

Uso del terminale in ambiente UNIX

Sperimentazioni di Fisica I mod A. Introduzione a Linux

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

Introduzione a Unix e comandi principali. Sistema multitasking e multiuser. Concetto di Terminale. Login con username e password

Comandi principali di Linux (1)

File System Linux Comandi Base per orientarsi con la Bash

Introduzione alla. Alessandra Giordani Lunedì 11 marzo

Laboratorio 1: Usare Linux

SHELL: File e Filesystem

Laboratorio di Sistemi Operativi

Introduzione all uso dei laboratori aka Linux basics.

Codice Corso: UNX010. Durata: 3 giorni

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Nozioni Base di Linux

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

File System e Interprete Comandi

Laboratorio di Informatica Generale I UD Prima esercitazione

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

Introduzione all'uso del sistema operativo Ubuntu

Introduzione ai sistemi UNIX/Linux

Introduzione al calcolatore Introduzione a Unix Esercitazione. Introduzione a Unix. Programmazione 1 e Laboratorio a.a. 2013/2014. Introduzione a Unix

Lezione 3: Programmazione della Shell di Unix

L interfaccia command line di Ubuntu è il Terminale che usa un sistema command line detto bash.

LABORATORIO DI SISTEMI OPERATIVI

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Introduzione a Unix. Introduzione ad UNIX e la Shell

Bootstrap day: MININFO

LABORATORIO DI SISTEMI OPERATIVI

Linux / Unix: la shell. utenti e gruppi, shell, comandi

01 Terminale e file system

Provare e installare Linux

Esercitazione GNU/Linux n. 2

Mirko Mariotti. March 9, 2009

Introduzione ad UNIX e la Shell

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

Introduzione al sistema Linux

Lab. di Sistemi Operativi

Introduzione a Linux. Storia di UNIX

Bash: history list (I)

Laboratorio Sistemi Operativi

Introduzione a Linux Lezione 2 Provare Linux

Introduzione all uso di Linux

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

Introduzione all uso di Linux

Prima Esercitazione. Linux shell e linguaggio C

L utility Unix awk [Aho-Weinberger-Kernighan]

Il terminale per tutti

Command line kung fu

Introduzione all uso di Linux

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Lab 00 Introduzione e Sistema Unix

E' un interprete di comandi: legge ciascuna linea di comando, la interpreta e la esegue

Avvio Avviare il computer facendo partire Linux (SL - Scientific Linux 6.3).

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

Guida Linux. Molto rapida

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi e informatica 1

14. Introduzione a Linux

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

Introduzione a Unix. Barbara Guidi. Corso Informatica I /2013. Università di Pisa. Introduzione al calcolatore Introduzione a Unix Esercitazione

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Command line kung fu

Corso di Sistemi Operativi I/II. Introduzione a Linux. Il File System. Ruggero Donida Labati

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

Corso Linux. 5 febbraio

Shell di Linux e Comandi Utente

Corso GNU/Linux. Lezione 2.

Lezione 16 Virtual File System

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Cos'è Linux. Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi.

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi

Esercizi su permessi

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

Laboratorio di Sistemi Operativi Guido Fiorino

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo

Shell BASH. Variabili Redirezione

COSA È UN SISTEMA OPERATIVO (SO)? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer:

Linguistica Computazionale: esercitazioni

Transcript:

LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea in Ingegneria Informatica A.A. 2019/2020 Ing. Guglielmo Cola g.cola@iet.unipi.it (specificare "sistemi operativi" nell oggetto) www.iet.unipi.it/g.cola/sistemioperativi

Programma delle esercitazioni Introduzione ai sistemi Unix/Linux o In comune con Reti Informatiche Gestione di utenti, gruppi e dei permessi di accesso Strumenti di ricerca di file e di archiviazione Interazione tra processi: invio di segnali Gestione dei processi da terminale Gestione dei thread con la libreria pthread Strutture e primitive di accesso ai file; comunicazione fra processi mediante pipe Strumenti di sviluppo: diff, patch, make, controllo di versione.

ESERCITAZIONE 1 Introduzione ai sistemi Unix/Linux 3

Programma di oggi Breve introduzione Filesystem Interprete dei comandi (shell) Comandi di base

Unix e derivati UNIX (1969) BSD (1977) GNU (1984) FreeBSD, NetBSD OpenBSD (90s) Darwin (Mac OS) (1999) GNU/Linux (1994) Solaris (1992) Debian Ubuntu Arch Linux Gentoo 5

Caratteristiche di GNU/Linux Componenti principali: o Il kernel interagisce e controlla l hardware o Le applicazioni sfruttano il kernel per offrire servizi e funzionalità: Interprete dei comandi Software di sistema (es. pannelli di controllo) Programmi utente

Installazione di GNU/Linux La distribuzione di riferimento per il corso è Debian 8 www.debian.org Installazione su macchina fisica o Tramite CD o chiavetta USB o Utilizzo dell intero disco o su partizioni separate Installazione su macchina virtuale (es. VirtualBox) o Da zero, tramite ISO o Importando la macchina che vi forniamo (link sul sito del corso)

Utenti Utente root o Amministratore del sistema o Può compiere qualsiasi tipo di operazione Utenti normali o Utilizzatori del sistema o Hanno privilegi limitati Solitamente si crea almeno un account utente normale per l utilizzo abituale e si usa l account root solo se necessario.

FILESYSTEM Introduzione ai sistemi Unix/Linux 11

Filesystem Tutti i dischi vengono resi accessibili (montati) tramite un unico filesystem virtuale: o / è la directory principale o /home contiene le varie home directory degli utenti o /sbin contiene i programmi di sistema o /etc contiene i file di configurazione o... o /media rende accessibili i supporti rimovibili /media/cdrom /media/kingston8gb

Filesystem / bin dev etc lib home bash tty0 apache alice john grep cdrom passwd readme.txt ping Everything is a file: ogni documento, cartella, dispositivo I/O, interfaccia di rete, stream di byte, ecc., è accessibile dall unico filesystem.

Filesystem Come descrivere un percorso (path) del filesystem: Percorso assoluto si esprime l intero percorso partendo dalla radice: /home/alice/documents/todolists/groceries.txt Percorso relativo si esprime il percorso a partire dalla directory in cui mi trovo: Documents/todolists/groceries.txt Caratteri speciali: o ~ indica la nostra home directory o. indica la directory corrente o.. indica la directory padre Unix è case-sensitive!

SHELL Introduzione ai sistemi Unix/Linux 15

Shell Un interprete dei comandi, o shell, consente all utente di richiedere informazioni e servizi al SO: o Shell grafica Graphical User Interface (GUI) Più facile da usare o Shell testuale Command Line Interface (CLI) Più funzionalità; più efficace se si conoscono bene i comandi

Shell Una shell testuale ripetutamente: o Mostra un prompt o Legge un comando digitato dall utente, terminato con invio/enter/return o Esegue il comando Se non è in grado di completarlo segnala un errore Se previsto, stampa l output del comando Esistono diverse shell testuali per Unix: o sh, csh, tcsh, bash, zsh, o Differiscono per aspetto del prompt e per funzioni avanzate, i comandi di base sono gli stessi.

Bash Prompt: alice@studio:~/documents$ username host directory corrente tipo di utente cursore $: utente normale #: utente root

Accesso al sistema Login o Si accede usando username e password Comando logout o Per uscire dalla sessione o Scorciatoia: Ctrl+D Funzioni utili o Auto-completamento di comandi e directory: TAB o History dei comandi recenti: Frecce su/giù o Ricerca attraverso la storia Ctrl+R o Emulatore di terminale: Ctrl+Alt+T o Terminali virtuali: Ctrl+Alt+F1, F2, In Debian/Ubuntu F7 è l interfaccia grafica

Arresto e riavvio Comando shutdown o Per arrestare o riavviare il sistema o Di default, solo l utente root può invocarlo Arresto # shutdown -h now Riavvio # shutdown -r now comando opzione argomento dell opzione

COMANDI DI BASE Introduzione ai sistemi Unix/Linux 21

Comando cd cd (change directory) consente di passare da una directory all altra Se mi trovo in /var, posso digitare: $ cd /lib Path assoluto, vado in /lib $ cd lib Path relativo, vado in /var/lib $ cd.. Vado nella directory padre, cioè / $ cd (oppure cd ~) Vado nella mia home, es. /home/guglielmo lib / var lib

Comando pwd pwd (print working directory) stampa il percorso assoluto della directory corrente: $ pwd /var $ cd lib $ pwd /var/lib (output) (output) $ cd../.. (directory padre due volte) $ pwd / (output) $

Comando ls ls (list) serve per elencare il contenuto della directory specificata o Se non si specifica nulla, elenca la directory corrente Si possono usare percorsi assoluti o relativi Si possono specificare più percorsi o $ ls /etc /var Spesso file e cartelle sono di colori diversi

Comando ls Opzione -l (long) o Mostra dettagli (permessi, proprietario, dimensioni, data di ultima modifica) $ ls -l Opzione -a (all) o Mostra anche i file nascosti (cioè il cui nome inizia con.) $ ls -a Le opzioni sono cumulabili $ ls -a -l oppure $ ls -al

Metacaratteri (wildcards) Si usano per indicare insiemi di file o cartelle o * sostituisce zero o più caratteri o? sostituisce un singolo carattere o [a,b,c] oppure [a-z] sostituisce un carattere nell insieme specificato (anche con cifre) $ ls aa.c abc.c a.c a.h axc.c $ ls *.c aa.c abc.c a.c axc.c

Metacaratteri (wildcards) $ ls a*.c aa.c abc.c a.c axc.c $ ls?.? a.c a.h $ ls a??.c abc.c axc.c $ ls a[b-t]c.c abc.c $ ls a[4,f,x]c.c axc.c

Comando man Non sapete cosa fa un comando o come si usa? $ man nome_comando Il manuale contiene la descrizione esaustiva del comando, la sintassi, le opzioni, i messaggi di errore È diviso in sezioni (provate $ man man) Non è solo per i comandi (sezione 1) o Funzioni del kernel (2) o Funzioni delle librerie C (3) o File di configurazione (5) o Serve specificare la sezione se ci sono ambiguità: $ man printf va al comando $ man 3 printf va alla funzione C

Cercare nel manuale Comando whatis o Serve per visualizzare la descrizione breve di una pagina del manuale. Indica anche le ambiguità e le sezioni giuste. Comando apropos o Serve per ricercare una parola in nomi e descrizioni. whatis si usa per sapere velocemente cosa fa un comando, apropos per sapere che comandi ho a disposizione per fare qualcosa o Es. whatis unzip e apropos unzip

Comandi su file e directory $ mkdir nome_dir o Crea una directory $ rmdir nome_dir o Rimuove una directory, solo se vuota $ cp src dst o Copia un file in un nuovo file o all'interno di una directory $ cp src1 src2 dst_dir o Copia più file o directory in un unica directory $ mv src dst o Rinomina un file o una directory $ mv src1 src2 dst_dir o Sposta più file o directory in un unica directory

Comandi su file e directory $ touch nome_file o Aggiorna il timestamp di accesso e modifica di un file o Se il file non esiste, viene creato $ cat file1 file2 o Concatena il contenuto di due file e li stampa nello standard output o Può essere utile per visualizzare velocemente file brevi $ rm file1 file2 o Rimuove file o directory o In mancanza di opzioni, le cartelle non vengono rimosse o Per rimuovere una cartella e tutto il suo contenuto, usare -r

Lettura di file Comando less o Per visualizzare un file "un po alla volta" e interattivamente Comandi head/tail o Per visualizzare la prima/ultima parte di uno o più file o Si può specificare il numero di byte da mostrare con -c o il numero di righe con n Di default, 10 righe

Redirezione I/O I processi hanno tre canali di input/output standard: o stdin input da tastiera o stdout output su schermo o stderr messaggi di errore su schermo stdin comando stdout stderr È possibile deviare l output di un comando verso un file oppure acquisire l input da un file

Redirezione dell output > invia lo stdout a un file o Se il file non esiste viene creato o Se il file esiste viene sovrascritto $ ls -1 > filelist.txt 2> come sopra, per lo stderr &> come sopra, per entrambi >>, 2>> e &>> come sopra, ma scrivono in append invece di sovrascrivere Si possono inviare i due output su file diversi o $ comando > out.txt 2> errors.txt

Redirezione dell input < recupera l input da un file $ sort < list.txt Si può usare in combinazione con > $ sort < list.txt > sortedlist.txt

Pipeline (pipe) collega l output di un comando all input del successivo $ ls -l mydir less Si può usare più volte e in combinazione con le altre redirezioni $ cat *.txt sort uniq > result-file

su e sudo su (switch user) serve per accedere al terminale di un altro utente o Se non specificato, si accede al terminale di root o Viene chiesta la password dell utente con cui si vuole accedere sudo nome_comando serve per lanciare un comando come un altro utente o Se non specificato, si usa l utente root o Viene chiesta la password dell utente corrente o L utente deve fare parte nel gruppo sudoers

ESERCIZI Introduzione ai sistemi Unix/Linux 39

Esercizio 1 1. Aprite un terminale 2. Create la directory Esercitazione1 3. Create, senza usare un editor, un file esercitazione.txt all interno di Esercitazione1 che contenga la parola "Esercizio" o Per stampare parole usate echo parola 4. Visualizzate il contenuto del file esercitazione.txt usando il comando less (Passate a less prima il path relativo e poi il path assoluto del file) 5. Spostatevi in Esercitazione1 e subito dopo usate un comando per tornare nella vostra home

Esercizio 2 1. Visualizzate il percorso della directory corrente 2. Spostatevi in Esercitazione1 e create 3 file f1.txt, f2.txt, f3.txt contenenti rispettivamente le parole Uno, Due, e Tre 3. Con un solo comando create il file f_tot.txt partendo da f1.txt, f2.txt, f3.txt fatto come segue, e visualizzatene il contenuto: o Uno (a capo) Due (a capo) Tre 4. Cancellate i file f_tot.txt, f1.txt, f2.txt, f3.txt 5. Adesso create il file fcitta.txt fatto come segue: o Milano (a capo) Perugia (a capo) Asti 6. Visualizzate il contenuto di fcitta.txt in ordine alfabetico 7. Salvate il contenuto di fcitta.txt ordinato in un file fcittaord.txt

Esercizio 3 1. Usando la funzione di autocompletamento della shell passate fcittaord.txt al comando less. Fino a che punto riesce ad aiutarvi? 2. Create un file fcitta.c e due cartelle Testi e Sorgenti 3. Usando i metacaratteri copiate in Testi tutti i file.txt ed in Sorgenti i file.c 4. Cancellate tutti i file di testo della directory Esercitazione 5. Create 3 file chiamandoli fa.txt, fb.txt, fc.txt 6. Usate un espressione che permetta di spostare solo fa.txt ed fc.txt e non fb.txt nella cartella Testi 7. Eliminate fc.txt

Esercizio 4 1. Cancellate i file della cartella Sorgenti 2. Usando rmdir eliminate le cartelle Testi e Sorgenti o Ci riuscite? 3. Create una cartella sotto e, dentro sotto, una cartella sotto1. 4. Usate il manuale per trovare l opzione di rmdir che permette di cancellare con lo stesso comando sotto e sotto1 5. Create una cartella origine e dentro origine create la cartella sotto_origine ed il file qwerty.txt 6. Create la directory destinazione e copiate al suo interno il contenuto di origine. Se usate cp senza opzioni cosa succede? Come dovete fare? 7. Adesso copiate non solo il contenuto ma tutta la cartella origine in destinazione

Esercizio 5 1. Visualizzate il contenuto di destinazione 2. Adesso usate l opzione di ls che visualizza anche i permessi 3. All interno di destinazione create il file.youcantseeme 4. Visualizzatelo con ls 5. Salvate l output di ls /etc in un file ls_output.txt 6. Visualizzate o Solo la parte iniziale del file o Solo la parte finale o Solo la prima riga o Solo le ultime 2 righe 7. Con un solo comando salvate sul file terza.txt solo la terza riga del file