LINUX LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT



Documenti analoghi
LINUX LORENZO BRACCIALE

Shell di Linux e Comandi Utente

Usare Python in Linux

Introduzione alla. Alessandra Giordani Lunedì 27 febbraio

Il Sistema Operativo Linux

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

Il software del PC. Il BIOS

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

Benvenuti/e.

Il sistema operativo UNIX/Linux. Gli script di shell

Il Software. Il software del PC. Il BIOS

Terza lezione: Directory e File system di Linux

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Controllo di processi

NOZIONI BASE SHELL E SCRIPT LINUX

Software di base. Corso di Fondamenti di Informatica

AMBIENTE DEV PASCAL. Dev-Pascal Finestra di apertura

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

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

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

GNU/Linux Concetti di base

I Sistemi Operativi. Installazione Ubuntu Linux su Macchina Virtuale

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

1. opzione 1, ubuntu accanto a windows

Corso Linux base: primo incontro. Sommario. Alessandro Pasotti License: Creative Commons Attribution Share Alike 3.

Mac Application Manager 1.3 (SOLO PER TIGER)

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

La Shell di una distribuzione GNU/Linux

PAD: istruzioni di laboratorio

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

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Sistemi operativi. Esempi di sistemi operativi

Informatica. Il software (S.O.) e ancora sulle basi numeriche

I Metacaratteri della Shell Unix

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Laboratorio di Programmazione

Il sistema operativo LINUX Esercitazione 3

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Il Sistema Operativo (1)

Organizzazione Monolitica

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

NOZIONI BASE PER ESERCITAZIONI

Editor vi. Editor vi

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

LPIC-1 Junior Level Linux Certification

LINUX - *** KIT DI MINIMA SOPRAVVIVENZA *** - UNIX - v0.05 -

GDB. The GNU Debugger

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

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

Lesson #6. Miscellaneous. Roberto De Virgilio

Nozioni di Informatica di base. dott. Andrea Mazzini

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell

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

Corso di Informatica

Puppy Linux (Precise) Live da CD o da USB (Si può usare su PC con 256 MB di RAM)

Il computer: primi elementi

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

2. Strutture dei Sistemi Operativi

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

CdL in Medicina Veterinaria - STPA AA

Installazione LINUX 10.0

Filesystem. Il file system è organizzato in blocchi logici contigui

Ingegneria del Software 1: Eclipse

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Installazione di GFI WebMonitor

Setup dell ambiente virtuale

Lab 01 Sistemi Operativi

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Introduzione a LyX. Creazione di un documento Struttura e stile Modelli di documento Automatismi Riferimenti...

Le command line di Java

Lezione 15 File System

Introduzione al Linguaggio C

Introduzione al Python

Esercizi di JavaScript

19. LA PROGRAMMAZIONE LATO SERVER

Il sistema di elaborazione

NozionidiBase di Informatica

Laboratorio Multimediale Lezione n. 2

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Sequenza di avvio di Linux:

Introduzione a Dev-C++

HARDWARE. Relazione di Informatica

Struttura del sistema operativo GNU/Linux

Esercizio 2. Client e server comunicano attraverso socket TCP

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

ALL FOR SCAN Versione Twain Manuale Utente. Versione 2.0A00. Luccarelli Srl

POLINUX. Linux for Polimi people


Intel One Boot Flash Update Utility Guida dell utente

System Center Virtual Machine Manager Library Management

01/05/2013 Istruzioni per l installazione

GNU/Linux 101. intro to system administration. Manifatture KNOS 22 Gennaio This work is licensed under a

IPC System V. Code di messaggi

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

SHELL GNU/Linux Bash. Conoscere e configurare il proprio ambiente bash. Kernel speaks: dmesg

Transcript:

LINUX LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT

IL SISTEMA OPERATIVO Strato software che opera sopra l hardware e gestisce l elaboratore Windows, Linux, MacOs X, Symbian, etc. Funzioni Astrazione e gestione delle risorse hardware Processore, Memoria, Dischi, etc, Multitasking Interfacce standard Sicurezza Prestazioni I programmi vedono l elaboratore solo tramite il Sistema Operativo

LINUX Kernel (nucleo del sistema operativo) scritto nel 1991 da Linus Torvalds studente di 21 anni dell università di Helsinki attulmente 6 milioni di righe di codice C Usato in supercomputer Dispositivi embedded

VERSIONI

