Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.

Slides:



Advertisements
Presentazioni simili
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Advertisements

Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
File System Cos’è un File System File e Directory
Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
Giuseppe Fabio Fortugno.
Programmazione Procedurale in Linguaggio C++
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Laboratorio 1: Usare Linux. File system Il file system è la componente del sistema operativo che si occupa della gestione di file e cartelle Con laccount.
Andrea Colombari, Carlo Drioli e Barbara Oliboni
Laboratorio di Informatica di Base Laboratorio di Informatica di Base Laurea in Informatica Multimediale Docente: Andrea Fusiello profs.sci.univr.it/~fusiello.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
La shell di Linux Linux ha una varietà di shell differenti:
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
I File.
Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Dip. Automatica e Informatica
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX/LINUX Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Shell 1 Elementi di programmazione concorrente Niccolo` Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Vi(m): un editor di testo Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Gestione dei processi comando1 comando2 Last-login: … > … > comando1 output comando1 > comando2 output comando2 Esecuzione.
Analisi di Immagini e Dati Biologici
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Shell dei comandi – ! Bash &/o Tcsh !
AWK Salvatore Campagna
La versione 18 di Aleph500: le novità CATALOGAZIONE Rita Vanin Ottobre 2007.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
1 Amministrazione del sistema Creazione degli account al sistema. Comandi per la gestione degli utenti File per la gestione degli utenti, password shadow.
Programmazione della shell pt.2
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
lun mar mer gio ven SAB DOM FEBBRAIO.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
Programmazione ad oggetti
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
Script di shell (bash).
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
Il sistema Linux: principi di progettazione
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
1 SC per IPC Pipe. 2 Pipe : file speciali utilizzati per connettere due processi con un canale di comunicazione Se B cerca di leggere da una pipe vuota.
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
I L SO MS DOS … una breve guida…. C OS ’ È UN S ISTEMA OPERATIVO Un sistema operativo (SO) è un insieme di programmi che agisce come intermediario tra.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Transcript della presentazione:

Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica

Sistemi Operativi - Introduzione 2 Organizzazione SISTEMI OPERATIVI Docente: Prof. Pietro Laface Esercitatore: Ing. Niccolò Battezzati Laboratorio –MER 08:30 – 10:30 (A-L) –MER 10:30 – 12:30 (M-Z) Esercitazioni in aula –GIO 12:30 – 14:30 (AULA 14)

Sistemi Operativi - Introduzione 3 Programma Linux: introduzione e comandi principali Shell: linterprete dei comandi Linux: dettagli e comandi avanzati Shell: uso avanzato e script vi(m): un editor di testo

Sistemi Operativi - Introduzione 4 Programma Linux: introduzione e comandi principali introduzione file system (base) comandi principali Shell: linterprete dei comandi introduzione sessioni (variabili dambiente ecc.) funzioni di interpretazione regexp scripting di base Linux: dettagli e comandi avanzati inode processi filtri (sed, grep, awk) Shell: uso avanzato e script regexp sintassi e controllo di flusso gestione parametri Array vi(m): un editor di testo demo delleditor introduzione alle regexp...

Sistemi Operativi - Introduzione 5 Indice Introduzione Caratteristiche Espansione dei comandi Scripting di base

Sistemi Operativi - Introduzione 6 Indice Introduzione Caratteristiche Espansione dei comandi Introduzione agli script

Sistemi Operativi - Introduzione 7 Introduzione E lo strato più esterno del S.O. e fornisce uninterfaccia utente –era lunica interfaccia prima dellintroduzione del server X In Unix la shell non è parte del kernel –è un normale processo utente Programs Shell Unix kernel HW

Sistemi Operativi - Introduzione 8 Introduzione Una shell può essere attivata: –automaticamente al login –in modo annidato dentro un'altra shell Per terminare una shell: –exit –il carattere di EOF (tipicamente ^d)

Sistemi Operativi - Introduzione 9 Introduzione In Unix sono disponibili molte shell: –Bourne shell (sh): la shell originaria, molto usata nella programmazione sistemistica –C-shell (csh): la shell di Berkeley, ottima per l'uso interattivo e per gli script non di sistema –Korn shell (ksh): la Bourne shell riscritta dall'AT&T per assomigliare di più alla C-shell –Tahoe C-shell (tcsh): dal progetto Tahoe, una C-shell migliorata –Bourne again shell (bash)

Sistemi Operativi - Introduzione 10 Introduzione Allavviamento ogni shell esegue i comandi elencati nei propri file di inizializzazione: – /etc/profile: comandi globali – ~/.profile: comandi per il singolo utente alcune shell usano anche il file.logout per eseguire comandi quando vengono terminate.

Sistemi Operativi - Introduzione 11 Introduzione Per la shell bash, i file di inizializzazione sono: – /etc/profile: comandi per tutti gli utenti – ~/.bash_profile opp. ~/.profile: comandi propri dellutente – ~/.bashrc: comandi propri dellutente eseguiti in una shell non di login.

Sistemi Operativi - Introduzione 12 Indice Introduzione Caratteristiche Espansione dei comandi Introduzione agli script

Sistemi Operativi - Introduzione 13 Caratteristiche e uso della shell BASH Parametri Completamento Pipeline Redirezione dell'I/O History Aliasing Gestione dei processi

Sistemi Operativi - Introduzione 14 Parametri I parametri sono delle entita` che memorizzano un valore (indicato con $parametro): –parametri posizionali: 0, 1, 2, 3... Sono usati per indicare i parametri passati a un comando o a una funzione; –parametri speciali: –*:la lista dei parametri posizionali –#:il numero di parametri posizionali –?:il valore di ritorno dellultimo comando –variabili: contengono un valore non tipizzato.

