Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

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.
Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
I File di testo in Pascal
PHP.
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.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Programmazione Procedurale in Linguaggio C++
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
Corso Linux Base 2. Uso del Sistema. © Corso Linux Base - Uso del Sistema Logging In (1) Una volta partito il sistema lutente esegue la procedura.
Introduzione agli stream e alle classi
Guida Linux Molto rapida…. Due parole sullambiente grafico Potete usare: KDE o GNOME Si sceglie prima di mettere la password. Questione di gusti…
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.
Uso di Linux.
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.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
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 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 - 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 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.
Algoritmi e Programmazione Avanzata
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Vi(m): un editor di testo Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Corso di PHP.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Shell dei comandi – ! Bash &/o Tcsh !
AWK Salvatore Campagna
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Il kernel Il kernel di LINUX è il cuore del sistema operativo: alloca risorse (tempo e memoria) ai programmi e manipola i files e le comunicazioni come.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Programmazione della shell pt.2
Prompt dei comandi – Windows XP In Windows XP si avvia con Start AccessoriSistema Prompt dei comandi … oppure con Start Esegui cmd.exe.
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.
Prof.ssa Stella Beccaria a.s. 2013_2014
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Lezione 3 Struttura lessicale del linguaggio
Script di shell (bash).
Unix (Linux-Mac OS) Alcuni comandi. cd change working directory cd [DIRECTORY] cd entra nella directory specificata. Se non è fornita alcuna directory.
Microsoft Word Lezione 6 Riccardo Sama' Copyright  Riccardo Sama'
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
Il sistema Linux: principi di progettazione
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
Contare e ordinare files di testo Per contare i caratteri, le righe e le parole in un file di testo wc (word count) % wc human_proteins.fa Conta le parole.
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.
Esempi di Sistemi Operativi: DOS Nel file system di DOS i path names hanno la seguente forma C:\TEMP\DirA\DirB\elab.pdf Si utilizzano due nomi speciali.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
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 – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica e Informatica

La shell - Instroduzione Lo strato più esterno del Sistema Operativo In UNIX/Linux la shell non è parte del sistema operativo ma è un normale processo utente Utilizzata per impartire comandi

La shell - Introduzione In UNIX esistono diverse shell Bourne Shell (sh) C-shell (csh) Korn shell (ksh) Tahoe C-shell (tcsh) Bourne Again Shell (bash)

La shell - Instroduzione Allavvio della shell vengono eseguiti i comandi contenuti in due file: 1. /etc/profile: per i comandi globali 2. ~/.profile: comandi per il singolo utente Alcune eseguono anche i comani contenuti nel file.logout quando terminano

Avvio shell Bash Per la shell Bash i file sono: Shell di login: /etc/profile e poi dalla propria home.bash_profile,.bash_login,.profile (di questi ultimi tre verrà letto solo il primo file esistente) Shell di login:.bash_logout, questo file viene letto all'uscita dalla shell Interattiva:.bashrc

Caratteristiche della shell Parametri Completamento automatico Pipe (o Pipeline) Redirezione dellI/O History Aliasing Espansione dei comandi

La shell – I parametri Simili a variabili di un linguaggio di programmazione Memorizzano uno o più valori Non hanno un tipo Possono avere un nome ($n, $nome, $address,…) Posizionali ($1, $2, …) se si riferiscono a parametri passati a un programma sulla riga di comando

La shell – Parametri speciali $0: nome del comando in esecuzione $#: numero di parametri posizionali sulla riga di comando $?: exit stats dellultimo comando $$: process ID della shell corrente $!: process ID dellultimo comando eseguito in background $-: opzioni passate alla shell corrente $*: una stringa contenente tutti i parametri posizionali ($1, $2, …) come $*

La shell – Le variabili Assegnazione: nome=Alice, max=10 ATTENZIONE: non inserire spazi tra = e export nome: rende la variabile nome visibile ad altri processi unset nome: cancella la variabile e il suo valore

La shell – Le variabili Variabili built-in: PATH: variabile che indica le directory in cui cercare i comandi HOME: variabile che punta alla home directory dellutente BASH_ARGV, BASH_ARGC: parametri e numero di parametri passati alla shell Vettori vett[1]=uno, vett[2]=due v=(uno due tre quattro)

La shell – visualizzazione di variabili Si deve precedere il nome della variabile con il simbolo $ Esempi: echo $nome visualizza il contenuto della variabile nome echo ${vett[2]} visualizza il contenuto dellelemento con indice 2 del vettore vett

La shell – Completamento automatico Il tasto TAB permette di espandere e completare nomi di file, variabili e comandi: Se la riga comincia con $ la shell cerca di completare con un nome di variabile Altrimenti cerca di completare la riga con un comando In fine cerca di completare con il nome di un file ordinario della directory corrente

La shell - Pipe Concatenazione di più comandi in modo tale che lo stdout di un processo diventi lo stdin di un altro processo proc1 stdin(0)stdout(1) stderr(2) proc2 stdin stdout stderr