GNU Acronimo ricorsivo GNU s not Unix Progetto lanciato da da Richard Stallman nel 1984 per la creazione di un sistema operativo libero Il kernel GNU Hurd aveva problemi Sistema operativo GNU/Linux spesso chiamato Linux Adotta come kernel Linux Software GNU (e Linux) rilasciati con licenza GNU Public Licence (GPL) Software libero Licenza virale more info @ http://www.gnu.org/copyleft/gpl.html

IL SISTEMA OPERATIVO GNU/LINUX Compiler Editor Human Interface Filesystem Networking OS Kernel Scheduler Device Drivers Memory Management Debugger Build Automator GPL

UNA DISTRIBUZIONE LINUX GUI Web Server Utilities Package Manager Compiler Editor etc... Human Interface Filesystem Networking OS Kernel Scheduler Device Drivers Memory Management Debugger Build Automator GPL

LINUX IS EVERYWHERE embedded (ad es. routers) smartphone/ tablet Servers/mainframes Costo stimato ri-sviluppo da 0 (stime): Nel 2004 (v. 2.6.0): ~467M Nel 2006 (v. 2.6.8): ~882M Nel 2011 (v. 3.0.0): ~2200M src: http://en.wikipedia.org/wiki/linux_kernel#estimated_cost_to_redevelop

src: http://en.wikipedia.org/wiki/usage_share_of_operating_systems

Supercomputer market share

COME INSTALLARLO? Scaricare linux Distribuzione consigliata: xubuntu Installarlo Partizione nativa Un bootloader vi farà scegliere all avvio quale sistema operativo usare Macchina virtuale VirtualBox (free software, multipiattaforma, www.virtualbox.org) VMWare (a pagamento, Windows/OSX) Live CD/DVD Basta inserire il cd/dvd e riavviare il computer Attenzione! ogni riavvio tutti i dati saranno persi (se non salvati ad es. su una chiavetta esterna)

UTILIZZIAMO IL TERMINALE Terminale: dispositivo che invia e riceve caratteri ad un programma Terminal emulator: un programma che agisce da terminale Terminal Emulator VT100 Teletype (o teleprinter)

USERS Whoami? Ogni utente ha un ID (UID) ed appartiene ad uno o più gruppi Ogni gruppo ha un ID (GID) utente root = amministratore di sistema Guardare /etc/passwd e /etc/groups Comandi utili: adduser, userdel, su, sudo, whoami, who, last

COMANDI UTILI Name ls cd pwd cp/mv/rm cat tail/head mkdir/rmdir find/locate grep ln touch Action list change directory print working directory copy/move/remove concatenate view the first/last lines of a file create/remove a directory search for a file/directory search inside files Link create an empty file MAN

PERMESSI SU FILE/ DIR prova a vederli con ls -al chmod XXX file_name

LE ESTENSIONI DEI FILE Nome del file: Appunti.txt Estensione Le estensioni sono metadati per definire la codifica di un file Usati da alcuni sistemi operativi per capire con quale programma aprire un file Ad es: jpg = foto condificata in jpeg, txt file di testo semplice, html pagina scritta in HTML ecc E possibile capire cosa contiene un file utilizzanto l utility file file /etc/passwd File /bin/ls

TUTTO E UN FILE! STRUTTURA DELLE DIRECTORY SU LINUX

PROC FS Un sistema per vedere/editare informazioni su kernel e processi ad esempio: root@web:~# cat /proc/uptime 12901954.29 12678743.37 Esempio: dire al kernel di NON rispondere ai PING cat /proc/sys/net/ipv4/icmp_echo_ignore_all echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

DEV FS Accesso ai dispositivi fisici (sound card, ram, hard drive, serial/parallel interface ) e presudo device (/dev/null, / dev/zero, /dev/random) Esempio: Crea 1 Giga di random data dd if=/dev/random of=/home/myhome/randomdata bs=1m count=1024

RUSSIAN ROULETTE dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$random

IL COMANDO MOUNT mount -t type device dir (umount) Aggiunge al filesystem il contenuto del device in /dev/fstab informazioni su cosa montare all avvio E possibile montare dei file (-o loop) Associa un file con un loop dev node (e.g. /dev/loop1) e montare il loop dev node ad un mounting point ninux@ale:~$ mount /dev/sda1 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) fusectl on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev)

INSTALLARE SOFTWARE Il problema delle dipendenze alcuni programmi dipendono da molte librerie Gnu Build System Autoconf, Automake, Libtools Su debian-like: apt-get install foo apt-cache search foo apt-get update apt-file search filename.txt./configure make make install