Sistemi Operativi - Introduzione 15 Variabili Una variabile ha un nome e un valore, che viene assegnato come segue: nome=valore (usare echo $nome per visualizzarlo) Il comando export variabile permette di renderla visibile ad altri processi Il comando unset variabile ne cancella il valore Built-in variables, tra cui: PATH HOME BASH_ARGV, BASH_ARGC Array unidimensioanli: nome[indice]=valore (usare echo ${nome[indice]} )

Sistemi Operativi - Introduzione 16 Completamento Espansione dei nomi di file con il carattere TAB –se la stringa comincia con $ la shell cerca di completare col nome di una variabile –altrimenti, la shell cerca di completare col nome di un comando –altrimenti, la shell cerca di completare con nomi di file ordinari nella directory corrente.

Sistemi Operativi - Introduzione 17 Pipeline Il collegamento stdout-stdin si chiama pipe e crea in memoria un canale diretto tra i due processi proc stdin stdout stderr proc stdin stdout stderr

Sistemi Operativi - Introduzione 18 Pipeline comando1 | comando2 –pipe tra i due comandi Esempi: – ls -la | more – ls –l | grep main.c – cat main.h | sed s/N 10/N 12/g – cat main.c | awk –f my_script.awk

Sistemi Operativi - Introduzione 19 Redirezione dellI/O comando < file:stdin da file comando > file:stdout in file (cancellato se esiste) comando >> file:stdout accodato a file comando << FINE:stdin da here document text FINE comando &> file:(bash) stderr+stdout in file comando 2> file:(bash) stderr in file (1 è stdout)

Sistemi Operativi - Introduzione 20 History : mostra i comandi eseguiti precedentemente !n: esegue il comando numero n nel buffer !-n: esegue l'n-ultimo comando !$: l'ultimo parametro del comando precedente !*: tutti i parametri del comando precedente !stringa: l'ultimo comando che inizia con stringa !!:s/vecchio/nuovo: rimpiazza la prima occorrenza di vecchio nell'ultimo comando con nuovo CTRL-r com: filtra la history mostrando solo i comandi che contengono la stringa com.