La shell - Pipe Sintassi: comando1 | comando2 Loutput di comandi1 diventa linput di comando2 Esempi: ls –la | more cat /etc/passwd | sed s/bash/csh/g cat /etc/passwd | grep alice

La shell – Redirezione dell I/O Epossibile redirigere stdout, stdin e stderr di un processo su file comando < file: redirige lo stdin di comando in modo che linput sia letto da file comando > file: redirige lo stdout di comando in modo che scriva su file Esempio: cat /etc/passwd | grep alice > alice_data.txt

La shell – Redirezione dellI/O comando >> file: redirige lo stdout di comando in modo che venga scritto su file in modalità append (non cancella i dati presenti) comando << file: redirige lo stdin di comando in modo che venga letto da HERE DOCUMENT Esempio: $ tr a-z A-Z <<END_TEXT > one two three > uno dos tres > END_TEXT ONE TWO THREE UNO DOS TRES

La shell – Redirezione dellI/O comando &> file: redirige stderr e stdout di comando su file comando 2> file: redirige stderr su file comando 1> file: redirige stdout su file (come comando > file) comando 1> filea 2>fileb: redirige stdout e stderr su file diversi

La shell redirezione dellI/O /dev/null è un file virtuale con la caratteristica di scartare (non memorizzare) tutti i dati che gli vengono scritti comando > /dev/null: scrive scartando i dati di output comando < /dev/null: legge un end-of-file EOF comando 2> /dev/null: ignora i messaggi di errore

La history : mostra i comandi eseguiti precedentemente history: visualizza tutti I comandi eseguiti su due colonne con Si può fare riferimento a un comando contenuto nella history attraverso il suo numero

La history !n: esegue il comando n Se n è negativo esegue ln-ultimo comando ! : esegue lultimo comando che comincia con !!:s/ / : rimpiazza la prima occorrenza di nellultimo comando con CTRL-r: entra in modalità di ricerca

Aliasing E possibile definire nuovi nomi da associare a un comando Il nuovo nome è un alias Il comando alias senza parametri visualizza gli alias definiti per la shell corrente alias = valore definisce un nuovo alias unalias : cancella lalias con nome

Aliasing Esempi: alias ll = ls –l alias rm = rm –i alias cd.. = cd.. alias dir = ls –l alias vi=vim Sono validi nella shell corrente Se inseriti in /home/ /.bashrc gli alias vengono definiti allavvio della shell

Espansione dei comandi La shell esegue una serie di espansioni o sostituzioni in un comando Esempio: ls $HOME La shell espande (o sostituisce) la variabile $HOME con il suo contenuto Il comando eseguito diventa ls /home/alice

Espansione dei comandi Il quoting serve a evitare lespansione Ci sono tre modi per fare quoting Usare il carattere \: preserva il valore letterale del carattere che segue Gli apici singoli : preservano il valore letterale del loro contenuto Gli apici doppi: come precedenti ma escluso $, $() e \

Espansione dei comandi La shell esegue lespansione in un ordine ben preciso dopo aver analizzato la riga di comando Brace Expansion: viene sostituito prima il contenuto delle parentesi graffe (se non quotate) Esempio: cat file{1,2,3}.txt viene sostituito da cat file1.txt file2.txt file3.txt Tilde Expansion: viene espanso i carattere tilde ~ (se non quotate) Esempio: cat ~/file.txt viene espanso in cat /home/alice/file.txt

Espansione dei comandi Parameter Expansion: si sostituisce il parametro col suo valore Esempio: dir=/tmp; find $dir –name *.c viene espanso in find /tmp -name *.c Command Expansion: si sostituisce con loutput del comando Esempio: cat $(find. –name *.c) viene espanso in cat main.c file1.c file2.c Supponendo che la directory corrente contenga i file main.c file1.c e file2.c

Espansione dei comandi Arithmetic Expansion: viene espanso il risultato di una operazione aritmetica Esempio: echo $((2*3+1)) viene espanso in echo 7 Word Splitting: la riga di comando viene suddivsa in parole

Espansione dei comandi Filename expansion: vengono sostituiti i nomi di file in corrispondenza di espressioni contenenti *, ? E [...] Esempio: cat *.c viene espanso in cat main.c file1.c file2.c (* = qualsiasi stringa) Esempio: cat file?.c viene espanso in cat file1.c file2.c (? = qualsiasi carattere singolo) Esempio: cat file[ab].c espanso in cat filea.c fileb.c ([ ] = qualsiasi carattere tra parentesi) Supponendo che la directory corrente contenga i file main.c file1.c e file2.c

Espansione dei comandi Quote Removal: tutte le occorrenze non quotate dei caratteri \ e vengono rimossi a meno che queste non siano il risultato di una espansione Esempio echo Hello World espanso in echo Hello World Esempio: var= hello lespansione di echo $var da come risultato echo hello Gli apici doppi sono il risultato della parameter expansion della variabile var e quindi non vengono rimossi quando viene eseguito il quote removal

Esempio Come vengono espansi i seguenti comandi? so_es= ~/so_es backup_dir=backup_$(date) mkdir -p $so_es/$backup_dir cp –r ~/so_es1/*.{c,h} ~/so_es1/$backup_dir