ARCHIVIARE, COMPRIMERE E DECOMPRIMERE Tar: archive file/dir in one file.tar (nessuna compressione) Spesso usato con algoritmo di compressione (ad es. gunzip, bunzip2) Archivio+ gunzip: tar cfvz nameofarchive.tar.gz target_dir ( For bunzip2 substitute z with j ) Decompressione tar xvfz nameofarchive.tar.gz Se l estensione del file non ci dice abbastanza, usare il comando file

SHELL La nostra interfaccia sul sistema operativo Qual è la mia shell? echo $SHELL Permette di eseguire comandi Permette di definire script (definire variabili, cicli etc) I comandi accettati che chiamano programmi eseguibili) percorso assoluto o relativo spesso eseguibili contenuti in directory incluse nella variabile PATH provare ad eseguire: which NAME_OF_COMMAND Variable: Shell variable (locale, relativa a una particolare instanza della shell) per avere la lista set, per settare VAR=VALUE, per ottenere il valore di una echo $VAR Environment variable (valide in tutto il sistema) per avere la lista: env, per settare export, ottenere il valore di una printenv o echo $VAR ninux@ale:~$ export PIPPO="pluto" ninux@ale:~$ printenv PIPPO pluto ninux@ale:~$ PLUTO= ciao" ninux@ale:~$ echo $PLUTO ciao

STANDARD STREAMS Ad ogni file aperto è associato un numero Descrittore di file FILE descriptor Ogni programma che gira, parte già con tre file aperti stdin: input da tastiera FD 0 stdout: output a video FD 1 stderr: output di errori a video FD 2 Possiamo redirigere gli input/output usando: <, <<, >>, > echo "hello world" > myfile Imposta lo stdout del programma echo a myfile n>&m permette di redirigere il FD n verso il FD m program 2>&1 myfile Tutti gli output e gli errori del programmi rediretti a myfile

PIPELINES Le Pipes permettono a processi separati di comunicare tra loro senza essere specificatamente progettati per lavorare insieme Esempio: ls grep x Significato: prendi l output del comando ls e passalo come input al comando grep x Su Linux esistono tantissimi comandi semplici (tipo cat, cut, sed, grep, echo ) che fanno una cosa e possono essere combinati attraverso le pipe

SHELL TRICKS! ESC +. à ripete l ultimo parametro CTRL + A à vai al primo carattere CTRL + E à vai all ultimo carattere CTRL + K à cancella ogni carattere dalla posizione corrente fino alla fine della riga Altri? man getline

PROCESSI E SEGNALI Ad Ogni processo è associato un numero identificativo chiamato PID (Process ID) ps aux à lista dei processi (ps: process snapshot ) top / htop per vederli in tempo reale il comando kill manda segnali ai processi (SIGTERM, SIGKILL) Un segnale è un messaggio Quando un programma riceve un segnale, esegue alcune operazioni definite dal programmatore in una routine chiamata handler del segnale

EDITOR http://www.viemu.com/a-why-vi-vim.html

VIM MODES Normal Visual Select Insert Cmdlin e Ex http://vimdoc.sourceforge.net/htmldoc/usr_toc.html vimtutor +6 additional modes!

VIM: BASIC COMMANDS <Esc> Enter command mode i Enter insert mode :w Save File :q! Exit vim without saving x Delete the character under the cursor dw Delete the current word dd Delete the current line d$ Delete everything Right of the cursor yy Yank the current line onto the clipboard set number syntax on Visual mode: markers substitute all: :%s/aaaa/bbbb/g p Paste the clipboard u Undo :redo Redo G Jump to bottom of file /text Search for the textfrom the cursor > Indent

EXERCISE Usando vim, scrivere questo file: #!/bin/bash echo Hello World Quindi renderlo eseguibile e lanciare lo script more on bash scripting: http://tldp.org/howto/bash-prog-intro-howto.html

BASH SCRIPTING Variabili: modify the previous script in this way: #!/bin/bash STR="Hello World! echo $STR

BASH SCRIPTING If and arguments #!/bin/bash if [ $1!= pippo ]; then echo usage: $0 pippo exit fi echo You Win!

BASH SCRIPTING loop (for, while, until) and commands: modify the previous script in this way: #!/bin/bash -x for i in $( ls ); do echo item: $i done

2014 BASH BUG: SHELLSHOCK env x='() { :;}; echo vulnerable' bash -c "echo this is a test Esecuzione di codice scritto al di fuori della funzione Pericoloso dato che molti servizi web chiamano script bash (CGI) e potrebbero passare parametri inviati dall utente More info: bash shellshock

FILM CONSIGLIATI