Sistemi Operativi - Introduzione 21 Aliasing E possibile definire dei comandi con nuovi nomi (alias) Gli alias sono locali alla shell corrente alias:elenca gli alias definiti alias nome=valore:definisce un alias unalias nome:cancella un alias Esempi: alias ll=ls -al alias vi=vim

Sistemi Operativi - Introduzione 22 Gestione dei processi comando1 comando2 Last-login: … > … > comando1 output comando1 > comando2 output comando2 Esecuzione batch: i processi vengono eseguiti in modo sequenziale.

Sistemi Operativi - Introduzione 23 Gestione dei processi Last-login: … > … > comando1 & output comando1 > comando2 output comando1 output comando2 Esecuzione concorrente: i processi vengono eseguiti in modo concorrente. comando1 comando2

Sistemi Operativi - Introduzione 24 Gestione dei processi Last-login: … > … > comando1 output comando1 CTRL-z > fg %1 output comando1 I processi si possono interrompere con il comando CTRL-z e ripristinare con il comando fg. comando1 CTRL-z fg

Sistemi Operativi - Introduzione 25 Stato dei processi Run fg Run bg Stopped Shell comando comando & fg bg CTRL-Z

Sistemi Operativi - Introduzione 26 Gestione dei processi - comandi jobs elenca i job bg %job-idporta il job in background fg %job-id porta il job in foreground kill -9 pidtermina il processo killall -9 nametermina tutti i processi name pselenca i processi con i relativi dettagli Esempi: ps –e ps –f ps –u root

Sistemi Operativi - Introduzione 27 Indice Introduzione Caratteristiche Espansione dei comandi Introduzione agli script

Sistemi Operativi - Introduzione 28 Quoting Serve per dire alla shell di non interpretare alcuni caratteri speciali. Ci sono tre metodi: –\ preserva il valore letterale del carattere che segue; – preservano il valore letterale del loro contenuto. Non possono essere innestati; – preservano il valore letterale del contenuto tranne dei simboli $,, \. Possono essere innestate.

Sistemi Operativi - Introduzione 29 Interpretazione Dopo aver suddiviso la linea di comando in parole, la shell applica diversi tipi di sostituzione (in ordine!): –preamble{e1, e2,...}: sostituito con preamblee1 preamblee2... –~: sostituitoin $HOME –$param: sostituito col valore del parametro (se il parametro e` complesso meglio usare ${param}) –`comando`: sostituito con lo standard output di comando –$((espressione)): sostituito col risultato dellespressione aritmetica –parole contenenti *, ? e [ sono sostituite con il valore dellespressione regolare.

Sistemi Operativi - Introduzione 30 Regexp La shell espande le espressioni regolari secondo le sguenti regole: –*una qualsiasi stringa –?un qualsiasi carattere singolo –[...]uno qualsiasi dei caratteri in parentesi

Sistemi Operativi - Introduzione 31 Esempio Come vengono espansi i seguenti comandi? – so_es1=~/so_es1 – backup_dir=backup_`date` – mkdir $so_es1/$backup_dir – cp –r $so_es1/*.{c,h} $so_es1/$backup_dir

Sistemi Operativi - Introduzione 32 Indice Introduzione Caratteristiche Espansione dei comandi Introduzione agli script

Sistemi Operativi - Introduzione 33 Script - introduzione E possibile memorizzare in un file una serie di comandi, eseguibili richiamando il file stesso Esecuzione indiretta: –source scriptname args Esecuzione diretta eseguendo lo script –./scriptname args –è necessario che il file abbia il permesso di esecuzione –la prima riga del file inizia con #! seguita dal nome (con il path assoluto) della shell con cui si devono eseguire i comandi

Sistemi Operativi - Introduzione 34 Script - introduzione #!/bin/bash so_es1=~/so_es1 backup_dir=backup_`date` mkdir $so_es1/$backup_dir cp –r $so_es1/*.{c,h} $so_es1/$backup_dir